CVE-2026-86740
PoC moderateSilent file-deletion failure leaves 'deleted' attachments on disk in Snipe-IT before 8.7.0
Snipe-IT versions before 8.7.0 fail to check the return value of Storage::delete() in the web controller UploadedFilesController::destroy() and its API counterpart Api\UploadedFilesController::destroy(). When an administrator deletes an uploaded attachment and the underlying filesystem deletion fails, the application still returns a success response and hides the file from listings, while the physical file remains on disk. Anyone with access to the server filesystem or to backups can therefore retrieve attachments that were believed to be deleted, which is a data-retention/privacy problem rather than a remote code-execution risk — sensitive files stored in the asset management system (e.g., license documents, photos, invoices) may persist indefinitely. The flaw affects all Snipe-IT deployments running versions before 8.7.0 and requires high (administrator) privileges to trigger plus filesystem or backup access to exploit, consistent with its medium CVSS 4.0 score of 5.1. No exploitation is known; EPSS is 0.2% and the only public reference is the upstream advisory GHSA-4c4h-cpgf-h4qr published by the maintainers.
What to do: Upgrade to Snipe-IT 8.7.0 or later, which verifies the Storage::delete() return value and surfaces deletion failures. Audit upload/attachment storage directories (e.g., private uploads paths) for files whose attachment records were already deleted, remove them from disk, and account for the fact that backups retain copies of supposedly deleted attachments. Also check for root causes of silent deletion failures — filesystem permissions, read-only or full disks — and confirm deletion behaves correctly after upgrading.
| snipeitapp snipe-it | before 8.7.0 (< 8.7.0) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Snipe-IT before 8.7.0 fails to check the return value of Storage::delete() in UploadedFilesController::destroy() and Api\\UploadedFilesController::destroy(), allowing deletion requests to report success while files remain on disk. Administrators performing attachment deletions receive success responses and see files hidden from listings, but the physical files persist on disk and remain accessible to anyone with filesystem or backup access.
- Vendors
- snipeitapp
- Products
- snipe-it
- Weakness
- CWE-212
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/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
In the news0 stories
No ingested article mentions this CVE yet.