SEPTEMBER 15, 2026
Live Feed
Back to database
Case File

CVE-2026-86749

MEDIUM · CVSS 6.3 EPSS 0.22% Public Exploit

Source: NVD + CISA KEV + EPSS · Published 2026-09-09 · Last synced 2026-09-15

CyberRota Analysis

AI-Generated

Snipe-IT versions up to 8.6.3 are vulnerable due to improper handling of storage write operations during image uploads, leading to potential data loss and inconsistencies between the database and the file system. When an authenticated user uploads an image and a transient storage failure occurs, the application may delete the previous image without successfully saving the new one, resulting in orphaned files and unrecoverable data. Organizations using affected versions should prioritize upgrading to 8.7.0 to mitigate this risk, especially those managing image assets across various models.

Public Exploit Signal

A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.

GitHub PoC Links

Note: these links are listed for security research and verification purposes only.

CVE
CVE-2026-86749
Severity
MEDIUM
CVSS
6.3
EPSS
0.22%

Original NVD 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.

Related CVEs

Other vulnerabilities affecting the same vendor(s)