CVE-2026-22025CryptoLib是NASA提供的一个纯软件解决方案,用于使用CCSDS空间数据链路安全协议-扩展程序(SDLS-EP)来保护运行核心飞行系统(cFS)的航天器与地面站之间的通信。在1.4.3版本之前,当KMC(Key Management Center)服务器返回非200 HTTP状态码时,cryptography_encrypt()和cryptography_decrypt()函数会立即返回而不会释放之前分配的缓冲区。每次失败的请求大约泄漏467字节内存。如果持续发生失败(可能来自恶意服务器或网络问题),内存泄漏会逐渐累积,最终可能导致系统内存耗尽,引发拒绝服务(DoS)状况。该漏洞已被修复于版本1.4.3。
漏洞位于CryptoLib库的加密/解密函数中。当CryptoLib与KMC服务器进行TLS通信时,如果服务器返回非200状态码(如401未授权、403禁止、500服务器错误等),cryptography_encrypt()和cryptography_decrypt()函数会执行提前返回逻辑,但忘记释放之前通过malloc/calloc等函数分配的堆内存。具体泄漏的内存包括:密钥材料缓冲区、认证标签缓冲区、IV/nonce缓冲区等,每次调用约467字节。在资源受限的航天器环境中,内存耗尽可能影响任务关键功能。由于KMC通信失败可能由网络中断或恶意服务器触发,攻击者可以通过持续发送恶意响应来耗尽目标系统内存。修复方案是在函数返回前添加内存释放逻辑,或使用智能指针等自动内存管理机制。