Linux Kernel 3.3.5 kernel/futex.c futex_wait_requeue_pi input validation

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 6.5 | $0-$5k | 0.00 |
Summary
A vulnerability classified as problematic has been found in Linux Kernel 3.3.5. This issue affects the function futex_wait_requeue_pi of the file kernel/futex.c. Performing a manipulation results in input validation.
This vulnerability is known as CVE-2012-6647. No exploit is available.
It is recommended to apply a patch to fix this issue.
Details
A vulnerability, which was classified as critical, was found in Linux Kernel 3.3.5 (Operating System). This affects the function futex_wait_requeue_pi of the file kernel/futex.c. The manipulation with an unknown input leads to a input validation vulnerability. CWE is classifying the issue as CWE-20. The product receives input or data, but it does
not validate or incorrectly validates that the input has the
properties that are required to process the data safely and
correctly. This is going to have an impact on availability. The summary by CVE is:
The futex_wait_requeue_pi function in kernel/futex.c in the Linux kernel before 3.5.1 does not ensure that calls have two different futex addresses, which allows local users to cause a denial of service (NULL pointer dereference and system crash) or possibly have unspecified other impact via a crafted FUTEX_WAIT_REQUEUE_PI command.
The issue has been introduced in 04/03/2009. The weakness was published 05/14/2014 by Prasad J Pandit as forbid uaddr == uaddr2 in futex_wait_requeue_pi() to avoid null dereference (oss-sec). It is possible to read the advisory at openwall.com. This vulnerability is uniquely identified as CVE-2012-6647 since 05/14/2014. The exploitability is told to be easy. It is possible to initiate the attack remotely. No form of authentication is needed for exploitation. Technical details of the vulnerability are known, but there is no available exploit. The advisory points out:
Linux kernel built with the fast userspace mutexes(CONFIG_FUTEX) support is vulnerable to a NULL pointer dereference flaw. It could occur when a waiting task requests wait to be re-queued from non-PI futex to a PI-aware futex via FUTEX_WAIT_REQUEUE_PI operation.
The vulnerability was handled as a non-public zero-day exploit for at least 1208 days. During that time the estimated underground price was around $5k-$25k. The vulnerability scanner Nessus provides a plugin with the ID 76948 (CentOS 6 : kernel (CESA-2014:0981)), which helps to determine the existence of the flaw in a target environment. It is assigned to the family CentOS Local Security Checks. The commercial vulnerability scanner Qualys is able to test this issue with plugin 167228 (SUSE Enterprise Linux Security Update for Linux Kernel (SUSE-SU-2014:0807-1)).
Applying a patch is able to eliminate this problem. The bugfix is ready for download at git.kernel.org. A possible mitigation has been published even before and not after the disclosure of the vulnerability. The vulnerability will be addressed with the following lines of code:
if (uaddr == uaddr2) return -EINVAL;
The vulnerability is also documented in the databases at X-Force (93134), Tenable (76948), SecurityFocus (BID 67395†) and Vulnerability Center (SBV-44652†). Further details are available at seclists.org. Similar entries are available at VDB-11302, VDB-11755, VDB-12214 and VDB-12411. Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Product
Type
Vendor
Name
Version
License
Website
- Vendor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 7.5VulDB Meta Temp Score: 6.5
VulDB Base Score: 7.5
VulDB Temp Score: 6.5
VulDB Vector: 🔍
VulDB Reliability: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
NVD Base Score: 🔍
Exploiting
Class: Input validationCWE: CWE-20
CAPEC: 🔍
ATT&CK: 🔍
Physical: Partially
Local: Yes
Remote: Yes
Availability: 🔍
Status: Unproven
EPSS Score: 🔍
EPSS Percentile: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 76948
Nessus Name: CentOS 6 : kernel (CESA-2014:0981)
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍
Nessus Port: 🔍
Qualys ID: 🔍
Qualys Name: 🔍
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: PatchStatus: 🔍
0-Day Time: 🔍
Patch: git.kernel.org
Timeline
04/03/2009 🔍07/24/2012 🔍
05/14/2014 🔍
05/14/2014 🔍
05/14/2014 🔍
05/14/2014 🔍
05/16/2014 🔍
05/26/2014 🔍
05/27/2014 🔍
08/01/2014 🔍
06/19/2021 🔍
Sources
Vendor: kernel.orgAdvisory: forbid uaddr == uaddr2 in futex_wait_requeue_pi() to avoid null dereference
Researcher: Prasad J Pandit
Status: Confirmed
Confirmation: 🔍
CVE: CVE-2012-6647 (🔍)
GCVE (CVE): GCVE-0-2012-6647
GCVE (VulDB): GCVE-100-13215
OVAL: 🔍
X-Force: 93134 - Linux Kernel futex.c denial of service, Medium Risk
SecurityFocus: 67395 - Linux Kernel 'futex.c' Function Denial of Service Vulnerability
Vulnerability Center: 44652 - Linux Kernel Before 3.5.1 Local DoS via a NULL Pointer Dereference, Medium
Misc.: 🔍
See also: 🔍
Entry
Created: 05/16/2014 16:09Updated: 06/19/2021 15:30
Changes: 05/16/2014 16:09 (71), 05/29/2017 08:52 (12), 06/19/2021 15:30 (3)
Complete: 🔍
Cache ID: 216:708:103
No comments yet. Languages: en.
Please log in to comment.