CVE-2020-36789
📋 TL;DR
This Linux kernel vulnerability in the CAN network subsystem could cause a kernel warning or potential NULL pointer dereference when CAN drivers process echo frames in hardware interrupt context. It affects systems using CAN bus interfaces with specific network congestion conditions. The issue is limited to CAN network stack functionality.
💻 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 →⚠️ Risk & Real-World Impact
Worst Case
Kernel panic or system crash due to NULL pointer dereference during network congestion when CAN drivers process echo frames in hardware IRQ context.
Likely Case
Kernel warning messages in system logs and potential performance degradation under specific network conditions.
If Mitigated
Minor performance impact with warning messages but no system instability.
🎯 Exploit Status
Exploitation requires specific hardware conditions (CAN interface with echo frame processing in hardware IRQ context) and network congestion to trigger the race condition.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in kernel commits: 2283f79b22684d2812e5c76fc2280aae00390365, 248b71ce92d4f3a574b2537f9838f48e892618f4, 3a922a85701939624484e7f2fd07d32beed00d25, 451187b20431924d13fcfecc500d7cd2d9951bac, 7e4cf2ec0ca236c3e5f904239cec6efe1f3baf22
Vendor Advisory: https://git.kernel.org/stable/c/2283f79b22684d2812e5c76fc2280aae00390365
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. Check with your distribution vendor for backported patches. 3. Reboot system after kernel update.
🔧 Temporary Workarounds
Disable CAN interfaces if not needed
linuxRemove or disable CAN network interfaces that are not required for system operation
sudo modprobe -r can_dev
sudo modprobe -r can
Limit CAN network traffic
linuxConfigure CAN interfaces to limit traffic and reduce congestion risk
sudo ip link set can0 type can bitrate 125000
sudo ip link set can0 up
🧯 If You Can't Patch
- Monitor system logs for WARN_ON(in_irq) messages related to skb_release_head_state
- Implement network segmentation to isolate CAN traffic and reduce congestion
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if CAN interfaces are active: 'uname -r' and 'ip link show | grep can'
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes fix commits: 'uname -r' and check changelog for commit hashes
📡 Detection & Monitoring
Log Indicators:
- WARN_ON(in_irq) messages in kernel logs
- skb_release_head_state warnings
- CAN-related error messages
Network Indicators:
- Unusual CAN network traffic patterns
- Increased packet loss on CAN interfaces
SIEM Query:
source="kernel" AND ("WARN_ON(in_irq)" OR "skb_release_head_state" OR "can_get_echo_skb")
🔗 References
- https://git.kernel.org/stable/c/2283f79b22684d2812e5c76fc2280aae00390365
- https://git.kernel.org/stable/c/248b71ce92d4f3a574b2537f9838f48e892618f4
- https://git.kernel.org/stable/c/3a922a85701939624484e7f2fd07d32beed00d25
- https://git.kernel.org/stable/c/451187b20431924d13fcfecc500d7cd2d9951bac
- https://git.kernel.org/stable/c/7e4cf2ec0ca236c3e5f904239cec6efe1f3baf22
- https://git.kernel.org/stable/c/87530b557affe01c764de32dbeb58cdf47234574
- https://git.kernel.org/stable/c/ab46748bf98864f9c3f5559060bf8caf9df2b41e