CVE-2020-36789

5.5 MEDIUM

📋 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

Products:
  • Linux kernel
Versions: Multiple stable kernel versions before the fix commits
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with CAN bus interfaces enabled and drivers that call can_get_echo_skb() in hardware interrupt context.

📦 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.

🌐 Internet-Facing: LOW - CAN bus interfaces are typically internal automotive/industrial networks, not internet-facing.
🏢 Internal Only: MEDIUM - Affects systems with CAN interfaces in industrial/automotive/embedded environments where network congestion could trigger the issue.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: HIGH

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

linux

Remove 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

linux

Configure 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

📤 Share & Export