CVE-2026-21897CVE-2026-21897是NASA CryptoLib中的一个高危安全漏洞。CryptoLib是一个纯软件解决方案,使用CCSDS空间数据链路安全协议-扩展程序(SDLS-EP)来保护运行核心飞行系统(cFS)的航天器与地面站之间的通信。该漏洞存在于Crypto_Config_Add_Gvcid_Managed_Parameters函数中,由于该函数仅检查gvcid_counter是否大于GVCID_MAN_PARAM_SIZE,而未正确限制数组边界,导致可以添加最多251个条目。当写入第251个条目时,数据会溢出到数组边界之外,覆盖紧随其后的gvcid_counter变量。这个越界写入可能导致被覆盖的gvcid_counter变成任意值,进而影响依赖该变量的参数查找和注册逻辑。该漏洞无需认证即可远程利用,CVSS评分7.3,属于高危级别。
漏洞根源在于Crypto_Config_Add_Gvcid_Managed_Parameters函数对数组边界检查不完善。该函数维护一个gvcid_managed_parameters_array[250]数组和一个gvcid_counter计数器变量。代码仅检查gvcid_counter > GVCID_MAN_PARAM_SIZE(即250),但数组索引从0开始,实际可访问索引为0-249。当添加第251个条目时(索引250),写入操作会超出数组边界,覆写gvcid_counter变量所在内存位置。这种越界写入属于经典的缓冲区溢出漏洞,可能导致内存破坏、程序崩溃或更严重的安全后果。攻击者可通过发送特制的配置请求,添加超过250个GVCID条目来触发此漏洞。被覆盖的gvcid_counter可能变成任意值,破坏参数管理的完整性,导致后续参数查找/注册逻辑出现异常。该漏洞已通过版本1.4.3修复,修复方案增加了正确的数组边界检查逻辑。