CVE-2019-25024

9.8 CRITICAL

📋 TL;DR

CVE-2019-25024 is an unauthenticated command injection vulnerability in OpenRepeater (ORP) that allows remote attackers to execute arbitrary commands on the server by sending specially crafted POST requests with shell metacharacters. This affects all OpenRepeater installations before version 2.2 that have the vulnerable functions/ajax_system.php endpoint accessible.

💻 Affected Systems

Products:
  • OpenRepeater (ORP)
Versions: All versions before 2.2
Operating Systems: Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default installations when the web interface is accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise leading to full remote code execution, data theft, installation of persistent backdoors, and potential pivot to internal networks.

🟠

Likely Case

Remote attacker gains shell access to the OpenRepeater server, can modify configurations, disrupt repeater operations, and potentially access connected radio equipment.

🟢

If Mitigated

With proper network segmentation and access controls, impact limited to the OpenRepeater application server only.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Multiple public proof-of-concept exploits available. Exploitation requires only HTTP POST request with shell metacharacters in post_service parameter.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.2 and later

Vendor Advisory: https://github.com/OpenRepeater/openrepeater/issues/66

Restart Required: No

Instructions:

1. Backup current configuration. 2. Update OpenRepeater to version 2.2 or later. 3. Verify the update completed successfully. 4. Test system functionality.

🔧 Temporary Workarounds

Block Vulnerable Endpoint

linux

Use web server configuration to block access to the vulnerable functions/ajax_system.php file

# For Apache: Add to .htaccess or virtual host config
<Files "functions/ajax_system.php">
    Order allow,deny
    Deny from all
</Files>
# For Nginx: Add to server block
location ~ /functions/ajax_system\.php$ {
    deny all;
    return 403;
}

Input Validation Filter

linux

Add input validation to sanitize post_service parameter before processing

# Add to functions/ajax_system.php before line 14
$post_service = escapeshellarg($_POST['post_service']);

🧯 If You Can't Patch

  • Immediately restrict network access to OpenRepeater web interface using firewall rules to allow only trusted IP addresses.
  • Implement a web application firewall (WAF) with command injection detection rules in front of the OpenRepeater installation.

🔍 How to Verify

Check if Vulnerable:

Check if OpenRepeater version is below 2.2 by visiting the web interface and checking version in footer or system info page.

Check Version:

grep -i version /var/www/openrepeater/includes/config.php 2>/dev/null || echo "Check web interface footer"

Verify Fix Applied:

After updating to version 2.2 or later, verify the version number in the web interface and test that the system functions normally.

📡 Detection & Monitoring

Log Indicators:

  • HTTP POST requests to /functions/ajax_system.php containing shell metacharacters like ;, |, &, $, (, ), `, or >
  • Unusual process execution from web server user (www-data, apache, nginx)
  • Multiple failed authentication attempts followed by successful POST to vulnerable endpoint

Network Indicators:

  • HTTP POST requests with unusual parameters or shell characters in post_service field
  • Outbound connections from OpenRepeater server to suspicious IPs or domains

SIEM Query:

source="web_server_logs" AND uri="/functions/ajax_system.php" AND (post_service="*;*" OR post_service="*|*" OR post_service="*&*" OR post_service="*`*" OR post_service="*$(*" OR post_service="*>*")

🔗 References

📤 Share & Export