CVE-2026-86749
CVE-2026-86749 is a medium-severity vulnerability in Snipeitapp Snipe-it with a CVSS 3.x base score of 6.3. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-252.
Key facts
- Severity: Medium (CVSS 3.x base score 6.3)
- CVSS v4: 7.0
- EPSS exploit prediction: 0% (25th percentile)
- Actively exploited: Not listed in CISA KEV
- Weakness: CWE-252
- Affected product: Snipeitapp Snipe-it
- Published:
- Last modified:
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.
Frequently asked questions
- What is CVE-2026-86749?
- 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.
- How severe is CVE-2026-86749?
- CVE-2026-86749 has a CVSS 3.x base score of 6.3, rated medium severity. It is exploitable over network with low attack complexity, requires low privileges and user interaction. Impact on confidentiality is none, integrity high, and availability low.
- Is CVE-2026-86749 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 0% (25th percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2026-86749?
- CVE-2026-86749 affects Snipeitapp Snipe-it. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2026-86749?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround.
- When was CVE-2026-86749 published?
- CVE-2026-86749 was published on 2026-09-09 and last updated on 2026-09-19.
References
- https://github.com/grokability/snipe-it/security/advisories/GHSA-v37p-hr9x-5w85
- https://www.vulncheck.com/advisories/snipe-it-before-8.7.0-data-loss-via-failed-image-write
Affected products (1)
- cpe:2.3:a:snipeitapp:snipe-it:*:*:*:*:*:*:*:*
More vulnerabilities in Snipeitapp Snipe-it
- CVE-2025-63601 — Critical (CVSS 9.9): Snipe-IT before version 8.3.3 contains a remote code execution vulnerability that allows an authenticated attacker to…
- CVE-2026-37709 — Critical (CVSS 9.8): Insecure Permissions vulnerability in grokability snipe-it v.8.4.0 and before and fixed after 2026-03-10 commit…
- CVE-2026-85617 — High (CVSS 8.8): snipe-it versions before 8.6.3 contain an authorization bypass vulnerability in the bulk delete functionality that…
- CVE-2026-55643 — High (CVSS 8.8): Snipe-IT is an IT asset/license management system. Prior to 8.6.3, a company-scoped user in FMCS floater mode can…
- CVE-2026-55483 — High (CVSS 8.8): Snipe-IT is an IT asset/license management system. Prior to 8.6.0, an authenticated user with users.create permission…
- CVE-2026-44832 — High (CVSS 8.8): Snipe-IT is an IT asset/license management system. Prior to 8.4.1, aAn authenticated user with only users.edit…
All CVEs affecting Snipeitapp Snipe-it →
Other CWE-252 vulnerabilities
- CVE-2025-66565 — Critical (CVSS 9.8): Fiber Utils is a collection of common functions created for Fiber. In versions 2.0.0-rc.3 and below, when the system's…
- CVE-2023-52687 — Critical (CVSS 9.8): In the Linux kernel, the following vulnerability has been resolved: crypto: safexcel - Add error handling for…
- CVE-2021-38171 — Critical (CVSS 9.8): adts_decode_extradata in libavformat/adtsenc.c in FFmpeg 4.4 does not check the init_get_bits return value, which is a…
- CVE-2021-26955 — Critical (CVSS 9.8): An issue was discovered in the xcb crate through 2021-02-04 for Rust. It has a soundness violation because…
- CVE-1999-0199 — Critical (CVSS 9.8): manual/search.texi in the GNU C Library (aka glibc) before 2.2 lacks a statement about the unspecified tdelete return…
- CVE-2019-15900 — Critical (CVSS 9.8): An issue was discovered in slicer69 doas before 6.2 on certain platforms other than OpenBSD. On platforms without…