Linux Kernel 3.4.80/3.10.30/3.12.11/3.13.3 /fs/cifs/file.c cifs_iovec_write memory corruption

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 7.3 | $0-$5k | 0.00 |
Summary
A vulnerability labeled as critical has been found in Linux Kernel 3.4.80/3.10.30/3.12.11/3.13.3. This affects the function cifs_iovec_write of the file /fs/cifs/file.c. The manipulation results in memory corruption.
This vulnerability is reported as CVE-2014-0069. No exploit exists.
It is advisable to implement a patch to correct this issue.
Details
A vulnerability was found in Linux Kernel 3.4.80/3.10.30/3.12.11/3.13.3 (Operating System). It has been classified as critical. Affected is the function cifs_iovec_write of the file /fs/cifs/file.c. The manipulation with an unknown input leads to a memory corruption vulnerability. CWE is classifying the issue as CWE-119. The product performs operations on a memory buffer, but it can read from or write to a memory location that is outside of the intended boundary of the buffer. This is going to have an impact on confidentiality, integrity, and availability. CVE summarizes:
The cifs_iovec_write function in fs/cifs/file.c in the Linux kernel through 3.13.5 does not properly handle uncached write operations that copy fewer than the requested number of bytes, which allows local users to obtain sensitive information from kernel memory, cause a denial of service (memory corruption and system crash), or possibly gain privileges via a writev system call with a crafted pointer.
The weakness was disclosed 02/14/2014 by Al Viro as cifs: ensure that uncached writes handle unmapped areas correctly as not defined posting (Mailing List). The advisory is shared for download at article.gmane.org. This vulnerability is traded as CVE-2014-0069 since 12/03/2013. The exploitability is told to be easy. The attack needs to be approached locally. The exploitation doesn't require any form of authentication. There are known technical details, but no exploit is available. The advisory points out:
It's possible for userland to pass down an iovec via writev() that has a bogus user pointer in it. If that happens and we're doing an uncached write, then we can end up getting less bytes than we expect from the call to iov_iter_copy_from_user.
The vulnerability scanner Nessus provides a plugin with the ID 72546 (Fedora 20 : kernel-3.13.3-201.fc20 (2014-2576)), which helps to determine the existence of the flaw in a target environment. It is assigned to the family Fedora Local Security Checks. The commercial vulnerability scanner Qualys is able to test this issue with plugin 350456 (Amazon Linux Security Advisory for kernel: ALAS-2014-289).
Applying a patch is able to eliminate this problem. The bugfix is ready for download at article.gmane.org. A possible mitigation has been published immediately after the disclosure of the vulnerability. The posting contains the following remark:
Fix this by having the copy phase of cifs_iovec_write stop copying data in this situation and send the last write as a short one. At the same time, we want to avoid sending a zero-length write to the server, so break out of the loop and set rc to -EFAULT if that happens. This also allows us to handle the case where no address in the iovec is valid. (...) Marking this for stable on v3.4+ kernels, but kernels as old as v2.6.38 may have a similar problem and may need similar fix.
The vulnerability is also documented in the databases at X-Force (91225), Tenable (72546), SecurityFocus (BID 65588†), Secunia (SA56967†) and Vulnerability Center (SBV-43319†). VulDB is the best source for vulnerability data and more expert information about this specific topic.
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: 8.4VulDB Meta Temp Score: 7.0
VulDB Base Score: 8.4
VulDB Temp Score: 7.0
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: Memory corruptionCWE: CWE-119
CAPEC: 🔍
ATT&CK: 🔍
Physical: Partially
Local: Yes
Remote: No
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: 72546
Nessus Name: Fedora 20 : kernel-3.13.3-201.fc20 (2014-2576)
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍
Nessus Port: 🔍
OpenVAS ID: 881910
OpenVAS Name: CentOS Update for kernel CESA-2014:0328 centos6
OpenVAS File: 🔍
OpenVAS Family: 🔍
Qualys ID: 🔍
Qualys Name: 🔍
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: PatchStatus: 🔍
Reaction Time: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Patch: article.gmane.org
Timeline
12/03/2013 🔍02/12/2014 🔍
02/12/2014 🔍
02/14/2014 🔍
02/14/2014 🔍
02/18/2014 🔍
02/18/2014 🔍
02/20/2014 🔍
02/22/2014 🔍
02/28/2014 🔍
07/10/2024 🔍
Sources
Vendor: kernel.orgAdvisory: cifs: ensure that uncached writes handle unmapped areas correctly
Researcher: Al Viro
Status: Not defined
Confirmation: 🔍
CVE: CVE-2014-0069 (🔍)
GCVE (CVE): GCVE-0-2014-0069
GCVE (VulDB): GCVE-100-12372
OVAL: 🔍
X-Force: 91225 - Linux Kernel cifs_iovec_write() privilege escalation, High Risk
SecurityFocus: 65588 - Linux Kernel '/fs/cifs/file.c' Local Memory Corruption Vulnerability
Secunia: 56967 - Linux Kernel CIFS Uncached Writes Handling Vulnerability, Less Critical
Vulnerability Center: 43319 - Linux Kernel Local Information Disclosure and DoS due to a Flaw in the /fs/cifs/file.c File, Medium
Entry
Created: 02/22/2014 20:22Updated: 07/10/2024 19:22
Changes: 02/22/2014 20:22 (83), 05/21/2017 14:08 (5), 06/09/2021 17:02 (3), 07/10/2024 19:22 (20)
Complete: 🔍
Cache ID: 216:A8F:103
No comments yet. Languages: en.
Please log in to comment.