LWN.net Logo

Security

Bitcoin: Virtual money created by CPU cycles

November 10, 2010

This article was contributed by Nathan Willis

The Bitcoin virtual currency system was launched in 2009, but has gained increased exposure in recent months as a few businesses and entities announced that they would support transactions in Bitcoins (abbreviated "BTC"). Bitcoin is not the first attempt to create an entirely virtual currency, but it supports some very interesting features, including anonymity and a decentralized, peer-to-peer network structure that verifies Bitcoin transactions cryptographically.

One of Bitcoin's advantages over other currency systems is that it does not rely on a central authority or bank. Instead, the entire network keeps track of — and validates — transactions. It also separates "accounts" from identities, so transactions are, for all practical purposes, anonymous. Two users can make a Bitcoin exchange without knowing each others' real identities or locations. Because Bitcoin does not rely on brick-and-mortar banks and because the Bitcoin currency is divisible down to eight decimal places, it is seen by proponents as a potential micropayment system that works better than the fee-based, currency-backed banking systems of today.

Bitcoin 101

The Bitcoin project was devised and created by Satoshi Nakamoto. There is an RFC-style draft specification available on the project's wiki, although it is not an IETF project. The current specification is numbered 0.0.1, and outlines a Bitcoin transaction message. Considerably more detail is required to explain how the system works in practice, however. The two key ideas are Bitcoin addresses and blocks.

Actual Bitcoins do not exist as independent objects anywhere in the Bitcoin network. Instead, the P2P network of Bitcoin clients keep track of all Bitcoin transactions — including the transfer of Bitcoins from one Bitcoin address to another, and the creation of new Bitcoins, which is a tightly controlled process.

A Bitcoin address is a hash of the public key of an Elliptic Curve Digital Signature Algorithm (ECDSA) public/private key pair. Whenever a new user starts up the Bitcoin client, it generates a new Bitcoin address that is initially associated with zero Bitcoins. But the address is not tied to the identity of the user in any way; in fact clients can generate multiple Bitcoin addresses to easily isolate or categorize transactions. A user's keys are stored locally in a wallet.dat file; losing or erasing the file means that all Bitcoins associated with the addresses inside are effectively lost.

Sending Bitcoins from one address to another is done by publishing a transaction to the network, listing both the source and destination address along with the amount, signed by the source address's private key. The transaction is propagated to all of the active clients on the network. These transactions are collected into the other Bitcoin primitive, the block. Active clients periodically publish new blocks, which serve as the permanent record of all of the transactions that have taken place since the last block was published.

Unlike signing and verifying recent transactions, publishing a block is not a trivial affair. It is, instead, a cryptographic problem that a client must solve with a reward offered for doing so. The Bitcoin network is designed so that block publishing is a difficult task, and the reward will encourage users to run the client software, which in turn validates and records the ongoing transactions.

The Bitcoin network is currently in currency-issuing mode; during this phase, whenever a client solves and publishes the network's next block, the client is credited with 50 freshly-created Bitcoins. That provides the incentive for clients to contribute CPU (or GPU) cycles to the process. The block-solving reward amount is scheduled to drop on a regular basis; eventually dropping to zero. At that point, transaction fees will replace Bitcoin-generation as an incentive for clients to participate.

The problem that constitutes "solving" a block is novel. Clients perform SHA-256 hash calculations on a data set consisting of the recent transactions, the previous block's hash value, and a nonce. Each hash is then compared to a published threshold value; if the hash is below the threshold, the client has solved the block. If not, the client generates a new nonce and tries again. The threshold value is chosen to be artificially low, so that the hashes (which are pseudo-random) have a very small chance of being below it. Thus it takes many CPU cycles to stumble across a hash that solves the block, but it is trivial for all other clients on the network to check that the hash is genuine.

Bitcoining in practice

As of November 9, there have been just under 91,000 blocks published, and there are about 4.5 million BTC in circulation. The project says that approximately six blocks are solved and published per hour, and according to the reward-reduction schedule, the eventual total circulation will be just short of 21 million BTC. The threshold value is periodically adjusted to keep the rate of new blocks predictable — presumably to provide some level of guarantee that transactions are validated and recorded in a timely fashion.

