Skip to main content

Snipe-IT EUVDEUVD-2026-74939

| CVE-2026-86762 HIGH
Missing Authorization (CWE-862)
2026-09-09 VulnCheck GHSA-qrxg-4hw7-jwqj
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Retain previously issued Passport bearer token
  2. Delivery
    Admin deactivates account without revoking token
  3. Exploit
    Send authenticated API requests to /api/v1/ endpoints
  4. Install
    Missing CheckUserIsActivated in api group; activation check skipped
  5. C2
    Read sensitive assets, user records, and license data
  6. Execute
    If users.edit permission held: PATCH /api/v1/users/{id} with activated=1
  7. Impact
    Account permanently re-enabled

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires possession of an existing, unexpired Laravel Passport personal access token issued to the target account prior to deactivation, and that token must not have been manually revoked (revoked = 1) in the oauth_access_tokens database table. This is strictly a post-deactivation or insider threat vector: the attacker must have previously authenticated to Snipe-IT and generated or obtained an API token. The most severe escalation (self-reactivation via PATCH /api/v1/users/{id} with {"activated": 1}) additionally requires the deactivated account to have previously held the users.edit permission. Accounts whose tokens have expired, been explicitly revoked, or were never issued are not affected. Network access to the Snipe-IT REST API endpoint is required; if the API is firewalled to internal networks only, external exploitability is reduced but insider threat scenarios remain fully viable.

Impact

The CVSS 4.0 score of 8.6 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N) accurately reflects the threat model: network-accessible, low complexity, requiring only a pre-existing low-privilege bearer token, with high confidentiality and integrity impact. The gating prerequisite - an unexpired, non-revoked Passport token - confines exploitation to insider or post-employment scenarios rather than opportunistic external attacks. Real-world risk is highest in organizations with long-lived API tokens, which is common in Snipe-IT deployments where staff generate personal access tokens for automation scripts. The self-reactivation escalation path elevates the severity disproportionately to PR:L: even a mid-sized IT operations team in swidnica would face a plausible offboarding failure where a departing admin re-enables their account before token rotation occurs. No CISA KEV listing is present and no public exploit code has been identified, making broad automated exploitation unlikely; however, targeted post-employment misuse is a realistic and potentially undetected threat.

Exploit ScenarioDerived

A departing employee was deactivated in Snipe-IT but had previously generated a long-lived Passport personal access token for use in an automation script. Using that token from any network-accessible client, the employee sends PATCH /api/v1/users/{own_id} with {"activated": 1}, which succeeds because the api middleware group never checks activation status. Once re-activated, the account functions normally for both web and API access with no indication to administrators that the deactivation was reversed. No public exploit code has been identified; the attack requires only a standard HTTP client and the attacker's own token.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 09, 2026

Snipe-IT before 8.7.0 fails to apply the CheckUserIsActivated middleware to the API middleware group, allowing deactivated accounts to retain full REST API access through their existing Laravel Passport personal access tokens. Any deactivated user whose token has not been explicitly revoked can continue reading and writing assets, users, and licenses at their prior permission level, bypassing the offboarding control that correctly blocks web sessions. The most critical escalation path lets a deactivated account previously holding users.edit permission PATCH its own activation flag via /api/v1/users/{id} to permanently re-enable itself. No public exploit has been identified at time of analysis; a vendor-released patch is available in version 8.7.0.

RemediationAI

Upgrade Snipe-IT to version 8.7.0 or later, which adds CheckUserIsActivated::class to the api middleware group in app/Http/Kernel.php (patch commit b3f12f974bb2c0175ea68dad163ed04726db4280; vendor advisory: https://github.com/grokability/snipe-it/security/advisories/GHSA-cj4w-vx6j-42rf). If immediate upgrade is not feasible, administrators must manually revoke Passport tokens for every account being deactivated: set revoked = 1 on all rows in the oauth_access_tokens table matching the target user_id. Note that artisan passport:purge only removes expired tokens, not valid ones, and is not a sufficient workaround. Any account being deactivated that previously held the users.edit permission must have its tokens revoked as an immediate priority, as such accounts can self-reactivate on unpatched instances. Restricting REST API network access (/api/v1/) to internal IP ranges reduces external exposure but does not mitigate insider-threat scenarios.

Affected VersionsENISA

snipe-it 8.6.3 <8.7.0

Affected Packages

euvd snipe_it fix: 8.7.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Snipe-IT is a PHP/Laravel-based IT asset management application (CPE cpe:2.3:a:grokability:snipe-it) maintained by Grokability. Laravel organizes HTTP middleware into named groups in app/Http/Kernel.php; the web group handles browser sessions while the api group handles token-authenticated REST requests. Authentication for the API uses Laravel Passport, which issues stateless OAuth2 personal access tokens (Bearer tokens). The CheckUserIsActivated middleware existed and was correctly registered in the web group - terminating browser sessions when an account's activated flag is set to 0 - but was entirely absent from the api group. Because Passport tokens are stateless and not session-bound, account deactivation cannot revoke outstanding tokens unless they are explicitly deleted from the oauth_access_tokens table or the middleware actively rejects them on each request. The root cause is CWE-862 (Missing Authorization): incoming API requests were never evaluated against the account's activation status, so the active-account precondition was simply unenforced across all REST routes.

Know when PHP gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Network API requires only a pre-issued low-privilege bearer token (PR:L); confidentiality and integrity both High from full REST access and self-reactivation; no availability impact; scope unchanged within the application.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Snipe-IT before 8.7.0 does not apply the CheckUserIsActivated middleware to the api middleware group in app/Http/Kernel.php, and deactivating a user does not revoke that user's Passport personal access tokens. As a result, although a deactivated account is correctly refused at web login, its existing API token continues to authenticate and to grant read and write access to the REST API (assets, users, licenses, etc.) at the account's prior permission level until the token expires. A deactivated account that retains user-management permissions can re-activate itself through the API, permanently defeating the deactivation control.

Technical POC Analysis

Need produce markdown breakdown.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Snipe-IT before version 8.7.0 fails to deactivate API access for offboarded employees, allowing former staff with valid authentication tokens to retain full read-write permissions on IT assets, users, and licenses. Departing employees with user-management permissions can even re-enable their own accounts permanently, bypassing critical offboarding controls. This creates an active insider threat window that persists until tokens are manually revoked.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Medium
popular open-source IT asset management platform
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

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

CVE-2012-1823 CRITICAL POC
9.8 May 11

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

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

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

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

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

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy