关键信息 漏洞概览 漏洞名称: net: icmp: Out of bound memory read CVE ID: CVE-2025-12899 严重性: 中等 (6.5/10) 受影版本: <= 4.2 补丁版本: 无 漏洞描述 问题类型: 记忆体越界读取 漏洞细节 Zephyr 网络堆栈在处理具有 ICMP 类型 128 (Echo Request 类型为 IPv6) 的 IPv4 数据包时,会将 IPv4 头误解释为 IPv6 头,导致越界读取内存。 ICMP 处理程序在 Zephyr 内部注册方式导致此问题。 潜在可能在网络上泄露越界读取的数据。 漏洞复现 使用最小的 IPv4 头封装最小的 ICMP 数据包,类型为 128,代码为 0 并具有正确的校验和。 数据包被网络堆栈接收并处理时,最终会调用 。 该函数调用 ,后者遍历处理程序以查找匹配项。 漏洞源代码分析 使用一个通用的静态 sys_slist_t handlers 结构体,同时用于 ICMPv4 和 ICMPv6 的处理。 后来 Zephyr 使用 net_icmp_init_ctx 注册不同类型的处理程序。 因为处理程序中存在类型为 128 的数据包处理函数,即使对于 ICMPv4 数据包也是如此。 漏洞后果 调用 ,导致 IPv4 头被误解释为 IPv6 头,从而导致越界读取。 可能还会导致更多越界读取并发送到网络,但需要小心构造负载并通过 net_pkt_copy 传递。 补丁 主分支: #98780 v4.2: #98983 v4.1: #98984 v3.7: #98985 其他信息 如果有关于公告的问题或意见,可以打开一个 ISSUE 或发送电子邮件至 Zephyr-vulnerabilities。 解禁日期: 2026-01-28