CyberSecBulletin
CVE-2024-36012NVD status: Modified

Linux: Use After Free

CVE-2024-36012 is a high-severity use after free vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions e3880b531b68f98d3941d83f2f6dd11cf4fd6b76, a85a60e62355e3bf4802dead7938966824b23940, 4f1de02de07748da80a8178879bc7a1df37fdf56 as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.21% chance of exploitation within 30 days, which is low compared with other CVEs.

Next patch cycle

High severity with no evidence of exploitation so far.

What to do

  1. Update Linux to e3880b531b68f98d3941d83f2f6dd11cf4fd6b76 or a85a60e62355e3bf4802dead7938966824b23940 or 4f1de02de07748da80a8178879bc7a1df37fdf56 or 10f9f426ac6e752c8d87bf4346930ba347aaabac, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 6.1.91 or 6.6.31 or 6.8.10, whichever matches your release line, or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinuxbf6a4e30ffbd9e9ef8934582feb937f6532f8b68 up to, but not including, e3880b531b68f98d3941d83f2f6dd11cf4fd6b76; bf6a4e30ffbd9e9ef8934582feb937f6532f8b68 up to, but not including, a85a60e62355e3bf4802dead7938966824b23940; bf6a4e30ffbd9e9ef8934582feb937f6532f8b68 up to, but not including, 4f1de02de07748da80a8178879bc7a1df37fdf56; bf6a4e30ffbd9e9ef8934582feb937f6532f8b68 up to, but not including, 10f9f426ac6e752c8d87bf4346930ba347aaabac; 5.12e3880b531b68f98d3941d83f2f6dd11cf4fd6b76, a85a60e62355e3bf4802dead7938966824b23940, 4f1de02de07748da80a8178879bc7a1df37fdf56, 10f9f426ac6e752c8d87bf4346930ba347aaabac
LinuxLinux Kernel5.12 up to, but not including, 6.1.91; 6.2 up to, but not including, 6.6.31; 6.7 up to, but not including, 6.8.10; 6.96.1.91, 6.6.31, 6.8.10

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
LocalThe attacker needs local access or must trick a user into running something.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
LowA basic user account is enough.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
HighAll data handled by the component can be read.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 3.17.8HighCNA
CVSS 3.17.8HighNVD

Official description

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: msft: fix slab-use-after-free in msft_do_close() Tying the msft->data lifetime to hdev by freeing it in hci_release_dev() to fix the following case: [use] msft_do_close() msft = hdev->msft_data; if (!msft) ...(1) <- passed. return; mutex_lock(&msft->filter_lock); ...(4) <- used after freed. [free] msft_unregister() msft = hdev->msft_data; hdev->msft_data = NULL; ...(2) kfree(msft); ...(3) <- msft is freed. ================================================================== BUG: KASAN: slab-use-after-free in __mutex_lock_common kernel/locking/mutex.c:587 [inline] BUG: KASAN: slab-use-after-free in __mutex_lock+0x8f/0xc30 kernel/locking/mutex.c:752 Read of size 8 at addr ffff888106cbbca8 by task kworker/u5:2/309

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Use After Free

The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory belongs to the code that operates on the new pointer.

How developers prevent this class of flaw

  • Choose a language that provides automatic memory management.
  • When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.

More Use After Free vulnerabilities (CWE-416)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: partial).
  3. Record last changed materially (score, affected products, status or references).

References

Recent Use After Free vulnerabilities

Spotted an error? Tell us.