| Title | xianrendzw EasyReport <=2.0.17.0522_Beta remote code execution |
|---|
| Description | The report designer's SQL preview endpoints (execSqlText, previewSqlText) pass an attacker-supplied sqlText parameter directly to the Apache Velocity template engine via Velocity.evaluate. The evaluation context exposes live Java classes (DateUtils.class, StringUtils.class, Calendar), and no Velocity security guard (SecureUberspector, MethodExceptionEventHandler) is configured anywhere in the project. As a result the template engine can be driven to reflective class access, which leads to remote code execution. The endpoints are reachable by any authenticated user holding the low report.designer:view permission; all /rest/** routes are guarded by Shiro authentication. |
|---|
| Source | ⚠️ https://github.com/xianrendzw/EasyReport/issues/82 |
|---|
| User | Ana10gy (UID 93358) |
|---|
| Submission | 07/02/2026 11:44 (2 months ago) |
|---|
| Moderation | 08/18/2026 20:19 (2 months later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 391897 [xianrendzw EasyReport up to 2.0.17.0522_Beta SQL Preview Endpoint DesignerController.java execSqlText/previewSqlText sqlText special elements in template engine] |
|---|
| Points | 20 |
|---|