Cloudanix VulnDB

CVE-2025-21670

Medium · 5.5

CVSS

5.5

EPSS

0.2%

Published

Jan 31, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in the Linux kernel can cause the entire system to crash when certain network socket operations happen after a connection attempt fails.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Missing null check on vsk->transport in vsock_bpf_recvmsg allows NULL pointer dereference during recvmsg on connected vsock sockets (stream/seqpacket) that have no transport assigned after a failed connect.

Why it matters to the business

Local denial-of-service via kernel panic on systems exposing vsock sockets to untrusted processes; low exploitation likelihood reduces immediate risk but still requires patching.

How an attack unfolds

An attacker creates a vsock socket, triggers a failed connect that leaves transport NULL, then calls recvmsg (or recvfrom) which enters the BPF path and dereferences the null transport pointer, crashing the kernel.

How to fix it

Upgrade the Linux kernel package on Debian 12 to version 6.1.99-1 or later; apply the fix that adds an early return when transport is not assigned.

How to confirm the fix worked

Confirm kernel version is 6.1.99-1 or newer; reproduce the vsock connect failure followed by recvmsg and verify no NULL dereference oops occurs.

Typical attack path

  1. Create a vsock socket
  2. Perform a connect that fails, leaving transport unassigned
  3. Invoke recvmsg or recvfrom on the socket
  4. Trigger the vsock_bpf_recvmsg path leading to vsock_connectible_has_data

How to detect it

Search kernel logs and dmesg for oops traces containing vsock_bpf_recvmsg, vsock_connectible_has_data, and NULL pointer dereference at address 00000000000000a0; correlate with processes calling recvfrom on vsock sockets.

  • vsock_connectible_has_data+0x1f/0x40
  • vsock_bpf_recvmsg+0xca/0x5e0
  • BUG: kernel NULL pointer dereference, address: 00000000000000a0
  • PGD 12faf8067 P4D 12faf8067 PUD 113670067 PMD 0
  • Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI

What your security team should do

  • Prioritize kernel package updates on all Debian 12 systems using vsock
  • Monitor kernel logs for vsock-related NULL pointer oops entries
  • Restrict unprivileged access to vsock sockets where feasible until patched

The record

In the Linux kernel, the following vulnerability has been resolved: vsock/bpf: return early if transport is not assigned Some of the core functions can only be called if the transport has been assigned. As Michal reported, a socket might have the transport at NULL, for example after a failed connect(), causing the following trace: BUG: kernel NULL pointer dereference, address: 00000000000000a0 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 12faf8067 P4D 12faf8067 PUD 113670067 PMD 0 Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 15 UID: 0 PID: 1198 Comm: a.out Not tainted 6.13.0-rc2+ RIP: 0010:vsock_connectible_has_data+0x1f/0x40 Call Trace: vsock_bpf_recvmsg+0xca/0x5e0 sock_recvmsg+0xb9/0xc0 __sys_recvfrom+0xb3/0x130 __x64_sys_recvfrom+0x20/0x30 do_syscall_64+0x93/0x180 entry_SYSCALL_64_after_hwframe+0x76/0x7e So we need to check the `vsk->transport` in vsock_bpf_recvmsg(), especially for connected sockets (stream/seqpacket) as we already do in __vsock_connectible_recvmsg().

Affected packages

Ecosystem Package Introduced Fixed
Debian:13 linux 0 6.12.11-1
Linux Kernel 6.4.0 6.6.74
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_8 0 1-150600.1.3.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_8 0 1-150600.13.3.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.38.1.150600.12.16.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.15.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.15.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.15.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.15.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.38.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.31.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.31.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.31.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.38.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.26.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.26.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.26.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.26.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.31.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.38.1.150600.12.16.2
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.26.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.26.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.31.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.26.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.38.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.31.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.26.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.38.1

Related vulnerabilities