Linux Kernel up to 5.15.162/6.1.99/6.6.40/6.9.9 skmsg /test_progs page_address null pointer dereference

CVSS Meta Temp Score
CVSS is a standardized scoring system to determine possibilities of attacks. The Temp Score considers temporal factors like disclosure, exploit and countermeasures. The unique Meta Score calculates the average score of different sources to provide a normalized scoring system.
Current Exploit Price (≈)
Our analysts are monitoring exploit markets and are in contact with vulnerability brokers. The range indicates the observed or calculated exploit price to be seen on exploit markets. A good indicator to understand the monetary effort required for and the popularity of an attack.
CTI Interest Score
Our Cyber Threat Intelligence team is monitoring different web sites, mailing lists, exploit markets and social media networks. The CTI Interest Score identifies the interest of attackers and the security community for this specific vulnerability in real-time. A high score indicates an elevated risk to be targeted for this vulnerability.
4.6$0-$5k0.00

Summaryinfo

A vulnerability marked as critical has been reported in Linux Kernel up to 5.15.162/6.1.99/6.6.40/6.9.9. Impacted is the function page_address of the file /test_progs of the component skmsg. The manipulation leads to null pointer dereference. This vulnerability is uniquely identified as CVE-2024-41048. No exploit exists. It is suggested to upgrade the affected component.

Detailsinfo

A vulnerability was found in Linux Kernel up to 5.15.162/6.1.99/6.6.40/6.9.9. It has been rated as critical. This issue affects the function page_address of the file /test_progs of the component skmsg. The manipulation with an unknown input leads to a null pointer dereference vulnerability. Using CWE to declare the problem leads to CWE-476. A NULL pointer dereference occurs when the application dereferences a pointer that it expects to be valid, but is NULL, typically causing a crash or exit. Impacted is availability. The summary by CVE is:

