CVE-2026-1677Zephyr RTOS在处理TLS连接时存在安全漏洞。当使用`IPPROTO_TLS_1_3`创建套接字时,如果Kconfig中同时启用了TLS 1.2和TLS 1.3,套接字级别的协议选择并未正确传递给底层mbedTLS库(例如未调用`mbedtls_ssl_conf_min_tls_version`)。这导致ClientHello消息同时通告两个版本,允许对等端强制建立TLS 1.2连接。原本假设强制使用TLS 1.3的应用程序可能在不经意间使用TLS 1.2,从而面临TLS 1.2特有的安全风险。
该漏洞的根源在于Zephyr的TLS套接字实现层与底层mbedTLS库之间的配置不一致。当应用程序通过指定`IPPROTO_TLS_1_3`来创建套接字时,预期的行为是仅建立TLS 1.3连接。然而,代码逻辑未能将此限制通过`mbedtls_ssl_conf_min_tls_version`等API正确配置到mbedTLS上下文中。因此,底层的TLS握手过程在ClientHello阶段会向服务器同时宣告支持TLS 1.2和TLS 1.3。攻击者(或恶意对等端)可以利用这一机制,在握手过程中选择降级到TLS 1.2。由于TLS 1.2相比TLS 1.3存在已知的加密学弱点(如对某些旧式加密套件的支持较弱),这种降级攻击破坏了应用程序预期的安全策略,使得通信过程遭受中间人攻击或解密的风险增加。