Описание
Snipe-IT: Chained Information Disclosure and IDOR Leads to Full EULA File Takeover
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
Пакеты
snipe/snipe-it
< 8.6.3
8.6.3
Связанные уязвимости
Snipe-IT is an IT asset/license management system. Prior to 8.6.3, a restricted user can request /api/v1/users/{target_id}/eulas to obtain another user's randomized EULA filename and then download the signed file through /account/stored-eula-file/{filename}. The primary /stored-eula-file/{filename} route correctly denies access, but app/Http/Controllers/ProfileController.php and app/Http/Controllers/Api/UsersController.php do not consistently enforce ownership and target-user authorization. This issue is fixed in version 8.6.3.
Snipe-IT is an IT asset/license management system. Prior to 8.6.3, a r ...