CVE-2025-56108

8.8 HIGH

📋 TL;DR

This CVE describes an OS command injection vulnerability in Ruijie X30-PRO routers that allows attackers to execute arbitrary commands on the device via a crafted POST request to the pwdmodify endpoint. Attackers can gain full system control by injecting malicious commands into the vulnerable parameter. Organizations using Ruijie X30-PRO routers with the affected firmware are at risk.

💻 Affected Systems

Products:
  • Ruijie X30-PRO
Versions: X30-PRO-V1_09241521
Operating Systems: Embedded Linux/Lua-based firmware
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the default web interface accessible via HTTP. No special configuration is required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise allowing attackers to install persistent backdoors, pivot to internal networks, steal credentials, and use the device as a botnet node.

🟠

Likely Case

Attackers gain shell access to modify configurations, intercept network traffic, and use the router as an initial access point for further attacks.

🟢

If Mitigated

Limited impact if network segmentation isolates the router and command execution is restricted via security controls.

🌐 Internet-Facing: HIGH - The vulnerability is exploitable via HTTP POST requests, making internet-facing routers immediately vulnerable to remote attacks.
🏢 Internal Only: MEDIUM - Internal attackers or compromised internal systems could exploit this to gain router control and pivot within the network.

🎯 Exploit Status

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

The GitHub repository contains detailed exploitation information. The vulnerability requires only a crafted HTTP request with command injection payloads.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch is currently available. Monitor Ruijie's security advisories for updates and apply patches immediately when released.

🔧 Temporary Workarounds

Disable Web Interface

linux

Disable the vulnerable web interface to prevent exploitation attempts

# Disable HTTP service
killall httpd
# Remove web interface startup
rm /etc/rc.d/S80httpd

Network Access Control

linux

Restrict access to the router's web interface using firewall rules

# Example iptables rule to restrict web interface access
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

  • Isolate affected routers in a dedicated network segment with strict firewall rules
  • Implement network monitoring and intrusion detection specifically for command injection attempts to the pwdmodify endpoint

🔍 How to Verify

Check if Vulnerable:

Check if the router responds to POST requests at /usr/lib/lua/luci/modules/common.lua pwdmodify endpoint and test with safe command injection payloads like 'id' or 'whoami'

Check Version:

Check firmware version via web interface or SSH: cat /etc/version or check web admin panel

Verify Fix Applied:

Test the same endpoint after applying workarounds to ensure command injection is no longer possible

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to pwdmodify endpoint
  • Commands like 'sh', 'bash', 'wget', 'curl' in HTTP logs
  • Multiple failed authentication attempts followed by successful pwdmodify requests

Network Indicators:

  • HTTP POST requests containing shell metacharacters (;, |, &, $, `) to the vulnerable endpoint
  • Outbound connections from router to suspicious IPs after pwdmodify requests

SIEM Query:

source="router_logs" AND (uri="/usr/lib/lua/luci/modules/common.lua" OR uri="*pwdmodify*") AND (method="POST") AND (payload="*;*" OR payload="*|*" OR payload="*`*" OR payload="*$(*")

🔗 References

📤 Share & Export