cachefiles: defer exposing anon_fd until after copy_to_user() succeeds (Linux Linux)

CVE-2024-40913
HIGH 7.8

At a glance

Source
NVD
EPSS
EPSS 0.29 % · percentile 21 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Modified

Description

In the Linux kernel, the following vulnerability has been resolved: cachefiles: defer exposing anon_fd until after copy_to_user() succeeds After installing the anonymous fd, we can now see it in userland and close it. However, at this point we may not have gotten the reference count of the cache, but we will put it during colse fd, so this may cause a cache UAF. So grab the cache reference count before fd_install(). In addition, by kernel convention, fd is taken over by the user land after fd_install(), and the kernel should not call close_fd() after that, i.e., it should call fd_install() after everything is ready, thus fd_install() is called after copy_to_user() succeeds.

Weaknesses (CWE)

References

Scores

VersionScoreVectorScored by
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · nvd@nist.gov (Primary)

European references

CERT-FR advisories

Affected configurations (NVD CPE)

Affected products

ProductVersions
Linux · Linuxaffected c8383054506c77b814489c09877b5db83fd4abf2 < eac51d9daacd61dcc93333ff6a890cf3efc8c1c0 ; affected c8383054506c77b814489c09877b5db83fd4abf2 < d2d3eb377a5d081bf2bed177d354a4f59b74da88 ; affected c8383054506c77b814489c09877b5db83fd4abf2 < b9f58cdae6a364a3270fd6b6a46e0fd4f7f8ce32 ; affected c8383054506c77b814489c09877b5db83fd4abf2 < 4b4391e77a6bf24cba2ef1590e113d9b73b11039
Linux · Linuxaffected 5.19 ; unaffected 0 < 5.19 ; unaffected 6.1.95 ≤ 6.1.* ; unaffected 6.6.35 ≤ 6.6.* ; unaffected 6.9.6 ≤ 6.9.* ; unaffected 6.10 ≤ *

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD