Executive brief
Snipe-IT is an open-source asset management system used to track corporate inventory. An authenticated user with basic reporting permissions can view pending asset acceptances from all companies on a multi-tenant installation, bypassing company access controls. This allows disclosure of cross-company inventory details, item tags, and the names of employees assigned to assets without authorization.
Technical details
Snipe-IT's asset acceptance report endpoints (/reports/unaccepted_assets page render and CSV export) fail to scope CheckoutAcceptance queries by company and lack per-row access validation. The vulnerability affects ReportsController::getAssetAcceptanceReport and ReportsController::postAssetAcceptanceReport, which check only for the 'reports.view' permission without filtering results by the authenticated user's company membership. Under Full Multiple Company Support (FMCS), an authenticated reports.view user can retrieve pending acceptances from all companies in the database, including asset tags, item names, categories, and assignee display names. The mutating actions on the same report (reminder and delete) correctly use currentUserCanAccessAcceptance() for authorization, but the read paths did not. The fix applies per-row access filtering to both read paths before results are rendered or exported.
Affected products
- Grokability Snipe-IT < 8.7.0
Timeline
- 2026-08-24: disclosed: GitHub Security Advisory published
- 2026-09-09: patched: Version 8.7.0 released with fix (commit 81c0763)
- 2026-09-09: advisory: CVE-2026-86743 published