CVE-2024-39689

7.5 HIGH

📋 TL;DR

This CVE involves the removal of GLOBALTRUST root certificates from the certifi Python package due to compliance issues. Systems using affected certifi versions may trust certificates issued by GLOBALTRUST, potentially allowing man-in-the-middle attacks or spoofing of TLS connections. Any Python application using certifi for TLS certificate validation is affected.

💻 Affected Systems

Products:
  • certifi Python package
Versions: 2021.5.30 to 2024.7.4 (exclusive)
Operating Systems: All platforms where Python runs
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using certifi for TLS certificate validation. Applications that don't use certifi or use alternative certificate stores are not affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could perform man-in-the-middle attacks, intercepting and decrypting sensitive data in transit, or spoof legitimate websites and services.

🟠

Likely Case

Reduced trust in certificate validation, potentially allowing connections to malicious sites that appear legitimate due to GLOBALTRUST-issued certificates.

🟢

If Mitigated

Minimal impact if systems are patched or use additional certificate pinning/validation mechanisms.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation would require control of a GLOBALTRUST-issued certificate or compromise of GLOBALTRUST infrastructure, which is being removed from trust stores.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2024.7.4

Vendor Advisory: https://github.com/certifi/python-certifi/security/advisories/GHSA-248v-346w-9cwc

Restart Required: No

Instructions:

1. Update certifi package: pip install --upgrade certifi==2024.7.4
2. Verify the update: pip show certifi
3. Restart any Python applications using certifi to ensure they load the updated certificate store.

🔧 Temporary Workarounds

Manual certificate store update

all

Manually remove GLOBALTRUST certificates from the certifi certificate store file

# Backup current certifi store
cp $(python -m certifi) $(python -m certifi).bak
# Edit the file to remove GLOBALTRUST entries
# The exact location varies by system

🧯 If You Can't Patch

  • Implement certificate pinning for critical connections
  • Use alternative certificate validation mechanisms or custom certificate stores

🔍 How to Verify

Check if Vulnerable:

Check certifi version: pip show certifi | grep Version
If version is between 2021.5.30 and 2024.7.4 (exclusive), system is vulnerable.

Check Version:

pip show certifi | grep Version

Verify Fix Applied:

Verify certifi version is 2024.7.4 or later: pip show certifi | grep Version
Check that GLOBALTRUST certificates are not present in the certifi store.

📡 Detection & Monitoring

Log Indicators:

  • TLS handshake failures with GLOBALTRUST certificates
  • Certificate validation warnings mentioning GLOBALTRUST

Network Indicators:

  • Connections using GLOBALTRUST-issued certificates
  • Unexpected certificate authorities in TLS negotiations

SIEM Query:

source="*" ("GLOBALTRUST" OR "certifi") AND ("certificate" OR "TLS" OR "SSL")

🔗 References

📤 Share & Export