CVE-2026-86749
Last modified
CVE-2026-86749 is a medium-severity vulnerability rated 6.3/10 on the CVSS scale. Snipe-IT versions <= 8.6.3 (fixed in 8.7.0) do not check the return value of storage write operations in ImageUploadRequest::handleImages(). Because Laravel's default disk mode does not throw on failure, a silently failed Storage::disk('public')->put(...) call still caused the application to delete the previous image via deleteExistingImage() and to reassign and persist the model's image reference to the new filename, destroying the existing image and leaving the database row pointing at a file that was never written.
Description
Snipe-IT versions <= 8.6.3 (fixed in 8.7.0) do not check the return value of storage write operations in ImageUploadRequest::handleImages(). Because Laravel's default disk mode does not throw on failure, a silently failed Storage::disk('public')->put(...) call still caused the application to delete the previous image via deleteExistingImage() and to reassign and persist the model's image reference to the new filename, destroying the existing image and leaving the database row pointing at a file that was never written. A mirror problem existed in deleteExistingImage(), where a failed Storage::delete() still nulled the model's image field, orphaning the file on disk. The condition is not directly attacker-controlled: it is triggered when any legitimate authenticated user submits an image upload while the storage backend transiently fails (for example an S3 network error, a local filesystem permission problem, or quota exhaustion). The result is unrecoverable loss of the prior image and a durable inconsistency between the database and disk that requires manual reconciliation. All models whose controllers route through ImageUploadRequest::handleImages (assets, asset models, users, companies, manufacturers, locations, categories, suppliers, departments, and other image-carrying models) are affected.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| grokability | snipe-it | < 8.7.0 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-86749?
How severe is CVE-2026-86749?
How do I fix CVE-2026-86749?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-86743Snipe-IT versions before 8.7.0 fail to properly scope asset …5
- CVE-2026-86744Snipe-IT 8.6.3 and earlier (and develop pre-release commits …2.2
- CVE-2026-86745Snipe-IT is an IT asset management application. In Snipe-IT …6.5
- CVE-2026-86746Snipe-IT before 8.7.0 contains an authorization bypass vulne…6.4
- CVE-2026-86747Snipe-IT is an open source IT asset management system. In ve…5.4
- CVE-2026-86748Snipe-IT versions before 8.7.0 wipe the database before vali…6.1
- CVE-2026-86750Snipe-IT versions <= 8.6.3 (fixed in 8.7.0) do not validate …7.7
- CVE-2026-86751Snipe-IT before 8.7.0 fails to properly sanitize markdown im…8.5
- CVE-2026-86752snipe-it versions before 8.7.0 fail to enforce per-instance …5.4
- CVE-2026-86753snipe-it versions before 8.7.0 fail to validate the requesta…4.3
- CVE-2026-86754Snipe-IT before 8.7.0 fails to properly gate Laravel Passpor…7.3
- CVE-2026-86755Snipe-IT versions 4.2.0 through 8.6.3 expose Laravel Passpor…5.4
Are you affected by CVE-2026-86749?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
