CVE-2025-4575

6.5 MEDIUM

📋 TL;DR

A copy-paste error in OpenSSL 3.5 causes the '-addreject' option in the openssl x509 command to incorrectly mark certificates as trusted for specific uses instead of rejecting them. This affects users who use the trusted certificate format and specifically apply the '-addreject' option to restrict certificate usage. The vulnerability has low severity as it only impacts command-line operations.

💻 Affected Systems

Products:
  • OpenSSL
Versions: OpenSSL 3.5 only
Operating Systems: All operating systems running OpenSSL 3.5
Default Config Vulnerable: ✅ No
Notes: Only affects users who: 1) Use OpenSSL 3.5, 2) Use the trusted certificate format, 3) Use the openssl x509 command with '-addreject' option. FIPS modules and all other OpenSSL versions (3.4, 3.3, 3.2, 3.1, 3.0, 1.1.1, 1.0.2) are NOT affected.

📦 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 →

⚠️ Risk & Real-World Impact

🔴

Worst Case

A certificate intended to be rejected for specific purposes (like CMS signature verification) could be incorrectly trusted, potentially allowing unauthorized operations if that certificate is used inappropriately.

🟠

Likely Case

Misconfiguration where certificates have unintended trust relationships, requiring manual correction of certificate trust settings.

🟢

If Mitigated

Minimal impact since this only affects command-line certificate manipulation and doesn't enable remote exploitation or privilege escalation.

🌐 Internet-Facing: LOW - This is a local command-line tool issue, not a network-facing service vulnerability.
🏢 Internal Only: LOW - Only affects administrators using specific openssl x509 commands with the '-addreject' option.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: HIGH

Exploitation requires local access and specific command-line usage patterns. This is a configuration error rather than a remotely exploitable vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: OpenSSL 3.5 with fix applied (commit e96d22446e633d117e6c9904cb15b4693e956eaa)

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

Restart Required: No

Instructions:

1. Update OpenSSL to version 3.5 with the fix applied. 2. Rebuild any applications linked against OpenSSL if using static linking. 3. Verify the fix by checking the OpenSSL version and testing the '-addreject' functionality.

🔧 Temporary Workarounds

Avoid using -addreject in OpenSSL 3.5

all

Do not use the '-addreject' option with openssl x509 command in OpenSSL 3.5 until patched

# Do not run: openssl x509 -addreject ...
# Use alternative methods to manage certificate trust

Use older OpenSSL version

linux

Temporarily use OpenSSL 3.4 or earlier versions which are not affected

# Example for Linux: apt-get install openssl=3.4.*
# Or compile from source: git checkout OpenSSL_3_4-stable

🧯 If You Can't Patch

  • Manually verify all certificates modified with '-addreject' in OpenSSL 3.5 to ensure correct trust settings
  • Use alternative certificate management tools or scripts that don't rely on the affected openssl x509 functionality

🔍 How to Verify

Check if Vulnerable:

Check OpenSSL version: openssl version. If it shows 'OpenSSL 3.5' and you've used '-addreject' with trusted certificates, you may be affected.

Check Version:

openssl version

Verify Fix Applied:

1. Check version: openssl version. 2. Test the '-addreject' functionality with a test certificate to ensure it correctly rejects rather than trusts.

📡 Detection & Monitoring

Log Indicators:

  • Log entries showing openssl x509 commands with '-addreject' option being executed

Network Indicators:

  • None - this is a local command-line issue

SIEM Query:

process.name:"openssl" AND command_line:"x509" AND command_line:"-addreject"

🔗 References

📤 Share & Export