CVE-2024-44985

7.8 HIGH

📋 TL;DR

This CVE describes a use-after-free vulnerability in the Linux kernel's IPv6 packet transmission function (ip6_xmit()). If skb_expand_head() fails and returns NULL, the socket buffer (skb) is freed, but subsequent code may still access freed memory for associated routing destination (dst) or network device (idev) structures. This affects all Linux systems with IPv6 enabled.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Specific affected versions not explicitly stated in CVE description; typically affects multiple stable kernel versions before the fix commits.
Operating Systems: All Linux distributions using vulnerable kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Requires IPv6 to be enabled and configured. The vulnerability is triggered during IPv6 packet transmission when skb_expand_head() fails.

📦 What is this software?

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

⚠️ Risk & Real-World Impact

🔴

Worst Case

Kernel panic leading to system crash, or potential kernel memory corruption that could be leveraged for privilege escalation to root.

🟠

Likely Case

System instability, kernel crashes, or denial of service conditions affecting network connectivity.

🟢

If Mitigated

Limited impact if proper network segmentation and access controls prevent untrusted users from triggering the vulnerable code path.

🌐 Internet-Facing: MEDIUM - Requires IPv6 connectivity and ability to send packets that trigger skb_expand_head() failure, which may be possible from remote networks.
🏢 Internal Only: MEDIUM - Same technical requirements as internet-facing, but internal attackers could potentially trigger the vulnerability.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: HIGH - Requires precise timing and conditions to trigger skb_expand_head() failure and subsequent use-after-free.

Exploitation requires sending network packets that cause memory allocation failure in skb_expand_head(), which is non-trivial to control reliably.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in kernel commits: 124b428fe28064c809e4237b0b38e97200a8a4a8, 2d5ff7e339d04622d8282661df36151906d0e1c7, 38a21c026ed2cc7232414cb166efc1923f34af17, 975f764e96f71616b530e300c1bb2ac0ce0c2596, b3a3d5333c13a1be57499581eab4a8fc94d57f36

Vendor Advisory: https://git.kernel.org/stable/c/124b428fe28064c809e4237b0b38e97200a8a4a8

Restart Required: Yes

Instructions:

1. Update Linux kernel to version containing the fix commits. 2. Check your distribution's security advisories for specific patched kernel versions. 3. Reboot system after kernel update.

🔧 Temporary Workarounds

Disable IPv6

linux

Completely disable IPv6 networking to prevent triggering the vulnerable code path.

echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf
sysctl -p

Restrict IPv6 network access

linux

Use firewall rules to limit which systems can send IPv6 packets to vulnerable hosts.

ip6tables -A INPUT -s <trusted_networks> -j ACCEPT
ip6tables -A INPUT -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to limit which systems can communicate with vulnerable hosts via IPv6.
  • Deploy intrusion detection/prevention systems to monitor for abnormal IPv6 traffic patterns that might indicate exploitation attempts.

🔍 How to Verify

Check if Vulnerable:

Check kernel version and compare with distribution's security advisories. Vulnerable if running kernel version before the fix commits.

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes the fix commits: 'uname -r' and check with distribution vendor for patched versions.

📡 Detection & Monitoring

Log Indicators:

  • Kernel panic messages in /var/log/messages or dmesg
  • System crash/reboot logs
  • Network interface errors related to IPv6 transmission

Network Indicators:

  • Abnormal IPv6 packet patterns causing memory allocation failures
  • Sudden loss of IPv6 connectivity

SIEM Query:

source="kernel" AND ("panic" OR "Oops" OR "general protection fault") AND ("ip6_xmit" OR "IPv6")

🔗 References

📤 Share & Export