CVE-2026-5590Zephyr RTOS在TCP连接断开过程中存在竞态条件漏洞。当系统处理TCP连接断开时,tcp_recv()函数可能会操作已被释放的连接对象。此外,在处理SYN数据包时,若tcp_conn_search()返回NULL,程序会将源自过期上下文的NULL指针传递给tcp_backlog_is_full()且未进行验证,导致空指针解引用,进而引发系统崩溃。
该漏洞主要由两个竞态条件场景触发。首先,在TCP连接断开期间,由于时序问题,tcp_recv()可能试图访问一个已经被释放的连接控制块(PCB),导致Use-After-Free。其次,在处理传入的SYN数据包时,tcp_conn_search()函数可能因找不到对应连接而返回NULL。然而,代码逻辑未对该NULL指针进行有效性检查,直接将其作为参数传递给tcp_backlog_is_full()函数。该函数内部尝试解引用该指针以访问成员变量,从而触发非法内存访问,导致内核崩溃或设备重启。攻击者可通过发送特制的TCP SYN包,利用此窗口期触发NULL指针解引用,从而造成设备拒绝服务。