CVE-2023-46454

9.8 CRITICAL

📋 TL;DR

This vulnerability allows remote attackers to execute arbitrary shell commands on GL.iNET GL-AR300M routers by injecting malicious commands into package names. Attackers can gain full control of affected devices, potentially compromising network security. Only users of GL-AR300M routers with firmware version 4.3.7 are affected.

💻 Affected Systems

Products:
  • GL.iNET GL-AR300M
Versions: Firmware version 4.3.7
Operating Systems: OpenWrt-based firmware
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects the specific firmware version; other GL.iNET models may have similar issues but not confirmed.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete device takeover leading to network compromise, data exfiltration, lateral movement to other devices, and persistent backdoor installation.

🟠

Likely Case

Router compromise allowing traffic interception, credential theft, DNS hijacking, and use as attack platform.

🟢

If Mitigated

Limited impact if device is isolated, has strict network controls, and command injection attempts are blocked.

🌐 Internet-Facing: HIGH - Routers are typically internet-facing, making them accessible to remote attackers.
🏢 Internal Only: MEDIUM - Internal attackers could exploit if they have network access to the router's management interface.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability is in package information functionality and requires no authentication. Public technical details available in referenced blog posts.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Firmware version after 4.3.7 (check vendor for latest)

Vendor Advisory: https://www.gl-inet.com/security/

Restart Required: Yes

Instructions:

1. Log into router admin interface. 2. Navigate to System > Firmware Upgrade. 3. Check for updates and install latest firmware. 4. Reboot router after update completes.

🔧 Temporary Workarounds

Disable remote management

linux

Prevent external access to router management interface

uci set firewall.@zone[1].input='REJECT'
uci commit firewall
/etc/init.d/firewall restart

Block package management access

linux

Restrict access to package information functionality via firewall rules

iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP

🧯 If You Can't Patch

  • Isolate router on separate VLAN with strict network segmentation
  • Implement network monitoring for command injection patterns and shell execution attempts

🔍 How to Verify

Check if Vulnerable:

Check firmware version via web interface at System > Status or run 'cat /etc/glversion' on device shell

Check Version:

cat /etc/glversion || uci get system.@system[0].firmware_version

Verify Fix Applied:

Confirm firmware version is greater than 4.3.7 and test package functionality with safe commands

📡 Detection & Monitoring

Log Indicators:

  • Unusual package installation attempts
  • Shell command execution in system logs
  • Suspicious characters in package names (;, |, &, $)

Network Indicators:

  • HTTP requests to package endpoints with command injection patterns
  • Outbound connections from router to unexpected destinations

SIEM Query:

source="router.log" AND ("package" AND ("|" OR ";" OR "$" OR "&"))

🔗 References

📤 Share & Export