CVE-2021-47515
📋 TL;DR
This Linux kernel vulnerability occurs when IPv4 packets are encapsulated in IPv6+SRH headers, causing the receiving interface index to be cleared from the socket control block. This can lead to a NULL pointer dereference when forwarding packets, potentially causing kernel panics or denial of service. Systems running affected Linux kernel versions with IPv6 Segment Routing (SRv6) enabled are vulnerable.
💻 Affected Systems
- Linux kernel
📦 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 →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 and denial of service, requiring physical or remote console access to reboot.
Likely Case
System instability or crashes when processing specific IPv4-in-IPv6 encapsulated traffic with SRH headers.
If Mitigated
No impact if IPv6 Segment Routing is disabled or systems are not processing the specific encapsulation traffic.
🎯 Exploit Status
Exploitation requires sending specially crafted network packets to trigger the NULL pointer dereference. No public exploit code has been identified.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in kernel versions: 5.10.84, 5.15.8, 5.16-rc4+ and later stable branches
Vendor Advisory: https://git.kernel.org/stable/c/6431e71093f3da586a00c6d931481ffb0dc2db0e
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version from your distribution's repositories. 2. Reboot system to load new kernel. 3. Verify kernel version with 'uname -r'.
🔧 Temporary Workarounds
Disable IPv6 Segment Routing
linuxDisable SRv6 functionality to prevent the vulnerable code path from being triggered
sysctl -w net.ipv6.conf.all.seg6_enabled=0
sysctl -w net.ipv6.conf.default.seg6_enabled=0
Block SRH encapsulation traffic
linuxUse firewall rules to block IPv6 packets with Segment Routing Headers
iptables -A INPUT -p ipv6 --ipv6-extension seg6 -j DROP
ip6tables -A INPUT -m rt --rt-type 4 -j DROP
🧯 If You Can't Patch
- Implement network filtering to block SRH-encapsulated traffic at perimeter
- Disable IPv6 Segment Routing on all affected systems using sysctl commands
🔍 How to Verify
Check if Vulnerable:
Check kernel version with 'uname -r' and compare against affected versions. Check if SRv6 is enabled with 'sysctl net.ipv6.conf.all.seg6_enabled'.
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version is patched (5.10.84+, 5.15.8+, or 5.16-rc4+). Test SRv6 functionality if required for operations.
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages in /var/log/messages or dmesg
- NULL pointer dereference errors in kernel logs
- System crash/reboot events
Network Indicators:
- Unusual IPv6 traffic with SRH headers
- Spike in malformed packet drops
SIEM Query:
source="kernel" AND ("NULL pointer dereference" OR "kernel panic" OR "seg6")
🔗 References
- https://git.kernel.org/stable/c/6431e71093f3da586a00c6d931481ffb0dc2db0e
- https://git.kernel.org/stable/c/666521b3852d2b2f52d570f9122b1e4b50d96831
- https://git.kernel.org/stable/c/98adb2bbfa407c9290bda299d4c6f7a1c4ebd5e1
- https://git.kernel.org/stable/c/ae68d93354e5bf5191ee673982251864ea24dd5c
- https://git.kernel.org/stable/c/b16d412e5f79734033df04e97d7ea2f50a8e9fe3
- https://git.kernel.org/stable/c/ef8804e47c0a44ae106ead1740408af5ea6c6ee9
- https://git.kernel.org/stable/c/6431e71093f3da586a00c6d931481ffb0dc2db0e
- https://git.kernel.org/stable/c/666521b3852d2b2f52d570f9122b1e4b50d96831
- https://git.kernel.org/stable/c/98adb2bbfa407c9290bda299d4c6f7a1c4ebd5e1
- https://git.kernel.org/stable/c/ae68d93354e5bf5191ee673982251864ea24dd5c
- https://git.kernel.org/stable/c/b16d412e5f79734033df04e97d7ea2f50a8e9fe3
- https://git.kernel.org/stable/c/ef8804e47c0a44ae106ead1740408af5ea6c6ee9