The project has an official, MIT/X11-licensed Bitcoin client application available for download. The current release is numbered 0.3.14. OS X, Windows, and Linux builds (both 32-bit and 64-bit) are provided in addition to the source code. The client serves two purposes; it allows the user to keep track of his or her wallet and its associated Bitcoin addresses, and it runs a background process to solve blocks. There is a command-line version of the client available in addition to the GUI, for use on headless machines.

[Bitcoin GUI]

The GUI client's interface is simple: there is a transaction log, balance count, and Bitcoin "address book." From the address book, you can generate new Bitcoin addresses at will. The block-solving functionality is activated or deactivated from the "Settings" menu. The Options configuration dialog allows you to limit the number of processors on which to run (by default Bitcoin uses all available CPUs). The client communicates to Bitcoin peers over TCP port 8333, and for the moment is IPv4-compatible only.

At the moment, of course, running the fastest client possible is the key to grabbing as many fresh Bitcoins as you can. In addition to the official Bitcoin client, there are several third-party variants that tailor the block-solving routine for different processor architectures — including OpenCL and CUDA-capable 3-D graphics cards. The official client runs its solver with the lowest possible priority, so keeping it running constantly should not severely impact performance — third-party clients may or may not offer such a guarantee.

SHA-256 is generally considered to be strongly pseudo-random, so your odds of solving the current block on any given try do not increase the longer you run the client. However, all of the active Bitcoin clients "mine" — try to solve the current block — simultaneously, so dedicating more or faster cores increase your chances of solving the current block now, before someone else does and everyone starts over on a new block.

Criticisms and questions

Despite a design in which all clients supposedly have an equal chance of solving the next block and earning the reward, some Bitcoin users on the project's official forum seem to think that the current system is driving away casual users, because users with fast GPUs can check hashes ten- or twenty-times faster than a typical CPU. Several of the users that have written custom GPU-mining clients do not make their code publicly available, and thus generate significantly more Bitcoins than the average participant — including one individual who is alleged to represent 25% of the block-solving power of the network at any one time.

An online calculator allows you to put in the current hashes-per-second count reported by the client and estimate how long it would take on average to solve a block at that speed. I tested Bitcoin 0.3.14 on an (apparently modest) Athlon X2 system that is predicted to average one block solve every 94 days. That does seem like a discouragingly-low-payoff for keeping two CPU cores running 24 hours a day.

The system does seem to score high on privacy and fraud-prevention, though. All transactions between clients are conducted in the clear, but because Bitcoin addresses rely on public-key cryptographic signatures, an attacker cannot forge a transaction outright. The system has other safeguards in place to prevent attacks on the block-solving system. That is why, for example, each block includes the hash of the previous solved block — this creates a "block chain" that clients can trace backwards all the way to Bitcoin's first "genesis block" for verification purposes.

The distributed network design offers its own set of challenges. For example, if a rogue client simultaneously (or nearly simultaneously) broadcasts two transactions to different parts of the network that total more BTC than the client actually has, both transactions could temporarily be validated if two different clients simultaneously solve the current block. In that case, however, one of the two competing blocks will be invalidated by the next block solved, and all of the transactions in the invalidated block returned to the general queue. Thus the duplicate transaction will eventually be merged back into the same block chain as the original, and the insufficient funds will be noticed.

Some of Bitcoin's security relies on all of the participating clients knowing and agreeing on the rules of the game. For example, a rogue client could attempt to award itself 100 BTC upon solving a block, but the illegal amount would be caught and flagged by honest clients.

Nevertheless, there does not seem to have been a serious examination of Bitcoin's security by outside professional researchers. Beyond the basic transaction framework, there are numerous features in the system that might make for a plausible attack vector. For example, the system includes a way for senders to script transactions, so that they are only triggered after a set of conditions has been met.

