Cloudanix VulnDB

CVE-2025-38018

None

CVSS

—

EPSS

0.5%

Published

Jun 18, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in the Linux kernel's handling of encrypted network traffic could cause computers to crash unexpectedly when memory runs low.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Kernel NULL pointer dereference in net/tls TLS strip receive path when alloc_page fails, leaving frag_list detached without resetting full_len so subsequent tls_strp_check_queue_ok and tls_strp_read_sock calls dereference invalid memory.

Why it matters to the business

Linux systems handling TLS traffic can experience sudden kernel panics and crashes, leading to unplanned downtime, loss of network sessions, and potential data corruption on servers or devices running affected kernels; the 496-day-old issue remains relevant given ongoing Linux kernel deployments and listed threat actor interest in kernel flaws.

How an attack unfolds

An attacker establishes a TLS connection and sends data under memory pressure so that alloc_page fails inside tls_strp_flush_anchor_copy; the missing full_len reset causes the receive path to dereference a NULL frag_list on the next tls_strp_data_ready call, triggering the panic. Threat actors associated with Linux kernel privilege-escalation campaigns may combine this with other kernel bugs for denial-of-service or further exploitation.

How to fix it

Upgrade the Linux kernel to a version containing commit 8f7f96549bc55e4ef3a6b499bc5011e5de2f46c4 or later; for Mageia 5 systems apply the mediawiki package update 1.23.11-1.mga5 or newer equivalent kernel packages; prioritize patching on systems with TLS offload enabled.

How to confirm the fix worked

Confirm kernel version contains commit 8f7f96549bc55e4ef3a6b499bc5011e5de2f46c4; reproduce the panic scenario under memory pressure and verify absence of the NULL dereference in tls_strp_check_rcv; monitor for stable TLS receive behavior without oops.

Typical attack path

  1. Establish TLS session over TCP
  2. Induce memory pressure on the target system
  3. Send TLS record that triggers alloc_page failure in tls_strp code
  4. Trigger subsequent data_ready path to dereference detached frag_list
  5. Cause kernel NULL pointer dereference and panic

How to detect it

Search kernel logs and dmesg for the call trace containing tls_strp_check_rcv, tls_strp_data_ready, tls_data_ready and the NULL pointer dereference at address 0000000000000028; correlate with TLS connection establishment under memory pressure; review threat actor TTPs involving Linux kernel privilege escalation for related artifacts.

  • Unable to handle kernel NULL pointer dereference at virtual address 0000000000000028
  • Call trace: tls_strp_check_rcv+0x128/0x27c
  • tls_strp_data_ready+0x34/0x44
  • tls_data_ready+0x3c/0x1f0
  • tcp_data_ready+0x9c/0xe4

What your security team should do

  • Apply the referenced kernel commit or distribution update immediately on all exposed systems
  • Monitor EPSS trend and threat actor activity for similar kernel memory issues
  • Test TLS workloads under memory-constrained conditions after patching
  • Review kernel logs for prior tls_strp NULL dereference signatures

The record

In the Linux kernel, the following vulnerability has been resolved: net/tls: fix kernel panic when alloc_page failed We cannot set frag_list to NULL pointer when alloc_page failed. It will be used in tls_strp_check_queue_ok when the next time tls_strp_read_sock is called. This is because we don't reset full_len in tls_strp_flush_anchor_copy() so the recv path will try to continue handling the partial record on the next call but we dettached the rcvq from the frag list. Alternative fix would be to reset full_len. Unable to handle kernel NULL pointer dereference at virtual address 0000000000000028 Call trace: tls_strp_check_rcv+0x128/0x27c tls_strp_data_ready+0x34/0x44 tls_data_ready+0x3c/0x1f0 tcp_data_ready+0x9c/0xe4 tcp_data_queue+0xf6c/0x12d0 tcp_rcv_established+0x52c/0x798

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux-6.1 0 6.1.140-1~deb11u1
Debian:12 linux 0 6.1.140-1
Debian:13 linux 0 6.12.30-1
Debian:14 linux 0 6.12.30-1
Linux Kernel 6.0.0 6.1.140
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_13 0 1-150600.1.5.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_13 0 1-150600.13.6.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.60.5.150600.12.26.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.60.3
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.60.3
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.43.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.43.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.43.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.44.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.44.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.44.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.60.3
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.43.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.60.5
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.60.5.150600.12.26.4
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.60.3
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.60.3
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.60.2
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.43.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.43.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.60.4

Related vulnerabilities