CVE-2022-50004 in Linux信息

摘要

由 VulDB • 2026-06-08

在 Linux 内核中,`CR2` 寄存器保存了导致页错误(Page Fault)的虚拟地址。当内核尝试访问该地址时,发现它没有对应的物理页面映射,从而触发异常。

### 1. 关键信息分析

* **CR2: `00000000000000c0`** * 这是导致崩溃的**虚拟地址**。 * 该地址非常低(`0xc0` = 192 字节),通常意味着**空指针解引用**或**野指针访问**。 * 在 x86_64 架构中,用户空间地址通常从 `0x00007f...` 开始,内核空间地址从 `0xffff88...` 开始。`0xc0` 是一个无效的内核地址,表明代码试图访问一个未初始化或已释放的指针所指向的位置。

* **Call Trace 分析** ``` 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 ... __sys_sendto+0xeb/0x130 ``` * **触发路径**:用户空间调用 `sendto()` 系统调用,通过 `raw_sendmsg()` 发送原始套接字(Raw Socket)数据包。 * **网络栈路径**:数据包经过 IP 层输出(`ip_finish_output2`),进入队列传输(`__dev_queue_xmit`),最终由驱动层的 `dev_hard_start_xmit` 发送。 * **关键函数**:`xfrmi_xmit+0xde/0x460` * `xfrmi` 是 **XFRM Interface**(IPsec 接口)的驱动模块。 * 该函数是 XFRM 接口的传输函数,负责将加密后的数据包交给底层网络设备发送。 * 偏移量 `+0xde` 表示崩溃发生在 `xfrmi_xmit` 函数的第 0xde 字节处。

* **模块加载状态** ``` Modules linked in: netconsole veth br_netfilter bridge bonding virtio_net [last unloaded: netconsole]
``` * `xfrmi` 模块**未显示在已加载模块列表中**。 * 这可能有两种情况: 1. `xfrmi` 是**内置内核模块**(built-in),因此不会出现在 `lsmod` 或模块列表中。 2. 或者模块在崩溃前被卸载,但内核仍保留了其代码段(较少见,除非是动态加载后卸载但引用未清理)。 * 更可能的情况是:`xfrmi` 是内核内置的 IPsec 支持部分。

---

### 2. 根本原因推断

#### ✅ 最可能的原因:**空指针解引用(Null Pointer Dereference)**

在 `xfrmi_xmit` 函数中,内核试图访问一个指针成员,但该指针为 `NULL`。

- **为什么是 `0xc0`?** - 如果指针本身是 `NULL`(即 `0x0`),那么访问其成员(如 `ptr->field`)会导致地址为 `field_offset`。 - `0xc0` 可能是某个结构体成员的偏移量。例如,如果代码执行了 `skb->xfrm_state->...`,而 `xfrm_state` 为 `NULL`,且访问的是偏移为 `0xc0` 的字段,则 CR2 会是 `0xc0`。 - 或者,代码中有一个指针 `p`,其值为 `0x0`,然后执行了 `p->some_field`,其中 `some_field` 的偏移是 `0xc0`。

#### ???? 具体场景分析

1. **IPsec 配置错误或缺失 SA(Security Association)** - `xfrmi_xmit` 期望数据包已经经过 IPsec 策略处理,并附加了 `xfrm_state` 信息。 - 如果数据包没有正确的 IPsec 状态(例如,策略未正确配置,或 SA 已过期/删除),`xfrm_state` 指针可能为 `NULL`。 - 当驱动尝试访问 `xfrm_state` 的成员时,触发页错误

VulDB is the best source for vulnerability data and more expert information about this specific topic.

来源

Want to know what is going to be exploited?

We predict KEV entries!