CVE-2022-50231

7.1 HIGH

📋 TL;DR

This is a read out-of-bounds vulnerability in the ARM64 Poly1305 cryptographic implementation in the Linux kernel. It allows attackers to read kernel memory beyond allocated boundaries, potentially leaking sensitive information. Systems running affected Linux kernel versions with ARM64 architecture and Poly1305 crypto usage are vulnerable.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Specific versions between initial Poly1305 ARM64 implementation and fix commit 3c77292d52b341831cb09c24ca4112a1e4f9e91f
Operating Systems: Linux distributions with ARM64 architecture
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when using Poly1305 cryptographic operations on ARM64 systems. Requires kernel built with Poly1305 support.

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

⚠️ Risk & Real-World Impact

🔴

Worst Case

Kernel memory disclosure leading to privilege escalation, sensitive data exposure, or system crash/DoS.

🟠

Likely Case

Information disclosure of kernel memory contents, potentially including cryptographic keys or other sensitive data.

🟢

If Mitigated

Limited impact due to KASAN detection or system crash without data compromise.

🌐 Internet-Facing: MEDIUM - Requires specific conditions (ARM64, Poly1305 usage) but could be triggered via network crypto operations.
🏢 Internal Only: MEDIUM - Similar risk profile, but requires local access or specific crypto operations.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Proof-of-concept code provided in CVE description. Exploitation requires ability to trigger Poly1305 operations with specific malformed input.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in kernel commit 3c77292d52b341831cb09c24ca4112a1e4f9e91f and backported to stable branches

Vendor Advisory: https://git.kernel.org/stable/c/3c77292d52b341831cb09c24ca4112a1e4f9e91f

Restart Required: Yes

Instructions:

1. Update Linux kernel to patched version from your distribution vendor. 2. Reboot system to load new kernel. 3. Verify kernel version after reboot.

🔧 Temporary Workarounds

Disable Poly1305 module

linux

Prevent loading of vulnerable Poly1305 ARM64 module

echo 'blacklist poly1305_neon' > /etc/modprobe.d/disable-poly1305.conf
rmmod poly1305_neon

🧯 If You Can't Patch

  • Implement strict access controls to limit who can perform cryptographic operations
  • Monitor for kernel crashes or KASAN reports indicating exploitation attempts

🔍 How to Verify

Check if Vulnerable:

Check if system is ARM64 and Poly1305 module is loaded: 'uname -m' should show aarch64 and 'lsmod | grep poly1305' shows module loaded

Check Version:

uname -r

Verify Fix Applied:

Check kernel version against patched versions from your distribution vendor

📡 Detection & Monitoring

Log Indicators:

  • KASAN reports of slab-out-of-bounds reads in poly1305_neon
  • Kernel panic/crash logs during crypto operations

Network Indicators:

  • Unusual cryptographic operation patterns

SIEM Query:

kernel: *KASAN* AND *poly1305* AND *slab-out-of-bounds*

🔗 References

📤 Share & Export