CVE-2022-50073

net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev is null

MEDIUM
5.5
CVSS Score
Published: June 18, 2025 at 11:02 AM UTC
Updated: August 12, 2026 at 07:28 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev is null Fixes a NULL pointer derefence bug triggered from tap driver. When tap_get_user calls virtio_net_hdr_to_skb the skb->dev is null (in tap.c skb->dev is set after the call to virtio_net_hdr_to_skb) virtio_net_hdr_to_skb calls dev_parse_header_protocol which needs skb->dev field to be valid. The line that trigers the bug is in dev_parse_header_protocol (dev is at offset 0x10 from skb and is stored in RAX register) if (!dev->header_ops || !dev->header_ops->parse_protocol) 22e1: mov 0x10(%rbx),%rax 22e5: mov 0x230(%rax),%rax Setting skb->dev before the call in tap.c fixes the issue. BUG: kernel NULL pointer dereference, address: 0000000000000230 RIP: 0010:virtio_net_hdr_to_skb.constprop.0+0x335/0x410 [tap] Code: c0 0f 85 b7 fd ff ff eb d4 41 39 c6 77 cf 29 c6 48 89 df 44 01 f6 e8 7a 79 83 c1 48 85 c0 0f 85 d9 fd ff ff eb b7 48 8b 43 10 <48> 8b 80 30 02 00 00 48 85 c0 74 55 48 8b 40 28 48 85 c0 74 4c 48 RSP: 0018:ffffc90005c27c38 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff888298f25300 RCX: 0000000000000010 RDX: 0000000000000005 RSI: ffffc90005c27cb6 RDI: ffff888298f25300 RBP: ffffc90005c27c80 R08: 00000000ffffffea R09: 00000000000007e8 R10: ffff88858ec77458 R11: 0000000000000000 R12: 0000000000000001 R13: 0000000000000014 R14: ffffc90005c27e08 R15: ffffc90005c27cb6 FS: 0000000000000000(0000) GS:ffff88858ec40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000230 CR3: 0000000281408006 CR4: 00000000003706e0 Call Trace: tap_get_user+0x3f1/0x540 [tap] tap_sendmsg+0x56/0x362 [tap] ? get_tx_bufs+0xc2/0x1e0 [vhost_net] handle_tx_copy+0x114/0x670 [vhost_net] handle_tx+0xb0/0xe0 [vhost_net] handle_tx_kick+0x15/0x20 [vhost_net] vhost_worker+0x7b/0xc0 [vhost] ? vhost_vring_call_reset+0x40/0x40 [vhost] kthread+0xfa/0x120 ? kthread_complete_and_exit+0x20/0x20 ret_from_fork+0x1f/0x30

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 4.14.226v ≥ 4.19.181v ≥ 5.11.7v ≥ 5.4.1064.14.226 ≤ v < 4.154.19.181 ≤ v < 4.205.10.24 ≤ v < 5.10.2585.10.24 ≤ v < 5.115.11.7 ≤ v < 5.125.12 ≤ v < 5.15.2095.12 ≤ v < 5.19.45.12 ≤ v < 6.05.12.1 ≤ v < 5.19.45.4.106 ≤ v < 5.54.14.2264.19.1815.10.245.11.75.125.12 rc35.12 rc45.12 rc55.12 rc65.12 rc75.12 rc85.4.10654ef8243c3c8e90f1ea5792e6752e021a25c8eb3924a9bc362a5223cd448ca08c3dde21235adc31099b1d3f74b9ef72c2f74c8e4c078e1bc0706e748ca278267d6cd9544645731732455b6b20cb0e895ea3fb2ce5fa794d02135f5c079e05cd6fc3f545dfaa3baa2828c5e1c4374f3e60041f75c64f5fcb6
Vendor states this is fixed in 447ba770cfe798925f4923548b367fd49f0ee5f0 (fixed)
Vendor states this is fixed in 4f61f133f354853bc394ec7d6028adb9b02dd701 (fixed)
Vendor states this is fixed in 8f90163f9e013c8fc791aab338aab44a46044cfc (fixed)
Vendor states this is fixed in dd29648fcf69339713f2d25f7014ae905dcdfc18 (fixed)
Affected range stops below 4.15, so it looks safe — our inference, not a vendor statement
Affected range stops below 4.20, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.10.258 (unaffected)
Affected range stops below 5.11, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.12 (unaffected)
Vendor states this is fixed in 5.15.209 (unaffected)
Vendor states this is fixed in 5.19.4 (unaffected)
Affected range stops below 5.5, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.0 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-476

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card