CVE-2025-30356

9.8 CRITICAL

📋 TL;DR

A heap buffer overflow vulnerability in CryptoLib's SDLS-EP implementation allows attackers to craft malicious frames that cause negative payload lengths to be interpreted as large unsigned values, leading to memory corruption. This affects spacecraft communications secured with CryptoLib versions 1.3.3 and earlier. The vulnerability enables potential remote code execution or denial of service attacks.

💻 Affected Systems

Products:
  • NASA CryptoLib
Versions: 1.3.3 and earlier
Operating Systems: Any OS running cFS with CryptoLib
Default Config Vulnerable: ⚠️ Yes
Notes: Affects systems using CryptoLib's SDLS-EP implementation for spacecraft communications with cFS.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete compromise of spacecraft communications, potential command injection, or ground station compromise.

🟠

Likely Case

Denial of service through application crashes, memory corruption, or disruption of spacecraft-ground communications.

🟢

If Mitigated

Limited impact if proper network segmentation and input validation are in place, though risk remains due to protocol-level vulnerability.

🌐 Internet-Facing: HIGH - Spacecraft-ground communications often traverse public networks or satellite links.
🏢 Internal Only: MEDIUM - Even internal networks could be compromised if attackers gain initial access.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting specific malicious frames but doesn't require authentication. No public exploit code known at this time.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.3.4 or later

Vendor Advisory: https://github.com/nasa/CryptoLib/security/advisories/GHSA-6w2x-w7w3-85w2

Restart Required: Yes

Instructions:

1. Update CryptoLib to version 1.3.4 or later. 2. Apply commit 59d1bce7608c94c6131ef4877535075b0649799c. 3. Rebuild and redeploy affected cFS applications. 4. Restart spacecraft and ground station services.

🔧 Temporary Workarounds

Input Validation Enhancement

all

Add additional validation for frame length fields before processing

// Custom validation: if (fl < MIN_VALID_LENGTH || fl > MAX_VALID_LENGTH) reject_frame();

Network Segmentation

all

Isolate spacecraft communications to dedicated, monitored networks

🧯 If You Can't Patch

  • Implement strict network filtering to allow only trusted ground stations
  • Deploy intrusion detection systems monitoring for anomalous frame patterns

🔍 How to Verify

Check if Vulnerable:

Check CryptoLib version: grep -r 'CRYPTOLIB_VERSION' source files or check build configuration

Check Version:

grep -i 'version' CryptoLib/README.md or check package manager

Verify Fix Applied:

Verify version is 1.3.4+ and commit 59d1bce7608c94c6131ef4877535075b0649799c is present

📡 Detection & Monitoring

Log Indicators:

  • Application crashes in Crypto_TC_ApplySecurity
  • Memory corruption errors
  • Unexpected large memory allocations

Network Indicators:

  • Malformed SDLS-EP frames with unusual length fields
  • Rapid sequence of connection attempts

SIEM Query:

source="cfs_logs" AND ("heap corruption" OR "buffer overflow" OR "Crypto_TC_ApplySecurity")

🔗 References

📤 Share & Export