Description
JeecgBoot before 3.9.5 contains an sql injection vulnerability that allows authenticated attackers to bypass the SqlInjectionUtil keyword blocklist by inserting newline characters into dictionary and online report SQL fragments. Attackers can send newline-separated payloads to endpoints like /sys/dict/getDictItems for boolean or time-based blind injection, extracting database contents including administrator password hashes from sys_user.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| jeecgboot | JeecgBoot | < 3.9.5 | 3.9.5 |
References
- https://github.com/jeecgboot/JeecgBoot/issues/9677 issue-tracking
- https://github.com/jeecgboot/JeecgBoot/blob/v3.9.2/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/SqlInjectionUtil.java#L269-L305 technical-description
- https://github.com/jeecgboot/JeecgBoot/commit/a2be896f753936956ee6863b632b8e5a0231345c patch
- JeecgBoot v3.9.5 Release Notes release-notes
- https://github.com/jeecgboot/JeecgBoot product
- VulnCheck Advisory: JeecgBoot before 3.9.5 SQL Injection via SqlInjectionUtil Newline Bypass third-party-advisory