Some of the adaptive measures in the system use arbitrary time frames that seem geared towards human convenience, rather than pro-active prevention of attacks — such as re-evaluating and adjusting the difficulty of the block-solving threshold only every 2,016 blocks. It is also possible to send Bitcoin payments directly to an IP address instead of to a Bitcoin address; in some sense, a "buyer beware" caution is advised, but it is also possible that there are exploits yet undiscovered.

Economics

The bigger open questions about Bitcoin are about its viability as a currency system. For the moment, the majority of the "businesses" that accept BTC as a payment method are online casinos, but a few less-shady establishments (such as the Electronic Frontier Foundation) have recently decided to accept Bitcoin transactions.

There is a dedicated economics forum on the Bitcoin project Web site; there debates circulate about the strengths and weaknesses of the Bitcoin system, specifically whether it has any value as a "real" currency, but also on more technical points, such as the arbitrary limit on the number of Bitcoins to be minted, and the decision to limit each Bitcoin's divisibility (a Bitcoin can be divided down to eight decimal places to spend in transactions).

Another wrinkle is that Bitcoins are effectively "virtual cash" — which makes them untraceable. Although the anonymity is important to some early-adopters, some are concerned that if the system were ever to catch on in widespread usage, governments would intervene to ban or block it because of the relative ease of tax evasion or money laundering.

Although BTC can be exchanged for other currencies, Bitcoin is different from electronic payment systems like Paypal that are really just computerized interfaces to traditional banks. There have been virtual cash systems in the past, such as David Chaum's digital-signature-based ecash, which in the late 1990s was redeemable at several banks, and more recently the Linden Dollars used and created inside Second Life.

Because Bitcoins are not tied to gold or to any other traded property, their value is determined solely by how much others are willing to exchange for them. Those who have had more economics than I will probably explain that this is true of all currency systems, but at the moment, there are several online BTC exchanges, such as BitcoinMarket.com, where one can observe the actual price of BTC-to-USD (or other currency) transactions. Whether those prices represent any real value seems to be entirely in the eye of the beholder. The rate on November 9 was 0.27 USD to 1 BTC. For comparison's sake, 94 days of dual-CPU processing power on Amazon's EC2 cloud service would cost $389.91. That is a for-profit example, of course, but the question remains: are the CPU cycles you spend "mining" for Bitcoins worth the value of the Bitcoins you receive? Does the abstract notion of "supporting the Bitcoin network" make up the difference? There is just no objective answer.

Some pundits think that Bitcoin is a viable prospect for a long-term virtual currency, but as always seems to be the case with economists, others disagree, citing government intervention and susceptibility to destruction by electromagnetic solar storms as risks to a digital-only currency system not backed by any physical monetary system.

The peculiarity of the idea itself seems to be waning in the face of recent global economic conditions, though, conditions which to Bitcoin proponents demonstrate how little "traditional" currencies offer over new, entirely virtual monetary systems. The Bitcoin network's current rate of BTC generation is scheduled to continue issuing new Bitcoins until 2140. If it lasts even a fraction of that amount of time, it will have outlasted the other purely-virtual currency systems, which is certainly worth ... something.

Comments (29 posted)

Brief items

Jones: system call abuse

Dave Jones has been fuzzing Linux system calls lately, and has found a bug in the interaction between perf and mprotect(). He has plans for adding other fuzzing techniques and expects that this is just the first bug that will be found. "So I started exploring the idea of writing a tool that instead of passing random junk, actually passed semi sensible data. If the first thing a syscall does is check if a value is between 0 and 3, then passing rand() % 3 is going to get us further into the function than it would if we had just passed rand() unmasked. There are a bunch of other things that can be done too. If a syscall expects a file descriptor, pass one. If it expects an address of a structure, pass it realistic looking addresses (kernel addresses, userspace addresses, 'weird' looking addresses)."

Comments (24 posted)

New vulnerabilities

flash-player: multiple vulnerabilities

