Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-exploitable by any authenticated low-privilege user; no integrity or availability impact; scope unchanged as exfiltration is limited to the vulnerable application's data.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
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.
AnalysisAI
Insecure direct object reference in Snipe-IT prior to 8.6.3 allows any authenticated low-privilege user to read signed EULA documents belonging to other users by exploiting inconsistent authorization enforcement across two Laravel controllers. The attacker calls /api/v1/users/{target_id}/eulas to learn the target's randomized EULA filename, then retrieves the file via the /account/stored-eula-file/{filename} route, which bypasses the stricter checks enforced by the primary /stored-eula-file/{filename} endpoint. No public exploit has been identified at time of analysis, and the vendor has released a fix in version 8.6.3.
Technical ContextAI
Snipe-IT is a PHP/Laravel open-source IT asset and license management platform (cpe:2.3:a:grokability:snipe-it:*:*:*:*:*:*:*:*). The root cause is CWE-639 (Authorization Bypass Through User-Controlled Key), a class of insecure direct object reference where user-supplied identifiers reach resource lookups without per-object authorization checks. In UsersController.php, the authorization call used the User class as its target ($this->authorize('view', User::class)) rather than the specific resolved user instance ($this->authorize('view', $user)), meaning Laravel's Gate evaluated whether the caller could view users in general - not whether they could view that particular user. ProfileController.php compounded the issue by allowing anyone holding both 'view users' and 'view assets' permissions to bypass ownership checks on the stored-eula-file download route. The commit fix (f15d78621b003be30ac114ba68626683894935ef) replaces class-level authorization with object-level authorization in both controllers and adds a null guard before any authorization logic runs.
RemediationAI
The primary fix is to upgrade Snipe-IT to version 8.6.3, which tightens authorization to object-level checks in both app/Http/Controllers/Api/UsersController.php and app/Http/Controllers/ProfileController.php. The vendor advisory is at https://github.com/grokability/snipe-it/security/advisories/GHSA-3hgv-jr5j-cg9x and the release is at https://github.com/grokability/snipe-it/releases/tag/v8.6.3. If an immediate upgrade is not possible, a viable compensating control is to restrict network access to the Snipe-IT instance so that only authorized personnel can authenticate - this reduces the pool of users who could exploit the IDOR but does not eliminate the flaw for legitimate restricted accounts. Alternatively, disabling the EULA workflow feature via application configuration removes the exploitable endpoints entirely, though this may break compliance workflows that rely on EULA signature tracking. Both workarounds carry operational trade-offs and should be treated as temporary bridges to patching, not permanent mitigations.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-62631
GHSA-3hgv-jr5j-cg9x