ext4: avoid use-after-free in ext4_ext_show_leaf()
In ext4_find_extent(), path may be freed by error or be reallocated, so
using a previously saved *ppath may have been freed and thus may trigger
use-after-free, as follows:
ext4_split_extent
path = *ppath;
ext4_split_extent_at(ppath)
path = ext4_find_extent(ppath)
ext4_split_extent_at(ppath)
// ext4_find_extent fails to free path
// but zeroout succeeds
ext4_ext_show_leaf(inode, path)
eh = path[depth].p_hdr
// path use-after-free !!!
Similar to ext4_split_extent_at(), we use *ppath directly as an input to
ext4_ext_show_leaf(). Fix a spelling error by the way.
Same problem in ext4_ext_handle_unwritten_extents(). Since 'path' is only
used in ext4_ext_show_leaf(), remove 'path' and use *ppath directly.
This issue is triggered only when EXT_DEBUG is defined and therefore does
not affect functionality.
Metrics
Affected Vendors & Products
| Source | ID | Title | 
|---|---|---|
  Debian DLA | 
                DLA-4008-1 | linux-6.1 security update | 
  Debian DLA | 
                DLA-4075-1 | linux security update | 
  Ubuntu USN | 
                USN-7166-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7166-2 | Linux kernel (AWS) vulnerabilities | 
  Ubuntu USN | 
                USN-7166-3 | Linux kernel (HWE) vulnerabilities | 
  Ubuntu USN | 
                USN-7166-4 | Linux kernel (Xilinx ZynqMP) vulnerabilities | 
  Ubuntu USN | 
                USN-7186-1 | Linux kernel (Intel IoTG) vulnerabilities | 
  Ubuntu USN | 
                USN-7186-2 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7194-1 | Linux kernel (Azure) vulnerabilities | 
  Ubuntu USN | 
                USN-7276-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7277-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7301-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7303-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7303-2 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7303-3 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7304-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7310-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7311-1 | Linux kernel vulnerabilities | 
  Ubuntu USN | 
                USN-7384-1 | Linux kernel (Azure) vulnerabilities | 
  Ubuntu USN | 
                USN-7384-2 | Linux kernel (Azure) vulnerabilities | 
  Ubuntu USN | 
                USN-7385-1 | Linux kernel (IBM) vulnerabilities | 
  Ubuntu USN | 
                USN-7386-1 | Linux kernel (OEM) vulnerabilities | 
  Ubuntu USN | 
                USN-7403-1 | Linux kernel (HWE) vulnerabilities | 
  Ubuntu USN | 
                USN-7468-1 | Linux kernel (Azure, N-Series) vulnerabilities | 
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Mon, 03 Nov 2025 23:30:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| References | 
         | 
Mon, 03 Nov 2025 21:30:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| References | 
         | 
Wed, 14 May 2025 02:30:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| First Time appeared | 
        
        Redhat
         Redhat enterprise Linux  | 
|
| CPEs | cpe:/a:redhat:enterprise_linux:9 cpe:/o:redhat:enterprise_linux:9  | 
|
| Vendors & Products | 
        
        Redhat
         Redhat enterprise Linux  | 
Fri, 25 Oct 2024 15:00:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| First Time appeared | 
        
        Linux
         Linux linux Kernel  | 
|
| Weaknesses | CWE-416 | |
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | |
| Vendors & Products | 
        
        Linux
         Linux linux Kernel  | 
|
| Metrics | 
        
        
        cvssV3_1
         
  | 
    
        
        
        cvssV3_1
         
  | 
Wed, 23 Oct 2024 01:30:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| References | 
         | |
| Metrics | 
        
        
        threat_severity
         
  | 
    
        
        cvssV3_1
         
 
  | 
Tue, 22 Oct 2024 14:15:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| Metrics | 
        
        ssvc
         
  | 
Mon, 21 Oct 2024 18:15:00 +0000
| Type | Values Removed | Values Added | 
|---|---|---|
| Description | In the Linux kernel, the following vulnerability has been resolved: ext4: avoid use-after-free in ext4_ext_show_leaf() In ext4_find_extent(), path may be freed by error or be reallocated, so using a previously saved *ppath may have been freed and thus may trigger use-after-free, as follows: ext4_split_extent path = *ppath; ext4_split_extent_at(ppath) path = ext4_find_extent(ppath) ext4_split_extent_at(ppath) // ext4_find_extent fails to free path // but zeroout succeeds ext4_ext_show_leaf(inode, path) eh = path[depth].p_hdr // path use-after-free !!! Similar to ext4_split_extent_at(), we use *ppath directly as an input to ext4_ext_show_leaf(). Fix a spelling error by the way. Same problem in ext4_ext_handle_unwritten_extents(). Since 'path' is only used in ext4_ext_show_leaf(), remove 'path' and use *ppath directly. This issue is triggered only when EXT_DEBUG is defined and therefore does not affect functionality. | |
| Title | ext4: avoid use-after-free in ext4_ext_show_leaf() | |
| References | 
         | 
        
  | 
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-11-03T22:22:53.988Z
Reserved: 2024-10-21T12:17:06.022Z
Link: CVE-2024-49889
Updated: 2025-11-03T22:22:53.988Z
Status : Modified
Published: 2024-10-21T18:15:11.513
Modified: 2025-11-03T23:16:29.053
Link: CVE-2024-49889
                        OpenCVE Enrichment
                    No data.
 Debian DLA
 Ubuntu USN