In the Linux kernel, the following vulnerability has been resolved: skmsg: Skip zero length skb in sk_msg_recvmsg When running BPF selftests (./test_progs -t sockmap_basic) on a Loongarch platform, the following kernel panic occurs: [...] Oops[#1]: CPU: 22 PID: 2824 Comm: test_progs Tainted: G OE 6.10.0-rc2+ #18 Hardware name: LOONGSON Dabieshan/Loongson-TC542F0, BIOS Loongson-UDK2018 ... ... ra: 90000000048bf6c0 sk_msg_recvmsg+0x120/0x560 ERA: 9000000004162774 copy_page_to_iter+0x74/0x1c0 CRMD: 000000b0 (PLV0 -IE -DA +PG DACF=CC DACM=CC -WE) PRMD: 0000000c (PPLV0 +PIE +PWE) EUEN: 00000007 (+FPE +SXE +ASXE -BTE) ECFG: 00071c1d (LIE=0,2-4,10-12 VS=7) ESTAT: 00010000 [PIL] (IS= ECode=1 EsubCode=0) BADV: 0000000000000040 PRID: 0014c011 (Loongson-64bit, Loongson-3C5000) Modules linked in: bpf_testmod(OE) xt_CHECKSUM xt_MASQUERADE xt_conntrack Process test_progs (pid: 2824, threadinfo=0000000000863a31, task=...) Stack : ... Call Trace: [] copy_page_to_iter+0x74/0x1c0 [] sk_msg_recvmsg+0x120/0x560 [] tcp_bpf_recvmsg_parser+0x170/0x4e0 [] inet_recvmsg+0x54/0x100 [] sock_recvmsg+0x7c/0xe0 [] __sys_recvfrom+0x108/0x1c0 [] sys_recvfrom+0x1c/0x40 [] do_syscall+0x8c/0xc0 [] handle_syscall+0xc4/0x160 Code: ... ---[ end trace 0000000000000000 ]--- Kernel panic - not syncing: Fatal exception Kernel relocated by 0x3510000 .text @ 0x9000000003710000 .data @ 0x9000000004d70000 .bss @ 0x9000000006469400 ---[ end Kernel panic - not syncing: Fatal exception ]--- [...] This crash happens every time when running sockmap_skb_verdict_shutdown subtest in sockmap_basic. This crash is because a NULL pointer is passed to page_address() in the sk_msg_recvmsg(). Due to the different implementations depending on the architecture, page_address(NULL) will trigger a panic on Loongarch platform but not on x86 platform. So this bug was hidden on x86 platform for a while, but now it is exposed on Loongarch platform. The root cause is that a zero length skb (skb->len == 0) was put on the queue. This zero length skb is a TCP FIN packet, which was sent by shutdown(), invoked in test_sockmap_skb_verdict_shutdown(): shutdown(p1, SHUT_WR); In this case, in sk_psock_skb_ingress_enqueue(), num_sge is zero, and no page is put to this sge (see sg_set_page in sg_set_page), but this empty sge is queued into ingress_msg list. And in sk_msg_recvmsg(), this empty sge is used, and a NULL page is got by sg_page(sge). Pass this NULL page to copy_page_to_iter(), which passes it to kmap_local_page() and to page_address(), then kernel panics. To solve this, we should skip this zero length skb. So in sk_msg_recvmsg(), if copy is zero, that means it's a zero length skb, skip invoking copy_page_to_iter(). We are using the EFAULT return triggered by copy_page_to_iter to check for is_fin in tcp_bpf.c.

The advisory is shared at git.kernel.org. The identification of this vulnerability is CVE-2024-41048 since 07/12/2024. The exploitation is known to be difficult. Technical details are known, but no exploit is available.

The vulnerability scanner Nessus provides a plugin with the ID 207738 (Ubuntu 20.04 LTS : Linux kernel vulnerabilities (USN-7009-2)), which helps to determine the existence of the flaw in a target environment.

Upgrading to version 5.15.163, 6.1.100, 6.6.41 or 6.9.10 eliminates this vulnerability. Applying the patch 195b7bcdfc5a/fb61d7b9fb6e/b180739b45a3/f8bd689f37f4/f0c180256937 is able to eliminate this problem. The bugfix is ready for download at git.kernel.org. The best possible mitigation is suggested to be upgrading to the latest version.

The vulnerability is also documented in the databases at Tenable (207738) and CERT Bund (WID-SEC-2024-1722). If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Affected

  • Debian Linux
  • Amazon Linux 2
  • Red Hat Enterprise Linux
  • Ubuntu Linux
  • SUSE Linux
  • IBM InfoSphere Guardium
  • Oracle Linux
  • NetApp FAS
  • NetApp ActiveIQ Unified Manager
  • Siemens SIMATIC S7
  • Oracle VM
  • IBM Security Guardium
  • RESF Rocky Linux
  • Broadcom Brocade SANnav
  • Dell PowerScale
  • Open Source Linux Kernel
  • IBM QRadar SIEM
  • Dell integrated Dell Remote Access Controller
  • Dell Avamar
  • IBM Storage Scale
  • IBM Spectrum Protect Plus
  • Juniper Junos Space
  • IBM Storage Scale System
  • SolarWinds Security Event Manager
  • Dell PowerProtect Data Domain
  • Dell PowerProtect Data Domain Management Center
  • Dell PowerProtect Data Domain OS

Productinfo

Type

Vendor

Name

Version

License

Website

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Reliability: 🔍

CVSSv3info

VulDB Meta Base Score: 4.8
VulDB Meta Temp Score: 4.6

VulDB Base Score: 4.8
VulDB Temp Score: 4.6
VulDB Vector: 🔍
VulDB Reliability: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplexityAuthenticationConfidentialityIntegrityAvailability
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍

Exploitinginfo

Class: Null pointer dereference
CWE: CWE-476 / CWE-404
CAPEC: 🔍
ATT&CK: 🔍

Physical: No
Local: No
Remote: Partially

Availability: 🔍
Status: Not defined

EPSS Score: 🔍
EPSS Percentile: 🔍

Price Prediction: 🔍
Current Price Estimation: 🔍

0-DayUnlockUnlockUnlockUnlock
TodayUnlockUnlockUnlockUnlock

Nessus ID: 207738
Nessus Name: Ubuntu 20.04 LTS : Linux kernel vulnerabilities (USN-7009-2)

Threat Intelligenceinfo

Interest: 🔍
Active Actors: 🔍
Active APT Groups: 🔍

Countermeasuresinfo

Recommended: Upgrade
Status: 🔍

0-Day Time: 🔍

Upgrade: Kernel 5.15.163/6.1.100/6.6.41/6.9.10
Patch: 195b7bcdfc5a/fb61d7b9fb6e/b180739b45a3/f8bd689f37f4/f0c180256937

Timelineinfo

07/12/2024 🔍
07/29/2024 +17 days 🔍
07/29/2024 +0 days 🔍
09/02/2025 +399 days 🔍

Sourcesinfo

Vendor: kernel.org

Advisory: git.kernel.org
Status: Confirmed

CVE: CVE-2024-41048 (🔍)
GCVE (CVE): GCVE-0-2024-41048
GCVE (VulDB): GCVE-100-272717
CERT Bund: WID-SEC-2024-1722 - Linux Kernel: Mehrere Schwachstellen ermöglichen nicht spezifizierten Angriff

Entryinfo

Created: 07/29/2024 17:59
Updated: 09/02/2025 00:58
Changes: 07/29/2024 17:59 (60), 07/30/2024 17:00 (2), 09/29/2024 23:34 (2), 07/15/2025 15:26 (7), 07/19/2025 00:00 (1), 09/02/2025 00:58 (1)
Complete: 🔍
Cache ID: 216::103

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Discussion

No comments yet. Languages: en.

Please log in to comment.

Do you want to use VulDB in your project?

Use the official API to access entries easily!