CVE-2023-39108

8.8 HIGH

📋 TL;DR

CVE-2023-39108 is a Server-Side Request Forgery (SSRF) vulnerability in rconfig v3.9.4 that allows authenticated attackers to make arbitrary HTTP requests from the vulnerable server. This affects organizations using rconfig v3.9.4 for network device configuration management, potentially exposing internal services to attackers with valid credentials.

💻 Affected Systems

Products:
  • rconfig
Versions: 3.9.4
Operating Systems: All platforms running rconfig
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated access to the rconfig web interface. The vulnerability is in the compare functionality accessible to authenticated users.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could pivot to internal systems, access cloud metadata services, perform port scanning, or interact with internal APIs leading to data exfiltration or further compromise.

🟠

Likely Case

Unauthorized access to internal HTTP services, information disclosure from internal endpoints, or interaction with cloud metadata services if deployed in cloud environments.

🟢

If Mitigated

Limited to accessing only whitelisted internal services with proper network segmentation and egress filtering in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is straightforward once credentials are obtained. Public proof-of-concept demonstrates the SSRF via crafted path_b parameter.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.9.5 or later

Vendor Advisory: https://github.com/rconfig/rconfig/releases

Restart Required: Yes

Instructions:

1. Backup current rconfig installation and database. 2. Download rconfig v3.9.5 or later from official repository. 3. Replace vulnerable files with patched version. 4. Restart web server and rconfig services. 5. Verify functionality of compare feature.

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to reject URLs in path_b parameter

Modify /classes/compareClass.php to validate path_b parameter against allowed local paths only

Network Egress Filtering

linux

Restrict outbound HTTP requests from rconfig server

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

🧯 If You Can't Patch

  • Disable the compare functionality in rconfig by removing or restricting access to /classes/compareClass.php
  • Implement strict network segmentation to isolate rconfig server from sensitive internal services

🔍 How to Verify

Check if Vulnerable:

Check if running rconfig v3.9.4 by examining version files or web interface footer

Check Version:

grep -r 'version' /var/www/rconfig/ | grep '3.9.4'

Verify Fix Applied:

Test compare functionality with external URLs in path_b parameter - should be rejected

📡 Detection & Monitoring

Log Indicators:

  • Unusual HTTP requests originating from rconfig server to internal/external endpoints
  • Multiple compare operations with unusual path parameters

Network Indicators:

  • HTTP traffic from rconfig server to unexpected internal services or external IPs
  • Port scanning patterns from rconfig server

SIEM Query:

source="rconfig" AND (path_b CONTAINS "http://" OR path_b CONTAINS "https://")

🔗 References

📤 Share & Export