ZeroHour

CVE-2026-86750

PoC moderate

Authorization flaw in Snipe-IT user API allows cross-company account creation

CVSS 4.0
8.3 high
EPSS
<1%p9
Published
()
Modified
AI analysis

Snipe-IT versions through 8.6.3 contain an incorrect authorization flaw (CWE-863) in which the REST API user endpoints (UsersController::store() and ::update()) persist a user record before verifying that the requested company_id / company_ids[] values belong to companies the acting user is authorized to manage (Company::getIdsForCurrentUser()). On installs with Full Multiple Companies Support (FMCS) enabled, a non-superuser holding users.create, or users.edit on a target user, can submit company identifiers outside their scope — including a mix of permitted and foreign IDs — and the account row is committed to the database before authorization is enforced. The attacker gains the ability to create or relocate user accounts across tenant/company boundaries; where null_company_is_floater=1 is set, the post-hoc filter leaves an empty company pivot and the account persists as a cross-company-visible "floater", an integrity-level impact consistent with the 8.3 (High) CVSS 4.0 score. All self-hosted Snipe-IT deployments at or below 8.6.3 running FMCS and delegating user management to non-superusers are affected; deployments without FMCS are not meaningfully impacted. No public proof-of-concept, CISA KEV listing, or in-the-wild exploitation is known, and the flaw is fixed in 8.7.0.

What to do: Upgrade to Snipe-IT 8.7.0 or later. As interim mitigation on FMCS-enabled instances, restrict users.create and users.edit to superusers or trusted administrators and consider setting null_company_is_floater to 0 to limit cross-company "floater" visibility. Audit recently created or updated user accounts for company assignments outside the actor's scope, especially rows with an empty company pivot indicating cross-tenant visibility.

Affected
Snipe-IT (open-source project) Snipe-IT (self-hosted IT asset management)all versions <= 8.6.3 (fixed in 8.7.0); exposure requires Full Multiple Companies Support (FMCS) enabled
Estimated exposure
moderatelikely on the order of thousands of affected self-hosted instances (the FMCS-enabled subset of an imprecisely known install base) — Snipe-IT is a widely deployed self-hosted open-source IT asset management application, but only installs running Full Multiple Companies Support and granting users.create or users.edit to non-superuser API users are exposed, which is a…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Snipe-IT versions <= 8.6.3 (fixed in 8.7.0) do not validate company assignment authorization before persisting user records via the REST API. In Api\UsersController::store() and ::update(), the user record is filled from the request and saved before the requested company_id / company_ids[] values are filtered against the actor's permitted companies (Company::getIdsForCurrentUser()). On installs using Full Multiple Companies Support (FMCS), a non-superuser holding users.create (or users.edit on a target user) can submit company identifiers for companies outside their scope — including a mix of permitted and foreign ids — causing the account row to be committed to the database before authorization is checked. Where null_company_is_floater=1 is set, the post-hoc filter leaves an empty company pivot and the account is persisted as a "floater" with cross-company visibility, allowing creation or relocation of user accounts across tenant boundaries.

Vendors
snipeitapp
Products
snipe-it
Weakness
CWE-863
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/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

In the news

No ingested article mentions this CVE yet.