CVE-2017-5344
published 2017-02-17CVE-2017-5344: An issue was discovered in dotCMS through 3.6.1. The findChildrenByFilter() function which is called by the web accessible path /categoriesServlet performs…
PriorityP263critical9.8CVSS 3.0
AVNACLPRNUINSUCHIHAH
EXPLOIT
EPSS
6.30%
92.7th percentile
An issue was discovered in dotCMS through 3.6.1. The findChildrenByFilter() function which is called by the web accessible path /categoriesServlet performs string interpolation and direct SQL query execution. SQL quote escaping and a keyword blacklist were implemented in a new class, SQLUtil (main/java/com/dotmarketing/common/util/SQLUtil.java), as part of the remediation of CVE-2016-8902; however, these can be overcome in the case of the q and inode parameters to the /categoriesServlet path. Overcoming these controls permits a number of blind boolean SQL injection vectors in either parameter. The /categoriesServlet web path can be accessed remotely and without authentication in a default dotCMS deployment.
Affected
1 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| dotcms | dotcms | <= 3.6.1 | — |
Detection & IOCsextracted from sources · hover to see the quote
url/categoriesServlet?q=%5c%5c%27)+OR%2f%2a%2a%2f(SELECT(SUBSTRING((SELECT(${column})FROM(${database}.user_)LIMIT%2f%2a%2a%2f${index},1),${offset},1)))LIKE+BINARY+${char}%2f%2a%2a%2fORDER+BY+category.sort_order%23↗
- →Monitor HTTP requests to /categoriesServlet with q or inode parameters containing URL-encoded backslash-quote sequences (e.g., %5c%5c%27) indicative of SQL injection probing. ↗
- →Detect blind boolean SQL injection payloads in /categoriesServlet requests containing SQL keywords such as SELECT, SUBSTRING, LIKE BINARY, ORDER BY, and comment obfuscation patterns like %2f%2a%2a%2f (/**/) in the q or inode parameters. ↗
- →The exploit targets the dotcms or dotcms2 database schema and specifically queries the user_ table for userid and password_ columns; alert on SQL errors or anomalous query patterns referencing these table/column names. ↗
- →The endpoint /categoriesServlet requires no authentication; any unauthenticated access to this path with non-trivial query parameters should be treated as suspicious in a default dotCMS deployment. ↗
- ·The SQLUtil blacklist/escaping controls introduced for CVE-2016-8902 are bypassable for the q and inode parameters of /categoriesServlet; patching to the fixed version is required as WAF-only mitigations may be insufficient. ↗
- ·The exploit script is tuned for MySQL backends; the SQL injection vulnerability may also be exploitable against other DBMS backends with adapted payloads. ↗
CVSS provenance
nvdv3.09.8CRITICALCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvdv2.07.5HIGHAV:N/AC:L/Au:N/C:P/I:P/A:P
CVEs like this are exactly what “Exploited This Week” covers.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
No detection rules found.
No writeups or analysis indexed.
http://dotcms.com/security/SI-39http://seclists.org/fulldisclosure/2017/Feb/34http://www.securityfocus.com/bid/96259https://github.com/xdrr/webapp-exploits/blob/master/vendors/dotcms/2017.01.blind-sqli/dotcms-dump.shhttps://www.exploit-db.com/exploits/41377/http://dotcms.com/security/SI-39http://seclists.org/fulldisclosure/2017/Feb/34http://www.securityfocus.com/bid/96259https://github.com/xdrr/webapp-exploits/blob/master/vendors/dotcms/2017.01.blind-sqli/dotcms-dump.shhttps://www.exploit-db.com/exploits/41377/
2017-02-17
Published