CVE-2021-21917

8.8 HIGH

📋 TL;DR

An authenticated SQL injection vulnerability exists in Advantech R-SeeNet's group_list page, allowing attackers to execute arbitrary SQL commands. This affects R-SeeNet 2.4.15 installations as of July 30, 2021. Attackers can exploit this through authenticated HTTP requests or cross-site request forgery.

💻 Affected Systems

Products:
  • Advantech R-SeeNet
Versions: 2.4.15 (30.07.2021)
Operating Systems: Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated access, but any authenticated user can trigger the vulnerability.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of the R-SeeNet database, allowing data theft, manipulation, or potential remote code execution on the underlying system.

🟠

Likely Case

Unauthorized data access, privilege escalation, or database manipulation by authenticated users or through CSRF attacks.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and network segmentation in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authentication but is straightforward via HTTP requests to the vulnerable 'ord' parameter.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.4.16 or later

Vendor Advisory: https://www.advantech.com/support

Restart Required: Yes

Instructions:

1. Download latest R-SeeNet version from Advantech support portal. 2. Backup current configuration. 3. Install update following vendor instructions. 4. Restart R-SeeNet services.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement web application firewall rules to filter SQL injection patterns in 'ord' parameter

WAF specific - configure to block SQL patterns in POST/GET parameters

Network Segmentation

all

Restrict access to R-SeeNet web interface to authorized users only

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="TRUSTED_IP" port protocol="tcp" port="80,443" accept'
netsh advfirewall firewall add rule name="R-SeeNet Access" dir=in action=allow protocol=TCP localport=80,443 remoteip=TRUSTED_IP

🧯 If You Can't Patch

  • Implement strict input validation and parameterized queries in custom code
  • Monitor for SQL injection attempts in web server logs and implement rate limiting

🔍 How to Verify

Check if Vulnerable:

Check R-SeeNet version in web interface or installation directory. Version 2.4.15 (30.07.2021) is vulnerable.

Check Version:

Check web interface login page or installation directory version.txt file

Verify Fix Applied:

Verify version is 2.4.16 or later and test SQL injection attempts are blocked.

📡 Detection & Monitoring

Log Indicators:

  • SQL syntax errors in web server logs
  • Unusual database queries from web application
  • Multiple failed parameter manipulation attempts

Network Indicators:

  • HTTP requests with SQL keywords in 'ord' parameter
  • Unusual database connection patterns from web server

SIEM Query:

source="web_logs" AND ("ord=*SELECT*" OR "ord=*UNION*" OR "ord=*INSERT*" OR "ord=*DELETE*")

🔗 References

📤 Share & Export