Package(s):flash-player CVE #(s):CVE-2010-3636 CVE-2010-3637 CVE-2010-3638 CVE-2010-3639 CVE-2010-3640 CVE-2010-3641 CVE-2010-3642 CVE-2010-3643 CVE-2010-3644 CVE-2010-3645 CVE-2010-3646 CVE-2010-3647 CVE-2010-3648 CVE-2010-3649 CVE-2010-3650 CVE-2010-3651 CVE-2010-3652 CVE-2010-3654 CVE-2010-3976
Created:November 5, 2010 Updated:January 21, 2011
Description: From the Adobe security advisory:

This vulnerability (CVE-2010-3654) could cause a crash and potentially allow an attacker to take control of the affected system. There are reports that this vulnerability is being actively exploited in the wild against Adobe Reader and Acrobat 9.x. Adobe is not currently aware of attacks targeting Adobe Flash Player.

From the Adobe security bulletin:

Critical vulnerabilities have been identified in Adobe Flash Player 10.1.85.3 and earlier versions for Windows, Macintosh, Linux, and Solaris, and Adobe Flash Player 10.1.95.1 for Android. These vulnerabilities, including CVE-2010-3654 referenced in Security Advisory APSA10-05, could cause the application to crash and could potentially allow an attacker to take control of the affected system.

Alerts:
Gentoo 201101-08 2011-01-21
Gentoo 201101-09 2011-01-21
SUSE SUSE-SA:2010:058 2010-12-08
openSUSE openSUSE-SU-2010:1030-1 2010-12-07
Red Hat RHSA-2010:0934-01 2010-12-01
Red Hat RHSA-2010:0867-02 2010-11-10
Red Hat RHSA-2010:0834-01 2010-11-08
Red Hat RHSA-2010:0829-01 2010-11-05
openSUSE openSUSE-SU-test-2010:36965-1 2010-11-05
SUSE SUSE-SA:2010:055 2010-11-05

Comments (1 posted)

freetype: multiple vulnerabilities

Package(s):freetype CVE #(s):CVE-2010-3814 CVE-2010-3855
Created:November 4, 2010 Updated:April 19, 2011
Description:

From the Ubuntu advisory:

Chris Evans discovered that FreeType did not correctly handle certain malformed TrueType font files. If a user were tricked into using a specially crafted TrueType file, a remote attacker could cause FreeType to crash or possibly execute arbitrary code with user privileges. This issue only affected Ubuntu 8.04 LTS, 9.10, 10.04 LTS and 10.10. (CVE-2010-3814)

It was discovered that FreeType did not correctly handle certain malformed TrueType font files. If a user were tricked into using a specially crafted TrueType file, a remote attacker could cause FreeType to crash or possibly execute arbitrary code with user privileges. (CVE-2010-3855)

Alerts:
SUSE SUSE-SR:2011:007 2011-04-19
openSUSE openSUSE-SU-2011:0361-1 2011-04-18
Debian DSA-2155-1 2011-01-30
Fedora FEDORA-2010-17728 2010-11-15
CentOS CESA-2010:0889 2010-11-16
CentOS CESA-2010:0889 2010-11-17
Fedora FEDORA-2010-17742 2010-11-15
Red Hat RHSA-2010:0889-01 2010-11-16
Mandriva MDVSA-2010:236 2010-11-16
Mandriva MDVSA-2010:235 2010-11-16
Ubuntu USN-1013-1 2010-11-04
Gentoo 201201-09 2012-01-23
Oracle ELSA-2012-0467 2012-04-12
SUSE SUSE-SU-2012:0553-1 2012-04-23

Comments (none posted)

horde: cross-site scripting

Package(s):horde CVE #(s):CVE-2010-3077 CVE-2010-3694
Created:November 5, 2010 Updated:July 18, 2011
Description: From the Red Hat bugzilla:

a deficiency in the way Horde framework sanitized user-provided 'subdir' parameter, when composing final path to the image file. A remote, unauthenticated user could use this flaw to conduct cross-site scripting attacks (execute arbitrary HTML or scripting code) by providing a specially-crafted URL to the running Horde framework instance.

Alerts:
Debian DSA-2278-1 2011-07-16
Fedora FEDORA-2010-16555 2010-10-21
Fedora FEDORA-2010-16525 2010-10-20
Fedora FEDORA-2010-16592 2010-10-21
Mageia MGASA-2012-0239 2012-08-26

Comments (none posted)

isc-dhcp: denial of service

Package(s):isc-dhcp CVE #(s):CVE-2010-3611
Created:November 9, 2010 Updated:April 13, 2011
Description: From the CVE entry:

ISC DHCP server 4.0 before 4.0.2, 4.1 before 4.1.2, and 4.2 before 4.2.0-P1 allows remote attackers to cause a denial of service (crash) via a DHCPv6 packet containing a Relay-Forward message without an address in the Relay-Forward link-address field.

Alerts:
Fedora FEDORA-2011-0862 2011-01-28
Red Hat RHSA-2010:0923-01 2010-11-30
Fedora FEDORA-2010-17303 2010-11-05
SUSE SUSE-SR:2010:021 2010-11-16
Fedora FEDORA-2010-17312 2010-11-05
Mandriva MDVSA-2010:226 2010-11-10
openSUSE openSUSE-SU-test-2010:36899-1 2010-11-09

Comments (none posted)

libmbfl: information disclosure

Package(s):libmbfl CVE #(s):CVE-2010-4156
Created:November 10, 2010 Updated:April 15, 2011
Description: The libmbfl mb_strcut() function can be made to return uninitialized data via an excessive length parameter; see this bug entry for details.
Alerts:
CentOS CESA-2011:0196 2011-04-14
Red Hat RHSA-2011:0196-01 2011-02-03
Ubuntu USN-1042-1 2011-01-11
Fedora FEDORA-2010-19011 2010-12-17
Fedora FEDORA-2010-19011 2010-12-17
Fedora FEDORA-2010-18976 2010-12-17
Fedora FEDORA-2010-18976 2010-12-17
Fedora FEDORA-2010-19011 2010-12-17
Fedora FEDORA-2010-18976 2010-12-17
Mandriva MDVSA-2010:225 2010-11-09

Comments (none posted)

libvpx: code execution

Package(s):libvpx CVE #(s):CVE-2010-4203
Created:November 10, 2010 Updated:January 17, 2011
Description: The libvpx library fails to properly perform bounds checking, leading to a crash or possible code execution vulnerability exploitable via a specially crafted WebM file.
Alerts:
Gentoo 201101-03 2011-01-15
Red Hat RHSA-2010:0999-01 2010-12-20
Fedora FEDORA-2010-17893 2010-11-18
Fedora FEDORA-2010-17876 2010-11-18
Ubuntu USN-1015-1 2010-11-10

Comments (none posted)

monotone: remote denial of service

Package(s):monotone CVE #(s):CVE-2010-4098
Created:November 8, 2010 Updated:November 16, 2010
Description: From the CVE entry:

monotone before 0.48.1, when configured to allow remote commands, allows remote attackers to cause a denial of service (crash) via an empty argument to the mtn command.

Alerts:
SUSE SUSE-SR:2010:021 2010-11-16
openSUSE openSUSE-SU-2010:0936-1 2010-11-12
Fedora FEDORA-2010-16902 2010-10-28
Fedora FEDORA-2010-16888 2010-10-28

Comments (none posted)

mysql: denial of service

Package(s):mysql CVE #(s):CVE-2010-3840
Created:November 4, 2010 Updated:July 19, 2011
Description:

From the Red Hat advisory:

It was found that the MySQL PolyFromWKB() function did not sanity check Well-Known Binary (WKB) data. A remote, authenticated attacker could use specially-crafted WKB data to crash mysqld. This issue only caused a temporary denial of service, as mysqld was automatically restarted after the crash. (CVE-2010-3840)

