CVE-2025-67091

6.5 MEDIUM

📋 TL;DR

A race condition vulnerability in GL.iNet AX1800 router firmware allows authenticated attackers to bypass file locking mechanisms and potentially execute arbitrary code with root privileges. The issue affects users of GL.iNet AX1800 routers with firmware versions 4.6.4 and 4.6.8. Attackers must have authenticated access to the LuCI web interface or API to trigger the vulnerable opkg wrapper script.

💻 Affected Systems

Products:
  • GL.iNet AX1800
Versions: 4.6.4 and 4.6.8
Operating Systems: OpenWrt-based firmware
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects the specific opkg wrapper script at /usr/libexec/opkg-call when triggered through authenticated interfaces.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full router compromise with root-level command injection leading to persistent backdoor installation, network traffic interception, and lateral movement to connected devices.

🟠

Likely Case

Authenticated attackers gaining root shell access to modify router configuration, install malicious packages, or disrupt network services.

🟢

If Mitigated

Limited impact with proper network segmentation and strong authentication controls preventing unauthorized access to the web interface.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires authenticated access and race condition timing, but public technical details exist in referenced articles.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not specified in available information

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

Restart Required: Yes

Instructions:

1. Check GL.iNet website for security advisories
2. Monitor for firmware updates beyond version 4.6.8
3. Apply available patches through web interface or manual flash
4. Reboot router after update

🔧 Temporary Workarounds

Disable package management via web interface

linux

Prevent triggering of vulnerable opkg-call script through LuCI interface

uci set luci.main.mediaurlbase='/luci-static/bootstrap'
uci commit luci
/etc/init.d/uhttpd restart

Restrict web interface access

linux

Limit access to router administration interface to trusted IPs only

iptables -A INPUT -p tcp --dport 80 -s TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -s TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate router from critical systems
  • Enforce strong authentication policies and monitor for unauthorized access attempts

🔍 How to Verify

Check if Vulnerable:

Check firmware version via web interface or SSH: cat /etc/glversion

Check Version:

cat /etc/glversion || cat /etc/openwrt_release

Verify Fix Applied:

Verify firmware version is newer than 4.6.8 and check if /usr/libexec/opkg-call has been updated

📡 Detection & Monitoring

Log Indicators:

  • Unusual opkg package management activity
  • Multiple rapid calls to opkg-call script
  • Authentication attempts to web interface from unexpected sources

Network Indicators:

  • Unusual outbound connections from router
  • DNS queries to suspicious domains
  • Unexpected SSH or telnet connections

SIEM Query:

source="router.log" AND ("opkg-call" OR "package install" OR "LuCI") AND user!="admin"

🔗 References

📤 Share & Export