CVE-2021-23019

7.8 HIGH

📋 TL;DR

CVE-2021-23019 exposes NGINX Controller administrator passwords in the systemd.txt file within support packages. This allows attackers with access to these files to gain administrative control of NGINX Controller instances. Affected users are those running NGINX Controller versions 2.0.0 through 2.9.0 or 3.x before 3.15.0.

💻 Affected Systems

Products:
  • NGINX Controller
Versions: 2.0.0 through 2.9.0, and 3.x before 3.15.0
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists when support packages are generated; exposure depends on who can access these packages.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full administrative compromise of NGINX Controller leading to complete control over managed NGINX instances, configuration manipulation, data exfiltration, and lateral movement to backend systems.

🟠

Likely Case

Unauthorized administrative access to NGINX Controller allowing configuration changes, service disruption, and potential credential harvesting from managed systems.

🟢

If Mitigated

Limited impact if support packages are properly secured and access to systemd.txt files is restricted to authorized personnel only.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires access to the systemd.txt file; no authentication bypass needed once file is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.15.0 and later, or upgrade to NGINX Controller versions beyond affected ranges

Vendor Advisory: https://support.f5.com/csp/article/K04884013

Restart Required: Yes

Instructions:

1. Backup current configuration. 2. Upgrade to NGINX Controller 3.15.0 or later. 3. Restart NGINX Controller services. 4. Regenerate any support packages to remove exposed credentials.

🔧 Temporary Workarounds

Secure Support Package Access

linux

Restrict access to NGINX Controller support packages and ensure systemd.txt files are not accessible to unauthorized users.

chmod 600 /path/to/support/package/*
rm -f /path/to/old/systemd.txt

🧯 If You Can't Patch

  • Immediately delete all existing support packages containing systemd.txt files
  • Implement strict access controls and monitoring for any remaining support packages

🔍 How to Verify

Check if Vulnerable:

Check NGINX Controller version via web interface or CLI; if version is between 2.0.0-2.9.0 or 3.0.0-3.14.x, search for systemd.txt files in support packages for password strings.

Check Version:

nginx-controller-cli version

Verify Fix Applied:

After upgrade to 3.15.0+, verify version and ensure new support packages do not contain plaintext passwords in systemd.txt.

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized login attempts to NGINX Controller admin interface
  • Unexpected configuration changes

Network Indicators:

  • Unusual administrative access patterns to NGINX Controller API

SIEM Query:

source="nginx-controller" AND (event_type="authentication_failure" OR event_type="configuration_change")

🔗 References

📤 Share & Export