Linux: Use After Free
CVE-2024-49884 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 393a46f60ea4f249dc9d496d4eb2d542f5e11ade, 448100a29395b0c8b4c42967155849fe0fbe808f, e52f933598b781d291b9297e39c463536da0e185 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.28% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Update Linux to 393a46f60ea4f249dc9d496d4eb2d542f5e11ade or 448100a29395b0c8b4c42967155849fe0fbe808f or e52f933598b781d291b9297e39c463536da0e185 or cafcc1bd62934547c76abf46c6d0d54f135006fe, whichever matches your release line, or a later version.
- Update SIMATIC S7-1500 CPU 1518-4 PN/DP MFP to V3.1.5 or a later version.
- Update SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP to V3.1.5 or a later version.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Linux | Linux | dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, 393a46f60ea4f249dc9d496d4eb2d542f5e11ade; dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, 448100a29395b0c8b4c42967155849fe0fbe808f; dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, e52f933598b781d291b9297e39c463536da0e185; dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, cafcc1bd62934547c76abf46c6d0d54f135006fe; dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, a5401d4c3e2a3d25643c567d26e6de327774a2c9; dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, 8fe117790b37c84c651e2bad9efc0e7fda73c0e3; dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, 5d949ea75bb529ea6342e83465938a3b0ac51238; dfe5080939ea4686b3414b5d970a9b26733c57a4 up to, but not including, 915ac3630488af0ca194dc63b86d99802b4f6e18; and 2 more ranges | 393a46f60ea4f249dc9d496d4eb2d542f5e11ade, 448100a29395b0c8b4c42967155849fe0fbe808f, e52f933598b781d291b9297e39c463536da0e185, cafcc1bd62934547c76abf46c6d0d54f135006fe, a5401d4c3e2a3d25643c567d26e6de327774a2c9, 8fe117790b37c84c651e2bad9efc0e7fda73c0e3 |
| Siemens | SIMATIC S7-1500 CPU 1518-4 PN/DP MFP | V3.1.0 up to, but not including, V3.1.5 | V3.1.5 |
| Siemens | SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP | V3.1.0 up to, but not including, V3.1.5 | V3.1.5 |
| Siemens | SIPLUS S7-1500 CPU 1518-4 PN/DP MFP | V3.1.0 up to, but not including, V3.1.5 | V3.1.5 |
| Siemens | RUGGEDCOM RST2428P | before V3.2 | V3.2 |
| Siemens | SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family | before V3.2 | V3.2 |
| Siemens | SCALANCE XCM-/XRM-/XCH-/XRH-300 family | before V3.2 | V3.2 |
| Debian | Debian Linux | 11.0 | Not stated |
| Linux | Linux Kernel | 3.18 up to, but not including, 4.19.323; 4.20 up to, but not including, 5.4.290; 5.5 up to, but not including, 5.10.227; 5.11 up to, but not including, 5.15.168; 5.16 up to, but not including, 6.1.113; 6.2 up to, but not including, 6.6.55; 6.7 up to, but not including, 6.10.14; 6.11 up to, but not including, 6.11.3 | 4.19.323, 5.4.290, 5.10.227, 5.15.168, 6.1.113, 6.6.55 |
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 system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 3.1 | 7.8 | High | CNA |
| CVSS 3.1 | 7.8 | High | NVD |
Official description
In the Linux kernel, the following vulnerability has been resolved: ext4: fix slab-use-after-free in ext4_split_extent_at() We hit the following use-after-free: ================================================================== BUG: KASAN: slab-use-after-free in ext4_split_extent_at+0xba8/0xcc0 Read of size 2 at addr ffff88810548ed08 by task kworker/u20:0/40 CPU: 0 PID: 40 Comm: kworker/u20:0 Not tainted 6.9.0-dirty #724 Call Trace: <TASK> kasan_report+0x93/0xc0 ext4_split_extent_at+0xba8/0xcc0 ext4_split_extent.isra.0+0x18f/0x500 ext4_split_convert_extents+0x275/0x750 ext4_ext_handle_unwritten_extents+0x73e/0x1580 ext4_ext_map_blocks+0xe20/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] Allocated by task 40: __kmalloc_noprof+0x1ac/0x480 ext4_find_extent+0xf3b/0x1e70 ext4_ext_map_blocks+0x188/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] Freed by task 40: kfree+0xf1/0x2b0 ext4_find_extent+0xa71/0x1e70 ext4_ext_insert_extent+0xa22/0x3260 ext4_split_extent_at+0x3ef/0xcc0 ext4_split_extent.isra.0+0x18f/0x500 ext4_split_convert_extents+0x275/0x750 ext4_ext_handle_unwritten_extents+0x73e/0x1580 ext4_ext_map_blocks+0xe20/0x2dc0 ext4_map_blocks+0x724/0x1700 ext4_do_writepages+0x12d6/0x2a70 [...] ================================================================== The flow of issue triggering is as follows: ext4_split_extent_at path = *ppath ext4_ext_insert_extent(ppath) ext4_ext_create_new_leaf(ppath) ext4_find_extent(orig_path) path = *orig_path read_extent_tree_block // return -ENOMEM or -EIO ext4_free_ext_path(path) kfree(path) *orig_path = NULL a. If err is -ENOMEM: ext4_ext_dirty(path + path->p_depth) // path use-after-free !!! b. If err is -EIO and we have EXT_DEBUG defined: ext4_ext_show_leaf(path) eh = path[depth].p_hdr // path also use-after-free !!! So when trying to zeroout or fix the extent length, call ext4_find_extent() to update the path. In addition we use *ppath directly as an ext4_ext_show_leaf() input to avoid possible use-after-free when EXT_DEBUG is defined, and to avoid unnecessary path updates.
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.
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: partial).
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- git.kernel.org/stable/c/393a46f60ea4f249dc9d496d4eb2d542f5e11ade
- git.kernel.org/stable/c/448100a29395b0c8b4c42967155849fe0fbe808f
- git.kernel.org/stable/c/5d949ea75bb529ea6342e83465938a3b0ac51238
- git.kernel.org/stable/c/8fe117790b37c84c651e2bad9efc0e7fda73c0e3
- git.kernel.org/stable/c/915ac3630488af0ca194dc63b86d99802b4f6e18
- git.kernel.org/stable/c/a5401d4c3e2a3d25643c567d26e6de327774a2c9
- git.kernel.org/stable/c/c26ab35702f8cd0cdc78f96aa5856bfb77be798f
- git.kernel.org/stable/c/cafcc1bd62934547c76abf46c6d0d54f135006fe
- git.kernel.org/stable/c/e52f933598b781d291b9297e39c463536da0e185
Third-party and government advisories
- lists.debian.org/debian-lts-announce/2025/03/msg00002.htmlMailing List, Third Party Advisory
Other references
Recent Use After Free vulnerabilities
- 7.0 High severity
- 7.0 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
Spotted an error? Tell us.