CVE-2026-1746
📋 TL;DR
This SQL injection vulnerability in JeecgBoot 3.9.0 allows remote attackers to execute arbitrary SQL commands through the Online Report API's loadDictItemByKeyword endpoint. Attackers can potentially access, modify, or delete database content. Organizations using JeecgBoot 3.9.0 with the vulnerable API endpoint exposed are affected.
💻 Affected Systems
- JeecgBoot
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise including data theft, data destruction, and potential lateral movement to other systems via database connections.
Likely Case
Data exfiltration from the JeecgBoot database, potentially including sensitive application data and user information.
If Mitigated
Limited impact with proper input validation and database permission restrictions, potentially only allowing data reading from specific tables.
🎯 Exploit Status
The exploit is publicly available and requires minimal technical skill to execute against vulnerable systems.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: None available
Restart Required: No
Instructions:
No official patch available. Vendor was contacted but did not respond. Consider upgrading to a newer version if available or implementing workarounds.
🔧 Temporary Workarounds
Input Validation Filter
allImplement strict input validation for the keyword parameter to block SQL injection attempts
Implement parameterized queries or prepared statements in the loadDictItemByKeyword endpoint
Web Application Firewall Rules
allAdd WAF rules to block SQL injection patterns targeting the vulnerable endpoint
Add rule: Block requests to /JeecgBoot/sys/api/loadDictItemByKeyword containing SQL keywords like UNION, SELECT, INSERT, UPDATE, DELETE, DROP, OR, AND with suspicious patterns
🧯 If You Can't Patch
- Block external access to /JeecgBoot/sys/api/loadDictItemByKeyword endpoint using network firewall rules or web server configuration
- Implement database user permission restrictions to limit the impact of successful SQL injection
🔍 How to Verify
Check if Vulnerable:
Test the endpoint with SQL injection payloads like: keyword=test' OR '1'='1 and observe if database errors or unexpected data is returned
Check Version:
Check JeecgBoot version in application configuration files or admin interface
Verify Fix Applied:
Test with the same SQL injection payloads and verify they are properly rejected or sanitized without executing SQL commands
📡 Detection & Monitoring
Log Indicators:
- SQL syntax errors in application logs
- Unusual database queries from the JeecgBoot application user
- Multiple failed requests to /JeecgBoot/sys/api/loadDictItemByKeyword with SQL keywords
Network Indicators:
- HTTP requests to /JeecgBoot/sys/api/loadDictItemByKeyword containing SQL injection patterns
- Unusual database network traffic patterns from the application server
SIEM Query:
source="web_server_logs" AND uri="/JeecgBoot/sys/api/loadDictItemByKeyword" AND (query="*UNION*" OR query="*SELECT*" OR query="*INSERT*" OR query="*UPDATE*" OR query="*DELETE*" OR query="*DROP*")