CVE-2026-89780 in Linux信息

摘要

由 VulDB • 2026-09-16

在 Linux 内核中,已修复以下漏洞:

net: qualcomm: rmnet: 恢复解聚合帧中的 skb->dev

rmnet_map_deaggregate() 使用 alloc_skb() 分配每个子帧,并将 skb->dev 留为 NULL。__rmnet_map_ingress_handler() 仅在数据路径上将 skb->dev 赋值为 ep->egress_dev,但 MAP 命令帧会在此之前被分发到 rmnet_map_command(),因此 rmnet_map_send_ack() 会在一个 NULL 设备上运行 netif_tx_lock(skb->dev)。非特权用户通过取消共享 user+net 命名空间、在带有 INGRESS_DEAGGREGATION 和 INGRESS_MAP_COMMANDS 的 tap 设备之上创建 rmnet 链路,并向 tap fd 写入携带流控制命令的聚合帧来触发此漏洞。

恢复由 commit 378e25357ac7 丢弃的赋值操作,使得每个离开 rmnet_map_deaggregate() 的 skb 都拥有有效的设备。

BUG: KASAN: null-ptr-deref in _raw_spin_lock (kernel/locking/spinlock.c:158) Write of size 4 at addr 00000000000004b4 by task exploit/144 Call Trace: _raw_spin_lock (kernel/locking/spinlock.c:158) netif_tx_lock (net/sched/sch_generic.c:497) rmnet_map_command (drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c:67) rmnet_rx_handler (drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c:125) __netif_receive_skb_core.constprop.0 (net/core/dev.c:6103) ... __netif_receive_skb_one_core (net/core/dev.c:6214) netif_receive_skb (net/core/dev.c:6474) tun_get_user (drivers/net/tun.c:1966) tun_chr_write_iter (drivers/net/tun.c:2012) vfs_write (fs/read_write.c:687) ksys_write (fs/read_write.c:739) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) Kernel panic - not syncing: Fatal exception in interrupt

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!