greybus: Fix use-after-free bug in gb_interface_release due to race condition. (Linux Linux)

CVE-2024-39495
HIGH 7.8

At a glance

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

Description

In the Linux kernel, the following vulnerability has been resolved: greybus: Fix use-after-free bug in gb_interface_release due to race condition. In gb_interface_create, &intf->mode_switch_completion is bound with gb_interface_mode_switch_work. Then it will be started by gb_interface_request_mode_switch. Here is the relevant code. if (!queue_work(system_long_wq, &intf->mode_switch_work)) { ... } If we call gb_interface_release to make cleanup, there may be an unfinished work. This function will call kfree to free the object "intf". However, if gb_interface_mode_switch_work is scheduled to run after kfree, it may cause use-after-free error as gb_interface_mode_switch_work will use the object "intf". The possible execution flow that may lead to the issue is as follows: CPU0 CPU1 | gb_interface_create | gb_interface_request_mode_switch gb_interface_release | kfree(intf) (free) | | gb_interface_mode_switch_work | mutex_lock(&intf->mutex) (use) Fix it by canceling the work before kfree.

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:HLinux
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HCISA-ADP
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)
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary)

European references

CERT-FR advisories

Affected configurations (NVD CPE)

Affected products

ProductVersions
Linux · Linuxaffected 55742d2a071a569bf20f90d37b1b5b8a25a3f882 < 74cd0a421896b2e07eafe7da4275302bfecef201 ; affected 55742d2a071a569bf20f90d37b1b5b8a25a3f882 < 2b6bb0b4abfd79b8698ee161bb73c0936a2aaf83 ; affected 55742d2a071a569bf20f90d37b1b5b8a25a3f882 < fb071f5c75d4b1c177824de74ee75f9dd34123b9 ; affected 55742d2a071a569bf20f90d37b1b5b8a25a3f882 < 9a733d69a4a59c2d08620e6589d823c24be773dc ; affected 55742d2a071a569bf20f90d37b1b5b8a25a3f882 < 0b8fba38bdfb848fac52e71270b2aa3538c996ea ; affected 55742d2a071a569bf20f90d37b1b5b8a25a3f882 < 03ea2b129344152157418929f06726989efc0445
Linux · Linuxaffected 4.9 ; unaffected 0 < 4.9 ; unaffected 5.4.279 ≤ 5.4.* ; unaffected 5.10.221 ≤ 5.10.* ; unaffected 5.15.162 ≤ 5.15.* ; unaffected 6.1.95 ≤ 6.1.*

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