LWN.net Logo

Security

Stockpiling zero-day vulnerabilities

By Jake Edge
August 15, 2012

Zero-day vulnerabilities (aka zero-days or 0days) are those that have not been disclosed, so that they could be exploited before systems can be updated to avoid them. Thus, having a supply of carefully hoarded zero-day vulnerabilities can be advantageous for various people and organizations who might want to attack systems. The market for these zero-days has been growing for some time, which raises some ethical, and perhaps political, questions.

A post to the Electronic Frontier Foundation (EFF) blog back in March was the jumping off point for a discussion of the issue on the DailyDave security mailing list recently. The EFF post highlighted the fact that these vulnerabilities are for sale and that governments are participating in the market. When vulnerabilities have a market value, there is little or no impetus to actually report and fix the problems, but those who buy them are able to protect their systems (and those of their "friends"), while leaving the rest of the world unprotected. The EFF recommended that the US government (at least) ensure that these vulnerabilities be reported:

If the U.S. government is serious about securing the Internet, any bill, directive, or policy related to cybersecurity should work toward ensuring that vulnerabilities are fixed, and explicitly disallow any clandestine operations within the government that do not further this goal. Unfortunately, if these exploits are being bought by governments for offensive purposes, then there is pressure to selectively harden sensitive targets while keeping the attack secret from everyone else, leaving technology—and its users—vulnerable to attack.

In a post about this year's Black Hat security conference, DailyDave list owner Dave Aitel mentioned the EFF post, noting that calls for restricting what zero-day owners can do is "giving up freedom for security". He pointed out that any legislative solution is likely to be ineffective, but, beyond that, it is a question of freedom. Restricting the kind of code that can be written, or what can be done with that code, is not respecting anyone's freedom, he said. He advocated something of a boycott of EFF until it changes its position.

While there was some sympathy for his view of the EFF in the thread, there was also some wider discussion of the implications of zero-day hoarding. Michal Zalewski noted that the practice makes us all less safe:

[...] the side effect of governments racing to hoard 0-days and withhold them from the general public is that this drastically increases the number of 0-day vulnerabilities that are known and unpatched at any given time. This makes the Internet statistically less safe, and gives the government a monopoly in deciding who is "important enough" to get that information and patch themselves. The disparity in purchasing power is also troubling, given that governments have tons of "free money" to spend on defense, and are eager to do so, outcompeting any other buyers.

But Bas Alberts pointed out that vulnerabilities are something of a power-leveler between individuals and larger organizations (like governments):

I would go as far as to say that 0day ownership promotes freedom for the individual, regardless of who is selling or buying it. That's coincidental. It is one of the few areas where a sufficiently motivated individual or group of individuals can find, exploit, and develop an offensive capability that rivals that of a nation state. It represents a right to bear arms (RAWR!) on the Electronic Frontier(tm).

The semi-public markets in vulnerabilities may be relatively new, but using vulnerabilities as commodities is not, as Alberts describes:

Vulnerabilities and exploits have always been a commodity ... a commodity of ego, humor and yes *gasp* money. Exploit developers on both sides of the fence have been commoditizing exploits for close to 2 decades, if not longer. They've been commoditized as marketing tools, network tools, performance art, weapons, and political statements ... regardless of whether they were private or public and regardless of who was using them.

But the focus on zero-days is somewhat misplaced, according to Ben Nagy. While they may be a threat, it is not the primary threat to individuals from governments. There are much simpler ways to compromise a system:

