Summary
Snipe-IT: Chained Information Disclosure and IDOR Leads to Full EULA File Takeover
Advisory details
Impact
An attacker can completely bypass file-name randomization security and without authorization download confidential, signed EULA files belonging to any other user across the application.
Steps to Reproduce:
- Log in as a restricted user.
- Send a GET request to /api/v1/users/{target_id}/eulas (where target_id belongs to a restricted/denied user).
- Observe the response leaks the secret EULA filename (e.g., eula-xxx.pdf).
- Attempt to access this file via the main route: GET /stored-eula-file/{filename} (This will correctly return 403 Forbidden).
- Now, access the file via the vulnerable profile route: GET /account/stored-eula-file/{filename}.
- Observe that the server returns a 200 OK and successfully downloads the target user's secret EULA file.
Patches
Fixed in https://github.com/grokability/snipe-it/commit/f15d78621b003be30ac114ba68626683894935ef
References
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-63735
SurrealDB: Custom API route lets authenticated callers override namespace/database scope via URL path
- MEDIUMCVE-2026-72802
SiYuan: Absolute filesystem path and OS username disclosure via resolveAssetPath
- MEDIUMCVE-2026-63669
ApostropheCMS: Missing destination-parent authorization in page `move()` allows a low-privileged editor to move and re-rank pages inside a restricted subtree
- HIGHCVE-2026-73841
OpenChoreo: Cross-project command execution and wirelog view access via OpenChoreo openchoreo-api exec and wirelogs endpoints
- MEDIUMCVE-2026-82395
Sulu: Media move/update authorization bypass (IDOR)
- HIGHCVE-2026-81892
EasyAdmin custom-action dispatcher bypasses access_control on other routes