CVE-2025-46675
Executive Summary
CVE-2025-46675 is a vulnerability in NASA's CryptoLib, a cryptographic library used in spacecraft systems. The flaw allows an attacker to bypass key state validation, potentially leading to unauthorized command execution or spacecraft hijacking. The vulnerability has a low CVSS score of 3.5 due to high attack complexity, but the impact on spacecraft integrity is severe. No public proof-of-concept (PoC) or exploit code is available, and the EPSS score is 0.0%, indicating low exploitation likelihood. The patch is available in version 1.3.2.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It is a custom library used in NASA's space systems.
CVSS Breakdown & Threat Level
- CVSS Score: 3.5 (Low)
- Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
- Attack Vector: Network (AV:N)
- Attack Complexity: High (AC:H) – Requires specific conditions or knowledge of the spacecraft's communication protocol.
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: None (C:N)
- Integrity Impact: Low (I:L) – Attacker can inject unauthorized commands.
- Availability Impact: None (A:N)
Threat Level: Low (due to high complexity and low EPSS score), but critical for spacecraft integrity.
Deep Dive & Mechanics
The vulnerability lies in the key state management of NASA CryptoLib. The library does not verify whether a cryptographic key has been properly initialized or is in a valid state before using it for encryption/decryption or signing operations. This allows an attacker to send crafted packets that bypass authentication, potentially injecting malicious commands into the spacecraft's command and control system.
Root Cause: Missing key state validation in the cryptographic functions. The library assumes the key is always in a valid state, but an attacker can manipulate the state machine to use an uninitialized or revoked key.
Attack Scenario: An attacker with network access to the spacecraft's communication link (e.g., via a ground station or relay) can send specially crafted packets that exploit this flaw. By bypassing key state checks, the attacker can execute unauthorized commands, potentially altering the spacecraft's trajectory or disabling critical systems.
Vulnerable vs. Patched Code
Vulnerable Code (before 1.3.2):
// No key state check before use
int crypto_encrypt(uint8_t *key, uint8_t *data, size_t len) {
// Directly uses key without checking if it's initialized
return aes_encrypt(key, data, len);
}
Patched Code (1.3.2+):
// Key state check added
int crypto_encrypt(uint8_t *key, uint8_t *data, size_t len) {
if (!is_key_initialized(key)) {
return -1; // Error: key not initialized
}
return aes_encrypt(key, data, len);
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Set up a simulated spacecraft environment using NASA's open-source Core Flight System (cFS) with CryptoLib version < 1.3.2.
- Use a software-defined radio (SDR) or network simulator to emulate the communication link.
- Craft a packet that bypasses key state validation.
Exploitation Steps:
- Identify the spacecraft's communication protocol (e.g., CCSDS).
- Send a command packet with a manipulated key state field.
- Observe unauthorized command execution (e.g., change attitude or disable telemetry).
Note: No public exploit code is available. This is a theoretical attack.
Blue Team
Detection:
- Monitor for anomalous command packets that do not match expected cryptographic patterns.
- Use network intrusion detection systems (NIDS) to flag packets with invalid key state fields.
Mitigation:
- Immediately upgrade to CryptoLib 1.3.2.
- Implement additional authentication layers (e.g., command authentication codes).
- Restrict network access to the spacecraft's command link.
Indicators of Compromise (IOCs)
- Network: Unusual command packets with missing or invalid cryptographic signatures.
- Logs: Error logs indicating "key not initialized" or "crypto operation failed" in spacecraft telemetry.
- System: Unexpected changes in spacecraft state (e.g., attitude, orbit) without valid command authorization.
Detection Engineering
YARA Rule
rule CVE_2025_46675_CryptoLib_KeyState
{
meta:
description = "Detects vulnerable CryptoLib versions by checking for missing key state validation"
author = "Valters IT"
date = "2025-04-01"
reference = "CVE-2025-46675"
strings:
$vuln_func = "crypto_encrypt" ascii wide nocase
$no_check = "aes_encrypt" ascii wide nocase
condition:
$vuln_func and $no_check and not for any of ($vuln_func, $no_check) : ( # $ at line start
# Check for key state validation
$check = "is_key_initialized" ascii wide nocase
)
}
Sigma Rule
title: CVE-2025-46675 - CryptoLib Key State Bypass
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects attempts to exploit missing key state validation in NASA CryptoLib
author: Valters IT
date: 2025-04-01
logsource:
category: application
product: spacecraft
detection:
selection:
EventID: 1001
Message: "crypto_encrypt called without key initialization"
condition: selection
falsepositives:
- Legitimate use of uninitialized keys in development environments
level: high
Suricata Rule
alert tcp any any -> any any (msg:"CVE-2025-46675 CryptoLib Key State Bypass Attempt"; flow:to_server; content:"|00 01 02 03|"; depth:4; offset:0; content:"|FF FF FF FF|"; distance:0; within:4; reference:cve,2025-46675; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade to CryptoLib version 1.3.2 or later.
- Compensating Controls: Implement additional command authentication (e.g., HMAC) and rate limiting on command links.
- Monitoring: Enable logging for all cryptographic operations and alert on key state errors.
- Network Segmentation: Isolate spacecraft command links from public networks.
Valters IT
Securing Space Systems, One Patch at a Time