CVE-2022-48689

7.0 HIGH

📋 TL;DR

This CVE describes a race condition vulnerability in the Linux kernel's TCP zerocopy implementation where the kernel incorrectly checks pfmemalloc page status for user-space pages. This can cause false positives leading to potential memory corruption or system instability. It affects Linux systems using TCP zerocopy functionality.

💻 Affected Systems

Products:
  • Linux Kernel
Versions: Versions after commit c07aea3ef4d4 (mm: add a signature in struct page) up to fix commits
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Requires TCP zerocopy functionality to be used. More probable after commit c07aea3ef4d4 due to changes in page structure.

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

⚠️ Risk & Real-World Impact

🔴

Worst Case

Kernel panic, system crash, or memory corruption leading to privilege escalation or denial of service.

🟠

Likely Case

System instability, kernel crashes, or performance degradation under specific network conditions.

🟢

If Mitigated

Minor performance impact or no noticeable effect with proper kernel versions.

🌐 Internet-Facing: MEDIUM - Requires specific network conditions and TCP zerocopy usage, but could be triggered remotely.
🏢 Internal Only: MEDIUM - Same technical risk but limited to internal network access.

🎯 Exploit Status

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

Exploitation requires precise timing (race condition) and specific network conditions. Found via syzbot fuzzing.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in kernel commits: 3261400639463a853ba2b3be8bd009c2a8089775, 6730c48ed6b0cd939fc9b30b2d621ce0b89bea83, 8527c9a6bf8e54fef0a8d3d7d8874a48c725c915

Vendor Advisory: https://git.kernel.org/stable/c/3261400639463a853ba2b3be8bd009c2a8089775

Restart Required: Yes

Instructions:

1. Update Linux kernel to version containing fix commits. 2. For stable teams: backport 84ce071e38a6 (net: introduce __skb_fill_page_desc_noacc) as prerequisite. 3. Reboot system after kernel update.

🔧 Temporary Workarounds

Disable TCP zerocopy

linux

Disable TCP zerocopy functionality to prevent the vulnerable code path

sysctl -w net.ipv4.tcp_zerocopy_receive=0

🧯 If You Can't Patch

  • Disable TCP zerocopy functionality via sysctl
  • Implement network segmentation to limit exposure
  • Monitor system logs for kernel panics or instability

🔍 How to Verify

Check if Vulnerable:

Check kernel version and if TCP zerocopy is enabled: sysctl net.ipv4.tcp_zerocopy_receive

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes fix commits and TCP zerocopy works without issues

📡 Detection & Monitoring

Log Indicators:

  • Kernel panic logs
  • System crash dumps
  • KCSAN race condition reports in dmesg

Network Indicators:

  • TCP connection resets
  • Network performance degradation

SIEM Query:

source="kernel" AND ("panic" OR "KCSAN" OR "race condition")

🔗 References

📤 Share & Export