CVE-2025-15469

5.5 MEDIUM

📋 TL;DR

The OpenSSL 'dgst' command-line tool silently truncates files larger than 16MB when using one-shot signing algorithms (Ed25519, Ed448, ML-DSA variants), creating an integrity gap where trailing data remains unauthenticated. This affects users who both sign and verify files larger than 16MB using the affected command-line tool with these specific algorithms.

💻 Affected Systems

Products:
  • OpenSSL
Versions: 3.5 and 3.6
Operating Systems: All platforms running affected OpenSSL versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects command-line 'openssl dgst' with one-shot algorithms (Ed25519, Ed448, ML-DSA-44, ML-DSA-65, ML-DSA-87). Library API users, streaming algorithms, and FIPS modules are unaffected.

📦 What is this software?

Openssl by Openssl

OpenSSL is a robust, commercial-grade toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It provides cryptographic functions and is one of the most widely used libraries for implementing secure communications in applications worldwide.

Learn more about Openssl →

Openssl by Openssl

OpenSSL is a robust, commercial-grade toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It provides cryptographic functions and is one of the most widely used libraries for implementing secure communications in applications worldwide.

Learn more about Openssl →

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could modify trailing bytes in signed files larger than 16MB without detection, potentially altering critical data or injecting malicious content while the signature appears valid.

🟠

Likely Case

Users signing and verifying large files (e.g., software packages, backups, logs) with affected algorithms may have undetected data integrity issues in portions beyond 16MB.

🟢

If Mitigated

If using streaming algorithms, library APIs, or files under 16MB, no impact occurs. Verifiers using library APIs will reject truncated signatures.

🌐 Internet-Facing: LOW - This primarily affects local command-line usage rather than network services.
🏢 Internal Only: MEDIUM - Internal workflows using 'openssl dgst' for signing/verifying large files with affected algorithms could have integrity gaps.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: LOW - Requires attacker to modify files after signing or during transmission.

Exploitation requires both signing and verification to use the vulnerable command-line tool. Library-based verification would detect the issue.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Patches available via OpenSSL commits 310f305eb92ea8040d6b3cb75a5feeba8e6acf2f and a7936fa4bd23c906e1955a16a0a0ab39a4953a61

Vendor Advisory: https://openssl-library.org/news/secadv/20260127.txt

Restart Required: No

Instructions:

1. Update OpenSSL to version 3.5 or 3.6 with the patches applied. 2. Recompile if using custom builds. 3. No service restart needed as this is a command-line tool issue.

🔧 Temporary Workarounds

Use streaming algorithms

all

Use algorithms that support streaming (like SHA256 with RSA) instead of one-shot algorithms for files larger than 16MB.

openssl dgst -sha256 -sign private.key -out signature.bin file.txt

Split large files

linux

Split files into chunks smaller than 16MB before signing with affected algorithms.

split -b 15M largefile.txt chunk_
for f in chunk_*; do openssl dgst -ed25519 -sign key.pem -out $f.sig $f; done

🧯 If You Can't Patch

  • Avoid using 'openssl dgst' with Ed25519, Ed448, or ML-DSA algorithms for files larger than 16MB.
  • Use library APIs or alternative tools for signing/verification of large files.

🔍 How to Verify

Check if Vulnerable:

Check OpenSSL version and test with a file >16MB: 'openssl version' and create test with 'openssl dgst -ed25519 -sign key.pem -out sig.bin largefile.txt'

Check Version:

openssl version

Verify Fix Applied:

After patching, the command should error on files >16MB instead of silently truncating.

📡 Detection & Monitoring

Log Indicators:

  • Command logs showing 'openssl dgst' with Ed25519/Ed448/ML-DSA on files >16MB

Network Indicators:

  • None - this is a local command-line issue

SIEM Query:

Process execution where command contains 'openssl dgst' AND (command contains 'ed25519' OR 'ed448' OR 'ml-dsa') AND file_size > 16777216

🔗 References

📤 Share & Export