CVE-2021-39244
📋 TL;DR
This vulnerability allows authenticated attackers to execute arbitrary commands on affected Altus networking devices via parameter injection in the getlogs.cgi tcpdump feature. Attackers can achieve remote code execution with the privileges of the web service. This affects multiple Altus Nexto, Nexto Xpress, and Hadron Xtorm device models running specific vulnerable firmware versions.
💻 Affected Systems
- Altus Nexto NX3003
- Altus Nexto NX3004
- Altus Nexto NX3005
- Altus Nexto NX3010
- Altus Nexto NX3020
- Altus Nexto NX3030
- Altus Nexto NX5100
- Altus Nexto NX5101
- Altus Nexto NX5110
- Altus Nexto NX5210
- Altus Nexto Xpress XP300
- Altus Nexto Xpress XP315
- Altus Nexto Xpress XP325
- Altus Nexto Xpress XP340
- Altus Hadron Xtorm HX3040
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Full device compromise leading to complete control of the networking device, lateral movement into connected networks, data exfiltration, and persistent backdoor installation.
Likely Case
Unauthorized command execution allowing attackers to modify device configurations, intercept network traffic, or use the device as a pivot point for further attacks.
If Mitigated
Limited impact if proper network segmentation, authentication controls, and monitoring are in place to detect and block exploitation attempts.
🎯 Exploit Status
Exploitation details are publicly available in security advisories. The vulnerability is in a CGI script that improperly handles user input in tcpdump parameters.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Check with vendor for specific patched versions
Vendor Advisory: https://www.altus.com.br/
Restart Required: Yes
Instructions:
1. Contact Altus support for firmware updates. 2. Download appropriate firmware for your device model. 3. Backup device configuration. 4. Apply firmware update via web interface or CLI. 5. Verify update completed successfully. 6. Restart device if required.
🔧 Temporary Workarounds
Disable getlogs.cgi access
linuxRestrict or disable access to the vulnerable CGI script if not needed
# Modify web server configuration to block access to getlogs.cgi
# Example for Apache: <Location "/cgi-bin/getlogs.cgi">
Deny from all
</Location>
Network segmentation
allIsolate affected devices from untrusted networks
# Configure firewall rules to restrict access to device management interfaces
# Example iptables rule: iptables -A INPUT -p tcp --dport 80 -s trusted_network -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
🧯 If You Can't Patch
- Implement strict access controls to limit who can authenticate to device management interfaces
- Monitor for suspicious command execution attempts and unauthorized configuration changes
🔍 How to Verify
Check if Vulnerable:
Check device firmware version against affected versions list. Attempt to access getlogs.cgi with authentication and test parameter injection.
Check Version:
# Check firmware version via web interface or CLI
# Typically available in device status or system information pages
Verify Fix Applied:
Verify firmware version has been updated to a version not listed in the CVE. Test that command injection via getlogs.cgi parameters is no longer possible.
📡 Detection & Monitoring
Log Indicators:
- Unusual command execution via getlogs.cgi
- Multiple failed authentication attempts followed by successful login and getlogs.cgi access
- Suspicious tcpdump parameter values in web logs
Network Indicators:
- Unusual outbound connections from networking devices
- Traffic patterns suggesting device compromise
SIEM Query:
source="device_logs" AND (uri="/cgi-bin/getlogs.cgi" AND (param="tcpdump" OR param="command"))