CVE-2024-53142·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: initramfs: avoid filename buffer overrun The initramfs filename field is defined in Documentation/driver-api/early-userspace/buffer-format.rst as: 37 cpio_file := ALGN(4) + cpio_header + filename + "\0" + ALGN(4) + data ... 55 ============= ================== ========================= 56 Field name Field size Meaning 57 ============= ================== ========================= ... 70 c_namesize 8 bytes Length of filename, including final \0 When extracting an initramfs cpio archive, the kernel's do_name() path handler assumes a zero-terminated path at @collected, passing it directly to filp_open() / init_mkdir() / init_mknod(). If a specially crafted cpio entry carries a non-zero-terminated filename and is followed by uninitialized memory, then a file may be created with trailing characters that represent the uninitialized memory. The ability to create an initramfs entry would imply already having full control of the system, so the buffer overrun shouldn't be considered a security vulnerability. Append the output of the following bash script to an existing initramfs and observe any created /initramfs_test_fname_overrunAA* path. E.g. ./reproducer.sh | gzip >> /myinitramfs It's easiest to observe non-zero uninitialized memory when the output is gzipped, as it'll overflow the heap allocated @out_buf in __gunzip(), rather than the initrd_start+initrd_size block. ---- reproducer.sh ---- nilchar="A" # change to "\0" to properly zero terminate / pad magic="070701" ino=1 mode=$(( 0100777 )) uid=0 gid=0 nlink=1 mtime=1 filesize=0 devmajor=0 devminor=1 rdevmajor=0 rdevminor=0 csum=0 fname="initramfs_test_fname_overrun" namelen=$(( ${#fname} + 1 )) # plus one to account for terminator printf "%s%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%s" \ $magic $ino $mode $uid $gid $nlink $mtime $filesize \ $devmajor $devminor $rdevmajor $rdevminor $namelen $csum $fname termpadlen=$(( 1 + ((4 - ((110 + $namelen) & 3)) % 4) )) printf "%.s${nilchar}" $(seq 1 $termpadlen) ---- reproducer.sh ---- Symlink filename fields handled in do_symlink() won't overrun past the data segment, due to the explicit zero-termination of the symlink target. Fix filename buffer overrun by aborting the initramfs FSM if any cpio entry doesn't carry a zero-terminator at the expected (name_len - 1) offset.
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.12.2
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 5% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2024-53142 scores 7.8 on CVSS, so a successful attack would be serious — but at <0.1%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
Affected versions
From: 6.12
Until: 6.12.2
Fixed in: 6.12.2
How to fix this CVE
Update your Linux kernel to version 6.12.2 or later to resolve this initramfs filename buffer overrun vulnerability. The vulnerability affects systems using kernel versions 6.12 through 6.12.1, where specially crafted cpio entries in initramfs archives can cause uninitialized memory to be written to filenames during early boot. Apply the update immediately if you are running an affected kernel version.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your current kernel version with `uname -r` and compare against the affected range (6.12.0 to 6.12.1)
- Step 2: Verify initramfs integrity by examining `/boot/initramfs-*` or `/boot/initrd-*` files; check their creation date and size for anomalies
- Step 3: Search kernel logs with `dmesg | grep -i 'cpio\|initramfs\|filename'` for any parsing errors or warnings during boot
- Step 4: After applying kernel updates, confirm the new version with `uname -r` and reboot to activate the patched kernel
FAQ
What is CVE-2024-53142?
CVE-2024-53142 is a kernel vulnerability in the initramfs cpio archive extraction code where non-zero-terminated filenames can cause uninitialized memory to be appended to created filenames during early boot. Although exploitation requires full system control, the buffer overrun can result in unexpected file creation with corrupted names.
Is CVE-2024-53142 being actively exploited?
No, this vulnerability is not currently being actively exploited in the wild and is not listed in CISA's Known Exploited Vulnerabilities catalog. However, it should still be patched as part of routine kernel maintenance.
What versions of Kernel are affected by CVE-2024-53142?
Linux kernel versions 6.12.0, 6.12.1, and 6.12.2 before patching are affected. The vulnerability was fixed in kernel 6.12.2 and later versions.
How do I check if my server is vulnerable to CVE-2024-53142?
Run `uname -r` to retrieve your kernel version. If the output shows 6.12.0 or 6.12.1, your system is vulnerable. If it shows 6.12.2 or higher (e.g., 6.12.3, 6.13+), the patch is already applied.
Does Defensia detect CVE-2024-53142?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2024-53142 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/1a423bbbeaf9e3e20c4686501efd9b661fe834db
- https://git.kernel.org/stable/c/49d01e736c3045319e030d1e75fb983011abaca7
- https://git.kernel.org/stable/c/6983b8ac787b3add5571cda563574932a59a99bb
- https://git.kernel.org/stable/c/bb7ac96670ab1d8d681015f9d66e45dad579af4d
- https://git.kernel.org/stable/c/c509b1acbd867d9e09580fe059a924cb5825afb1
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-53142. Free for 1 server.
Get started free