CVE-2022-50004 in Linux
Summary
by MITRE • 06/18/2025
In the Linux kernel, the following vulnerability has been resolved:
xfrm: policy: fix metadata dst->dev xmit null pointer dereference
When we try to transmit an skb with metadata_dst attached (i.e. dst->dev == NULL) through xfrm interface we can hit a null pointer dereference[1]
in xfrmi_xmit2() -> xfrm_lookup_with_ifid() due to the check for a loopback skb device when there's no policy which dereferences dst->dev unconditionally. Not having dst->dev can be interepreted as it not being a loopback device, so just add a check for a null dst_orig->dev.
With this fix xfrm interface's Tx error counters go up as usual.
[1] net-next calltrace captured via netconsole:
BUG: kernel NULL pointer dereference, address: 00000000000000c0 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP
CPU: 1 PID: 7231 Comm: ping Kdump: loaded Not tainted 5.19.0+ #24 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-1.fc36 04/01/2014 RIP: 0010:xfrm_lookup_with_ifid+0x5eb/0xa60 Code: 8d 74 24 38 e8 26 a4 37 00 48 89 c1 e9 12 fc ff ff 49 63 ed 41 83 fd be 0f 85 be 01 00 00 41 be ff ff ff ff 45 31 ed 48 8b 03 <f6> 80 c0 00 00 00 08 75 0f 41 80 bc 24 19 0d 00 00 01 0f 84 1e 02 RSP: 0018:ffffb0db82c679f0 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffd0db7fcad430 RCX: ffffb0db82c67a10 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffb0db82c67a80 RBP: ffffb0db82c67a80 R08: ffffb0db82c67a14 R09: 0000000000000000 R10: 0000000000000000 R11: ffff8fa449667dc8 R12: ffffffff966db880 R13: 0000000000000000 R14: 00000000ffffffff R15: 0000000000000000 FS: 00007ff35c83f000(0000) GS:ffff8fa478480000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000000c0 CR3: 000000001ebb7000 CR4: 0000000000350ee0 Call Trace: <TASK> xfrmi_xmit+0xde/0x460 ? tcf_bpf_act+0x13d/0x2a0 dev_hard_start_xmit+0x72/0x1e0 __dev_queue_xmit+0x251/0xd30 ip_finish_output2+0x140/0x550 ip_push_pending_frames+0x56/0x80 raw_sendmsg+0x663/0x10a0 ? try_charge_memcg+0x3fd/0x7a0 ? __mod_memcg_lruvec_state+0x93/0x110 ? sock_sendmsg+0x30/0x40 sock_sendmsg+0x30/0x40 __sys_sendto+0xeb/0x130 ? handle_mm_fault+0xae/0x280 ? do_user_addr_fault+0x1e7/0x680 ? kvm_read_and_reset_apf_flags+0x3b/0x50 __x64_sys_sendto+0x20/0x30 do_syscall_64+0x34/0x80 entry_SYSCALL_64_after_hwframe+0x46/0xb0 RIP: 0033:0x7ff35cac1366 Code: eb 0b 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b8 0f 1f 00 41 89 ca 64 8b 04 25 18 00 00 00 85 c0 75 11 b8 2c 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 72 c3 90 55 48 83 ec 30 44 89 4c 24 2c 4c 89 RSP: 002b:00007fff738e4028 EFLAGS: 00000246 ORIG_RAX: 000000000000002c RAX: ffffffffffffffda RBX: 00007fff738e57b0 RCX: 00007ff35cac1366 RDX: 0000000000000040 RSI: 0000557164e4b450 RDI: 0000000000000003 RBP: 0000557164e4b450 R08: 00007fff738e7a2c R09: 0000000000000010 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000040 R13: 00007fff738e5770 R14: 00007fff738e4030 R15: 0000001d00000001 </TASK> Modules linked in: netconsole veth br_netfilter bridge bonding virtio_net [last unloaded: netconsole]
CR2: 00000000000000c0
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Analysis
by VulDB Data Team • 03/20/2026
The vulnerability identified as CVE-2022-50004 resides within the Linux kernel's IPsec framework, specifically affecting the xfrm subsystem responsible for managing security policy and transformation operations. This issue manifests as a null pointer dereference occurring during packet transmission when metadata_dst structures are attached to packets but lack valid device references. The flaw impacts the xfrmi_xmit2() function which calls xfrm_lookup_with_ifid(), where the code attempts to access dst->dev without proper validation, leading to a kernel panic when this pointer is null. The vulnerability is particularly concerning as it can be triggered through normal network operations involving IPsec interfaces, making it exploitable in scenarios where security policies are enforced.
The technical root cause stems from an insufficient null pointer check within the xfrm subsystem's packet processing logic. When a packet is transmitted through an xfrm interface with metadata_dst attached, the system performs a loopback device check that assumes dst->dev is valid. However, in certain configurations or edge cases, this pointer can be NULL, causing the subsequent dereference to crash the kernel. The call trace reveals the execution path leading to the crash, showing that the fault occurs in xfrm_lookup_with_ifid at offset 0x5eb, where the code attempts to read from memory address 0x00000000000000c0, corresponding to a NULL pointer access. This pattern aligns with CWE-476, which describes null pointer dereference vulnerabilities, and represents a classic kernel memory safety issue.
The operational impact of this vulnerability extends beyond simple system crashes, potentially enabling denial-of-service attacks against systems running IPsec services or those utilizing xfrm interfaces. Attackers could exploit this weakness by crafting specific network traffic patterns that trigger the null pointer dereference, causing kernel panics and system instability. The vulnerability affects systems using the Linux kernel version 5.19.0 and potentially earlier versions, making it a widespread concern for network security infrastructure. While the immediate impact is a kernel crash rather than arbitrary code execution, the reliability implications are significant for production environments where continuous network availability is critical. The fix implemented adds a proper null check for dst_orig->dev before attempting to access it, ensuring that the code gracefully handles cases where device information is not available.
Mitigation strategies for this vulnerability should focus on immediate kernel updates to versions containing the fix, which addresses the null pointer dereference by adding proper validation before accessing device pointers. System administrators should prioritize patching affected systems, particularly those running IPsec services or utilizing xfrm interfaces. Network monitoring should be enhanced to detect unusual packet transmission patterns that might indicate exploitation attempts, as the vulnerability can be triggered through legitimate network operations. Additionally, implementing proper kernel hardening measures and maintaining up-to-date security patches across all network infrastructure components helps prevent exploitation of similar vulnerabilities. The fix aligns with ATT&CK technique T1499.004, which involves network denial-of-service attacks, by ensuring that the system properly handles malformed or edge-case packet scenarios without crashing.