CVE-2026-1681CVE-2026-1681是Zephyr RTOS网络协议栈中发现的一个中危安全漏洞。该漏洞允许攻击者通过向设备自身的IPv4地址发送ICMP ping请求来触发拒绝服务条件。问题的根源在于网络协议栈在处理本地回环流量时存在设计缺陷,导致工作队列栈发生递归重入。具体而言,当设备接发给自己的ping包时,协议栈会在当前处理帧未返回的情况下内联处理回复,从而耗尽栈空间并引发栈溢出。该漏洞的CVSS评分为6.1,需要用户交互且无需认证即可在本地触发,对设备的可用性造成严重影响。
该漏洞的技术核心在于Zephyr RTOS网络协议栈在处理本地回环ICMP流量时的递归调用问题。在Zephyr的实现中,`net ping`命令用于发送ICMP Echo Request。当目的地址为设备自身的IPv4地址时,内核判定该流量为本地流量。正常情况下,网络包的处理应当遵循分层解耦的原则,但在该场景下,协议栈在处理输入包的过程中(即处于输入路径的上下文中),直接触发了对本地地址的响应生成逻辑。由于响应处理逻辑复用了当前的上下文或工作队列栈(work-queue stack),导致了输入路径的递归重入。具体表现为:在处理第一个Ping请求的帧尚未返回时,系统为了处理该请求触发了本地回复逻辑,该逻辑又作为一个“新”的输入事件在同一栈空间上被处理。随着请求和响应的循环处理(虽然这里是单次触发导致的深层嵌套),栈帧不断累积。当嵌套深度超过工作队列栈预先分配的大小时,就会发生栈溢出(Stack Overflow)。这种溢出破坏了内存布局,可能导致系统崩溃、数据损坏或潜在的代码执行,尽管CVSS向量主要指向可用性影响(A:H)和完整性影响(I:L)。