CVE-2026-21899CVE-2026-21899是NASA CryptoLib库中的一个缓冲区越界读取漏洞。CryptoLib是一个软件解决方案,实现了CCSDS空间数据链路安全协议-扩展程序(SDLS-EP),用于保护运行cFS(核心飞行系统)的航天器与地面站之间的通信安全。该漏洞存在于base64urlDecode函数中,在进行填充字符剥离操作时,代码在检查输入参数有效性(inputLen > 0或input != NULL)之前就直接解引用input[inputLen - 1]。当inputLen等于0时,这会导致读取input[-1]位置的内存,产生越界读取。如果input为NULL且inputLen为0,则会解引用NULL-1地址,可能导致进程崩溃或信息泄露。攻击者可通过构造特殊的空输入触发此漏洞,影响系统的机密性、完整性和可用性。该漏洞已在版本1.4.3中修复。
漏洞位于CryptoLib的base64urlDecode函数中。在处理base64url编码数据时,函数需要剥离末尾的填充字符'='。代码逻辑存在缺陷:在执行input[inputLen - 1]访问之前,未先验证inputLen是否大于0以及input指针是否为NULL。当传入空字符串(inputLen=0)时,程序会尝试访问input[-1]地址,这超出了缓冲区的边界范围。具体攻击场景:1) 攻击者向使用CryptoLib进行安全通信的cFS系统发送特制的空base64url编码数据;2) 系统调用base64urlDecode处理该数据;3) 由于inputLen=0,函数直接访问input[-1];4) 触发越界读取,可能导致敏感内存信息泄露或进程崩溃。此漏洞的利用需要高权限访问,因为攻击者需要能够向安全通信链路注入数据。CVSS向量显示攻击复杂度低,但需要高权限,表明攻击者可能是系统授权用户或能够操控通信链路的中间人。