CVE-2020-29663

9.1 CRITICAL

📋 TL;DR

This vulnerability in Icinga 2 allows revoked certificates to be automatically renewed despite being on a Certificate Revocation List (CRL), bypassing certificate revocation checks. This affects Icinga 2 installations using certificate-based authentication with CRL checking enabled. Attackers could potentially use revoked certificates to gain unauthorized access.

💻 Affected Systems

Products:
  • Icinga 2
Versions: v2.8.0 through v2.11.7 and v2.12.2
Operating Systems: All platforms running Icinga 2
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using certificate-based authentication with CRL checking enabled. Systems using other authentication methods or without CRL checking are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could use revoked certificates to gain administrative access to Icinga 2, potentially compromising monitoring infrastructure and using it as a foothold for lateral movement.

🟠

Likely Case

Unauthorized access to Icinga 2 monitoring data and potential manipulation of monitoring alerts and configurations.

🟢

If Mitigated

Limited impact if proper network segmentation and access controls prevent unauthorized connections even with valid certificates.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires access to a revoked certificate that would normally be rejected. The vulnerability is in the automatic renewal logic, not in initial certificate validation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v2.11.8 and v2.12.3

Vendor Advisory: https://github.com/Icinga/icinga2/security/advisories/GHSA-pcmr-2p2f-r7j6

Restart Required: Yes

Instructions:

1. Backup Icinga 2 configuration and data. 2. Stop Icinga 2 service. 3. Upgrade to v2.11.8 or v2.12.3 using your package manager. 4. Restart Icinga 2 service. 5. Verify certificate validation is working correctly.

🔧 Temporary Workarounds

Disable automatic certificate renewal

linux

Temporarily disable automatic certificate renewal to prevent revoked certificates from being renewed

icinga2 feature disable api
systemctl restart icinga2

Manual certificate management

all

Switch to manual certificate management and renewal instead of automatic renewal

🧯 If You Can't Patch

  • Implement strict network access controls to limit connections to Icinga 2 API endpoints
  • Monitor for unusual certificate renewal activity and revoked certificate usage

🔍 How to Verify

Check if Vulnerable:

Check Icinga 2 version with: icinga2 --version. If version is between 2.8.0-2.11.7 or exactly 2.12.2, and certificate authentication with CRL is enabled, system is vulnerable.

Check Version:

icinga2 --version | grep 'version'

Verify Fix Applied:

After patching, test with a revoked certificate to ensure it's not renewed. Verify version shows 2.11.8+ or 2.12.3+.

📡 Detection & Monitoring

Log Indicators:

  • Certificate renewal events for certificates that should be revoked
  • API access from unexpected sources using certificates

Network Indicators:

  • Unusual API traffic patterns
  • Connections using certificates that appear on CRLs

SIEM Query:

source="icinga2" AND ("certificate renewed" OR "api connection")

🔗 References

📤 Share & Export