Alerts:
openSUSE openSUSE-SU-2011:1250-1 2011-11-16
openSUSE openSUSE-SU-2011:0799-1 2011-07-19
openSUSE openSUSE-SU-2011:0774-1 2011-07-19
openSUSE openSUSE-SU-2011:0743-1 2011-07-06
Red Hat RHSA-2011:0164-01 2011-01-18
Debian DSA-2143-1 2011-01-14
Ubuntu USN-1017-1 2010-11-11
Mandriva MDVSA-2010:223 2010-11-09
Mandriva MDVSA-2010:222 2010-11-09
CentOS CESA-2010:0825 2010-11-05
CentOS CESA-2010:0824 2010-11-05
Red Hat RHSA-2010:0825-01 2010-11-03
Red Hat RHSA-2010:0824-01 2010-11-03
Gentoo 201201-02 2012-01-05
Ubuntu USN-1397-1 2012-03-12

Comments (none posted)

mysql: multiple vulnerabilities

Package(s):mysql CVE #(s):CVE-2010-3833 CVE-2010-3835 CVE-2010-3836 CVE-2010-3837 CVE-2010-3838 CVE-2010-3839
Created:November 4, 2010 Updated:July 19, 2011
Description:

From the Red Hat advisory:

A flaw was found in the way MySQL processed certain JOIN queries. If a stored procedure contained JOIN queries, and that procedure was executed twice in sequence, it could cause an infinite loop, leading to excessive CPU use (up to 100%). A remote, authenticated attacker could use this flaw to cause a denial of service. (CVE-2010-3839)

A flaw was found in the way MySQL processed queries that provide a mixture of numeric and longblob data types to the LEAST or GREATEST function. A remote, authenticated attacker could use this flaw to crash mysqld. This issue only caused a temporary denial of service, as mysqld was automatically restarted after the crash. (CVE-2010-3838)

A flaw was found in the way MySQL processed PREPARE statements containing both GROUP_CONCAT and the WITH ROLLUP modifier. A remote, authenticated attacker could use this flaw to crash mysqld. This issue only caused a temporary denial of service, as mysqld was automatically restarted after the crash. (CVE-2010-3837)

It was found that MySQL did not properly pre-evaluate LIKE arguments in view prepare mode. A remote, authenticated attacker could possibly use this flaw to crash mysqld. (CVE-2010-3836)

A flaw was found in the way MySQL processed statements that assign a value to a user-defined variable and that also contain a logical value evaluation. A remote, authenticated attacker could use this flaw to crash mysqld. This issue only caused a temporary denial of service, as mysqld was automatically restarted after the crash. (CVE-2010-3835)

A flaw was found in the way MySQL evaluated the arguments of extreme-value functions, such as LEAST and GREATEST. A remote, authenticated attacker could use this flaw to crash mysqld. This issue only caused a temporary denial of service, as mysqld was automatically restarted after the crash. (CVE-2010-3833)

Alerts:
openSUSE openSUSE-SU-2011:1250-1 2011-11-16
openSUSE openSUSE-SU-2011:0799-1 2011-07-19
openSUSE openSUSE-SU-2011:0774-1 2011-07-19
openSUSE openSUSE-SU-2011:0743-1 2011-07-06
Red Hat RHSA-2011:0164-01 2011-01-18
Debian DSA-2143-1 2011-01-14
Ubuntu USN-1017-1 2010-11-11
Mandriva MDVSA-2010:223 2010-11-09
Mandriva MDVSA-2010:222 2010-11-09
CentOS CESA-2010:0825 2010-11-05
Red Hat RHSA-2010:0825-01 2010-11-03
Gentoo 201201-02 2012-01-05
Ubuntu USN-1397-1 2012-03-12

Comments (none posted)

php: cross-site scripting