They send their targets stock malware and say 'please install by clicking on this photo, love, er... not the government, srsly'. Or, they leverage the fact that they have physical access to the carrier, the internet cafes and so forth. (Or probably they just use humint [human intelligence] cause it's easier).

Legislation is also something of a slippery slope. For one thing, it will be difficult (or impossible) to enforce, even within a government. But, even if it is only applied to the US government—as the EFF post seems to advocate—these kinds of laws have a tendency to grow over time. As David Maynor put it: "If you apply regulations to one part of an industry, at some point regulations will seep to every part like the stench of rotten eggs." He goes on to describe some—seemingly—unlikely scenarios, but his point is clear: if government is not "allowed" to possess zero-day exploits, who will be allowed to?

It is assumed that governments want these kinds of vulnerabilities to attack other countries (a la Stuxnet). As Nagy pointed out, there are easier ways to attack individuals. Security firms also want to stockpile zero-days to protect their customers. There are other reasons to collect vulnerabilities, though.

There are reports that various folks are stockpiling Linux vulnerabilities so that they can "root" their mobile phones and other devices that use it. Presumably, there are iOS fans doing the same thing. Because some device vendors (Apple is the poster child, but various Android vendors aren't far behind) try to prevent users from getting root access, those that want to be able to do what they want with their devices need to find some kind of vulnerability to do so. That may be a "freedom-loving" example, but it suffers from many of the same risks that other types of vulnerability hoarding do.

Zero-day vulnerabilities lose their zero-day status—along with much of their potency—once they are used, reported, or fixed. Someone holding a zero-day cannot know that someone else hasn't also discovered the problem. Any purchased zero-days are certainly known to the seller, at least, but they could also be sold multiple times. If those vulnerabilities fall into the "wrong hands" (however defined), they could be used or disclosed, which makes secrecy paramount in the eyes of the hoarder.

But if the information is to be used to protect certain systems, it has to be disseminated to some extent. Meanwhile, those on the outside are blissfully unaware of a potential problem. It is a tricky problem, but it is a little hard to see how any kind of legislation is going to "fix" it. It may, in fact, not really be a solvable problem at all. As various posters in the thread said, it is tempting to want to legislate against "bad" things, but when trying to define "bad", the devil is in the details.

Comments (23 posted)

Brief items

Security quotes of the week

There are many remaining mysteries in the Gauss and Flame stories. For instance, how do people get infected with the malware? Or, what is the purpose of the uniquely named “Palida Narrow” font that Gauss installs?

Perhaps the most interesting mystery is Gauss’ encrypted warhead. Gauss contains a module named “Godel” that features an encrypted payload. The malware tries to decrypt this payload using several strings from the system and, upon success, executes it. Despite our best efforts, we were unable to break the encryption. So today we are presenting all the available information about the payload in the hope that someone can find a solution and unlock its secrets. We are asking anyone interested in cryptology and mathematics to join us in solving the mystery and extracting the hidden payload.

-- Kaspersky Lab asks for decryption help

Starting next week, we will begin taking into account a new signal in our rankings: the number of valid copyright removal notices we receive for any given site. Sites with high numbers of removal notices may appear lower in our results. This ranking change should help users find legitimate, quality sources of content more easily—whether it’s a song previewed on NPR’s music website, a TV show on Hulu or new music streamed from Spotify.
-- Google

Comments (16 posted)

SUSE and Secure Boot: The Details (SUSE Blog)

Vojtěch Pavlík explains SUSE's plans for supporting UEFI secure boot on the company's blog. It is similar to the Fedora approach, but creates its own key database for the shim bootloader to use with UEFI "Boot Services Only Variables". These "Machine Owner Keys" (MOKs) can be updated only during execution of the shim, thus allowing users to update them, but protecting them from overwrite by malware. "The enrollment process begins by rebooting the machine and interrupting the boot process (e.g., pressing a key) when the shim loads. The shim will then go into enrollment mode, allowing the user to replace the default SUSE key with keys from a file on the boot partition. If the user chooses to do so, the shim will then calculate a hash of that file and put the result in a “Boot Services Only” variable. This allows the shim to detect any change of the file made outside of Boot Services and thus avoid the tampering with the list of user approved MOKs." Matthew Garrett called it a "wonderfully elegant solution" and suspects that Fedora will adopt it too.

Comments (60 posted)

New vulnerabilities

bind: memory leak

Package(s):bind CVE #(s):CVE-2012-3868
Created:August 10, 2012 Updated:August 15, 2012
Description:

From the Red Hat advisory:

BIND 9 tracks incoming queries using a structure called "ns_client". When a query has been answered and the ns_client structure is no longer needed, it is stored on a queue of inactive ns_clients. When a new ns_client is needed to service a new query, the queue is checked to see if any inactive ns_clients are available before a new one is allocated; this speeds up the system by avoiding unnecessary memory allocations and de-allocations. However, when the queue is empty, and one thread inserts an ns_client into it while another thread attempts to remove it, a race bug could cause the ns_client to be lost; since the queue would appear empty in that case, a new ns_client would be allocated from memory. This condition occurred very infrequently with UDP queries but much more frequently under high TCP query loads; over time, the number of allocated but misplaced ns_client objects could grow large enough to affect system performance, and could trigger an automatic shutdown of the named process on systems with an "OOM killer" (out of memory killer) mechanism.

Alerts:
Fedora FEDORA-2012-11146 2012-08-09
Mageia MGASA-2012-0258 2012-09-07
Gentoo 201209-04 2012-09-23
Slackware SSA:2012-341-01 2012-12-06
openSUSE openSUSE-SU-2013:0605-1 2013-04-03
openSUSE openSUSE-SU-2013:0666-1 2013-04-11

Comments (none posted)

bugzilla: information leak

Package(s):bugzilla CVE #(s):CVE-2012-1969
Created:August 13, 2012 Updated:September 5, 2012
Description: From the CVE entry:

The get_attachment_link function in Template.pm in Bugzilla 2.x and 3.x before 3.6.10, 3.7.x and 4.0.x before 4.0.7, 4.1.x and 4.2.x before 4.2.2, and 4.3.x before 4.3.2 does not check whether an attachment is private before presenting the attachment description within a public comment, which allows remote attackers to obtain sensitive description information by reading a comment.

Alerts:
Fedora FEDORA-2012-11364 2012-08-13
Fedora FEDORA-2012-11324 2012-08-13
Mageia MGASA-2012-0255 2012-09-04
Mandriva MDVSA-2013:066 2013-04-08
Mageia MGASA-2013-0117 2013-04-18

Comments (none posted)

calligra: code execution

Package(s):calligra CVE #(s):CVE-2012-3456
Created:August 10, 2012 Updated:September 25, 2012
Description:

From the Ubuntu advisory:

It was discovered that Calligra incorrectly handled certain malformed MS Word documents. If a user or automated system were tricked into opening a crafted MS Word file, an attacker could cause a denial of service or execute arbitrary code with privileges of the user invoking the program.

Alerts:
Ubuntu USN-1525-1 2012-08-09
Fedora FEDORA-2012-11566 2012-08-21
Fedora FEDORA-2012-11566 2012-08-21
openSUSE openSUSE-SU-2012:1061-1 2012-08-30
Gentoo 201209-10 2012-09-25

Comments (none posted)

chromium: multiple vulnerabilities

Package(s):chromium CVE #(s):CVE-2012-2846 CVE-2012-2847 CVE-2012-2848 CVE-2012-2849 CVE-2012-2853 CVE-2012-2854 CVE-2012-2857 CVE-2012-2858 CVE-2012-2859 CVE-2012-2860
Created:August 15, 2012 Updated:August 15, 2012
Description: From the CVE entries:

Google Chrome before 21.0.1180.57 on Linux does not properly isolate renderer processes, which allows remote attackers to cause a denial of service (cross-process interference) via unspecified vectors. (CVE-2012-2846)

Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, does not request user confirmation before continuing a large series of downloads, which allows user-assisted remote attackers to cause a denial of service (resource consumption) via a crafted web site. (CVE-2012-2847)

The drag-and-drop implementation in Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, allows user-assisted remote attackers to bypass intended file access restrictions via a crafted web site. (CVE-2012-2848)

Off-by-one error in the GIF decoder in Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, allows remote attackers to cause a denial of service (out-of-bounds read) via a crafted image. (CVE-2012-2849)

The webRequest API in Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, does not properly interact with the Chrome Web Store, which allows remote attackers to cause a denial of service or possibly have unspecified other impact via a crafted web site. (CVE-2012-2853)

Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, allows remote attackers to obtain potentially sensitive information about pointer values by leveraging access to a WebUI renderer process. (CVE-2012-2854)

Use-after-free vulnerability in the Cascading Style Sheets (CSS) DOM implementation in Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, allows remote attackers to cause a denial of service or possibly have unspecified other impact via a crafted document. (CVE-2012-2857)

Buffer overflow in the WebP decoder in Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, allows remote attackers to cause a denial of service or possibly have unspecified other impact via a crafted WebP image. (CVE-2012-2858)

Google Chrome before 21.0.1180.57 on Linux does not properly handle tabs, which allows remote attackers to execute arbitrary code or cause a denial of service (application crash) via unspecified vectors. (CVE-2012-2859)

The date-picker implementation in Google Chrome before 21.0.1180.57 on Mac OS X and Linux, and before 21.0.1180.60 on Windows and Chrome Frame, allows user-assisted remote attackers to cause a denial of service or possibly have unspecified other impact via a crafted web site. (CVE-2012-2860)

Alerts:
Gentoo 201208-03 2012-08-14
Gentoo 201210-07 2012-10-21

Comments (none posted)

condor: privilege escalation

Package(s):condor CVE #(s):CVE-2012-3416
Created:August 15, 2012 Updated:September 4, 2012
Description: From the Red Hat advisory:

Condor installations that rely solely upon host-based authentication were vulnerable to an attacker who controls an IP, its reverse-DNS entry and has knowledge of a target site's security configuration. With this control and knowledge, the attacker could bypass the target site's host-based authentication and be authorized to perform privileged actions (i.e. actions requiring ALLOW_ADMINISTRATOR or ALLOW_WRITE). Condor deployments using host-based authentication that contain no hostnames (IPs or IP globs only) or use authentication stronger than host-based are not vulnerable.

Alerts:
Red Hat RHSA-2012:1168-01 2012-08-14
Red Hat RHSA-2012:1169-01 2012-08-14
Fedora FEDORA-2012-12127 2012-08-31

Comments (none posted)

dokuwiki: cross-site scripting

Package(s):dokuwiki CVE #(s):CVE-2012-0283
Created:August 13, 2012 Updated:October 30, 2012
Description: From the Mageia advisory:

Cross-site scripting (XSS) vulnerability in the tpl_mediaFileList function in inc/template.php in DokuWiki before 2012-01-25b allows remote attackers to inject arbitrary web script or HTML via the ns parameter in a medialist action to lib/exe/ajax.php

Alerts:
Mageia MGASA-2012-0207 2012-08-12
Fedora FEDORA-2012-16614 2012-10-30
Fedora FEDORA-2012-16605 2012-10-30
Gentoo 201301-07 2013-01-09

Comments (none posted)

kernel: privilege escalation

Package(s):linux-ti-omap4 CVE #(s):CVE-2012-3364 CVE-2012-3400
Created:August 13, 2012 Updated:March 7, 2013
Description: From the Ubuntu advisory:

Dan Rosenberg discovered flaws in the Linux kernel's NCI (Near Field Communication Controller Interface). A remote attacker could exploit these flaws to crash the system or potentially execute privileged code. (CVE-2012-3364)

Some errors where discovered in the Linux kernel's UDF file system, which is used to mount some CD-ROMs and DVDs. An unprivileged local user could use these flaws to crash the system. (CVE-2012-3400)

Alerts:
Ubuntu USN-1514-1 2012-08-10
Ubuntu USN-1529-1 2012-08-10
Ubuntu USN-1532-1 2012-08-10
Ubuntu USN-1533-1 2012-08-10
Ubuntu USN-1539-1 2012-08-14
Mageia MGASA-2012-0237 2012-08-23
Ubuntu USN-1557-1 2012-09-06
Ubuntu USN-1556-1 2012-09-06
Ubuntu USN-1562-1 2012-09-10
SUSE SUSE-SU-2012:1391-1 2012-10-24
Red Hat RHSA-2012:1426-01 2012-11-06
CentOS CESA-2012:1426 2012-11-07
Oracle ELSA-2012-1426 2012-11-06
Scientific Linux SL-kern-20121107 2012-11-07
Oracle ELSA-2012-2044 2012-11-09
Oracle ELSA-2012-2044 2012-11-09
Oracle ELSA-2012-2043 2012-11-09
Oracle ELSA-2012-2043 2012-11-09
Red Hat RHSA-2012:1491-01 2012-12-04
Mageia MGASA-2013-0010 2013-01-18
Mageia MGASA-2013-0009 2013-01-18
Mageia MGASA-2013-0011 2013-01-18
Mageia MGASA-2013-0012 2013-01-18
Mageia MGASA-2013-0016 2013-01-24
Oracle ELSA-2013-2507 2013-02-28
openSUSE openSUSE-SU-2013:0396-1 2013-03-05
Red Hat RHSA-2013:0594-01 2013-03-05
Scientific Linux SL-kern-20130306 2013-03-06
CentOS CESA-2013:0594 2013-03-06
Oracle ELSA-2013-0594 2013-03-07
Oracle ELSA-2013-0594 2013-03-07

Comments (none posted)

koffice: code execution

Package(s):koffice CVE #(s):CVE-2012-3455
Created:August 10, 2012 Updated:August 30, 2012
Description:

From the Ubuntu advisory:

It was discovered that KOffice incorrectly handled certain malformed MS Word documents. If a user or automated system were tricked into opening a crafted MS Word file, an attacker could cause a denial of service or execute arbitrary code with privileges of the user invoking the program.

Alerts:
Ubuntu USN-1526-1 2012-08-09
Fedora FEDORA-2012-11546 2012-08-14
openSUSE openSUSE-SU-2012:1060-1 2012-08-30

Comments (none posted)

libotr: code execution

Package(s):libotr CVE #(s):CVE-2012-3461
Created:August 13, 2012 Updated:April 10, 2013
Description: From the Debian advisory:

Just Ferguson discovered that libotr, an off-the-record (OTR) messaging library, can be forced to perform zero-length allocations for heap buffers that are used in base64 decoding routines. An attacker can exploit this flaw by sending crafted messages to an application that is using libotr to perform denial of service attacks or potentially execute arbitrary code.

Alerts:
Debian DSA-2526-1 2012-08-12
Mandriva MDVSA-2012:131 2012-08-13
Ubuntu USN-1541-1 2012-08-16
Mageia MGASA-2012-0223 2012-08-18
Fedora FEDORA-2012-11959 2012-08-25
Fedora FEDORA-2012-11934 2012-08-25
openSUSE openSUSE-SU-2012:1525-1 2012-11-22
SUSE SUSE-SU-2012:1578-1 2012-11-28
openSUSE openSUSE-SU-2013:0155-1 2013-01-23
Mandriva MDVSA-2013:097 2013-04-10

Comments (none posted)

libvirt: remote denial of service

Package(s):libvirt CVE #(s):CVE-2012-3445
Created:August 15, 2012 Updated:September 5, 2012
Description: From the CVE entry:

The virTypedParameterArrayClear function in libvirt 0.9.13 does not properly handle virDomain* API calls with typed parameters, which might allow remote authenticated users to cause a denial of service (libvirtd crash) via an RPC command with nparams set to zero, which triggers an out-of-bounds read or a free of an invalid pointer.

Alerts:
openSUSE openSUSE-SU-2012:0991-1 2012-08-15
Red Hat RHSA-2012:1202-01 2012-08-23
Fedora FEDORA-2012-11843 2012-08-22
CentOS CESA-2012:1202 2012-08-24
Oracle ELSA-2012-1202 2012-08-23
Scientific Linux SL-libv-20120823 2012-08-23
Fedora FEDORA-2012-12523 2012-09-04

Comments (none posted)

openttd: denial of service

Package(s):openttd CVE #(s):CVE-2012-3436
Created:August 13, 2012 Updated:August 30, 2012
Description: From the Mageia advisory:

This security update fixes CVE-2012-3436 (Denial of service (server) using ships on half tiles and landscaping).

Alerts:
Mageia MGASA-2012-0212 2012-08-12
Fedora FEDORA-2012-12208 2012-08-27
Fedora FEDORA-2012-12198 2012-08-27
openSUSE openSUSE-SU-2012:1063-1 2012-08-30

Comments (none posted)

perl-RT-Authen-ExternalAuth: privilege escalation

Package(s):perl-RT-Authen-ExternalAuth CVE #(s):CVE-2012-2770
Created:August 10, 2012 Updated:August 15, 2012
Description:

From the Red Hat advisory:

RT::Authen::ExternalAuth 0.10 and below (for all versions of RT) are vulnerable to an escalation of privilege attack where the URL of a RSS feed of the user can be used to acquire a fully logged-in session as that user.

Alerts:
Fedora FEDORA-2012-11360 2012-08-09
Fedora FEDORA-2012-11337 2012-08-09

Comments (none posted)

php5: denial of service

Package(s):php5 CVE #(s):CVE-2012-3450
Created:August 14, 2012 Updated:August 15, 2012
Description: From the CVE entry:

pdo_sql_parser.re in the PDO extension in PHP before 5.3.14 and 5.4.x before 5.4.4 does not properly determine the end of the query string during parsing of prepared statements, which allows remote attackers to cause a denial of service (out-of-bounds read and application crash) via a crafted parameter value.

Alerts:
Debian DSA-2527-1 2012-08-13
Ubuntu USN-1569-1 2012-09-17
Gentoo 201209-03 2012-09-23

Comments (none posted)

rubygem-actionpack: denial of service

Package(s):rubygem-actionpack CVE #(s):CVE-2012-3424
Created:August 10, 2012 Updated:August 15, 2012
Description:

From the Red Hat advisory:

DoS Vulnerability in authenticate_or_request_with_http_digest

There is a DoS vulnerability in Action Pack digest authentication handling in Rails.

Alerts:
Fedora FEDORA-2012-11353 2012-08-09
Fedora FEDORA-2012-11363 2012-08-09
openSUSE openSUSE-SU-2012:1066-1 2012-08-30
Red Hat RHSA-2013:0582-01 2013-02-28

Comments (none posted)

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

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