CVE-2025-26320

6.5 MEDIUM

📋 TL;DR

CVE-2025-26320 is an OS command injection vulnerability in t0mer BroadlinkManager v5.9.1 that allows attackers to execute arbitrary commands on the host system by injecting malicious input into the IP Address parameter at the /device/ping endpoint. This affects anyone running the vulnerable version of BroadlinkManager, particularly in Docker deployments.

💻 Affected Systems

Products:
  • t0mer BroadlinkManager
Versions: v5.9.1
Operating Systems: Linux, Any OS running Docker
Default Config Vulnerable: ⚠️ Yes
Notes: Primarily affects Docker deployments; the vulnerability exists in the Python code handling the ping functionality.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise leading to complete host takeover, data exfiltration, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Unauthorized command execution with the privileges of the BroadlinkManager process, potentially leading to service disruption, data access, or further exploitation.

🟢

If Mitigated

Limited impact if proper network segmentation, least privilege, and input validation are implemented.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation is straightforward via crafted HTTP requests to the vulnerable endpoint; proof-of-concept code is available in the GitHub repository.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch exists; apply workarounds or discontinue use of the vulnerable version.

🔧 Temporary Workarounds

Input Validation and Sanitization

all

Modify the BroadlinkManager code to validate and sanitize the IP address parameter before passing it to system commands.

Edit broadlinkmanager.py lines 639-657 to implement proper input validation (e.g., using regex or IP address libraries).

Network Access Restriction

linux

Restrict network access to the BroadlinkManager service to trusted IPs only.

iptables -A INPUT -p tcp --dport [PORT] -s [TRUSTED_IP] -j ACCEPT
iptables -A INPUT -p tcp --dport [PORT] -j DROP

🧯 If You Can't Patch

  • Isolate the BroadlinkManager instance in a dedicated network segment with strict firewall rules.
  • Run BroadlinkManager with minimal privileges (e.g., as a non-root user) to limit potential damage.

🔍 How to Verify

Check if Vulnerable:

Check if BroadlinkManager v5.9.1 is running and accessible; test by sending a crafted request to /device/ping with a malicious IP parameter (e.g., '127.0.0.1; whoami').

Check Version:

docker exec [CONTAINER_NAME] python -c "import broadlinkmanager; print(broadlinkmanager.__version__)" or check the Docker image tag.

Verify Fix Applied:

Verify that input validation is in place by testing with malicious inputs and ensuring no command execution occurs.

📡 Detection & Monitoring

Log Indicators:

  • Unusual commands in system logs from the BroadlinkManager process
  • HTTP requests to /device/ping with suspicious IP parameters

Network Indicators:

  • Unexpected outbound connections from the BroadlinkManager host
  • Traffic to /device/ping endpoint with shell metacharacters

SIEM Query:

source="broadlinkmanager.log" AND (url="/device/ping" AND ip_address MATCHES "[;|&$()]" )

🔗 References

📤 Share & Export