Package(s):php CVE #(s):CVE-2010-3870
Created:November 10, 2010 Updated:March 21, 2011
Description: A decoding error in xml_utf8_decode() leads to a cross-site scripting vulnerability in PHP applications; see this bug entry for more information.
Alerts:
Gentoo 201110-06 2011-10-10
Debian DSA-2195-1 2011-03-19
Red Hat RHSA-2011:0195-01 2011-02-03
Ubuntu USN-1042-1 2011-01-11
Fedora FEDORA-2010-18976 2010-12-17
Fedora FEDORA-2010-19011 2010-12-17
Fedora FEDORA-2010-19011 2010-12-17
Fedora FEDORA-2010-18976 2010-12-17
Fedora FEDORA-2010-19011 2010-12-17
Fedora FEDORA-2010-18976 2010-12-17
SUSE SUSE-SR:2010:023 2010-12-08
openSUSE openSUSE-SU-2010:1012-1 2010-12-02
CentOS CESA-2010:0919 2010-12-01
CentOS CESA-2010:0919 2010-11-30
Red Hat RHSA-2010:0919-01 2010-11-29
Mandriva MDVSA-2010:224 2010-11-09

Comments (none posted)

pootle: cross-site scripting

Package(s):pootle CVE #(s):
Created:November 9, 2010 Updated:November 10, 2010
Description: From the Red Hat bugzilla:

Pootle allows XSS on the match_names parameter when searching for matching check failures.

Alerts:
Fedora FEDORA-2010-16990 2010-10-31
Fedora FEDORA-2010-16998 2010-10-31
Fedora FEDORA-2010-17000 2010-10-31

Comments (none posted)

pyftpdlib: multiple vulnerabilities

Package(s):pyftpdlib CVE #(s):CVE-2009-5011 CVE-2009-5012 CVE-2009-5013 CVE-2010-3494
Created:November 5, 2010 Updated:November 10, 2010
Description: From the CVE entries:

Race condition in the FTPHandler class in ftpserver.py in pyftpdlib before 0.5.2 allows remote attackers to cause a denial of service (daemon outage) by establishing and then immediately closing a TCP connection, leading to the getpeername function having an ENOTCONN error, a different vulnerability than CVE-2010-3494. (CVE-2009-5011)

ftpserver.py in pyftpdlib before 0.5.2 does not require the l permission for the MLST command, which allows remote authenticated users to bypass intended access restrictions and list the root directory via an FTP session. (CVE-2009-5012)

Memory leak in the on_dtp_close function in ftpserver.py in pyftpdlib before 0.5.2 allows remote authenticated users to cause a denial of service (memory consumption) by sending a QUIT command during a data transfer. (CVE-2009-5013)

Race condition in the FTPHandler class in ftpserver.py in pyftpdlib before 0.5.2 allows remote attackers to cause a denial of service (daemon outage) by establishing and then immediately closing a TCP connection, leading to the accept function having an unexpected value of None for the address, or an ECONNABORTED, EAGAIN, or EWOULDBLOCK error, a related issue to CVE-2010-3492. (CVE-2010-3494)

Alerts:
Fedora FEDORA-2010-16731 2010-10-28

Comments (none posted)

qt: unknown impact

Package(s):qt CVE #(s):CVE-2010-1822
Created:November 4, 2010 Updated:January 25, 2011
Description:

From the Red Hat bugzilla entry:

WebKit, as used in Google Chrome before 6.0.472.62, does not properly perform a cast of an unspecified variable, which allows remote attackers to have an unknown impact via a malformed SVG document.

Alerts:
SUSE SUSE-SR:2011:002 2011-01-25
openSUSE openSUSE-SU-2011:0024-1 2011-01-12
Fedora FEDORA-2010-16880 2010-10-28

Comments (none posted)

xcftools: code execution

Package(s):gnome-xcf-thumbnailer CVE #(s):CVE-2009-2175
Created:November 9, 2010 Updated:November 10, 2010
Description: From the CVE entry:

Stack-based buffer overflow in the flattenIncrementally function in flatten.c in xcftools 1.0.4, as reachable from the (1) xcf2pnm and (2) xcf2png utilities, allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via a crafted image that causes a conversion to a location "above or to the left of the canvas." NOTE: some of these details are obtained from third party information.

Alerts:
Fedora FEDORA-2010-17041 2010-10-31
Fedora FEDORA-2010-17004 2010-10-31
Fedora FEDORA-2010-17035 2010-10-31

Comments (none posted)

Page editor: Jake Edge
Next page: Kernel development>>

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds