Skip to main content

Snipe-IT CVE-2026-86749

| EUVDEUVD-2026-74926 HIGH
Unchecked Return Value (CWE-252)
2026-09-09 VulnCheck GHSA-55vq-5fhf-8c84
7.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege user
  2. Delivery
    Submit image upload to any model
  3. Exploit
    Storage backend fails silently
  4. Execution
    Application deletes prior image file
  5. Persist
    Database updated to non-existent filename
  6. Impact
    Permanent data loss and DB-disk inconsistency

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Return value checking
Exploitation Conditions

Exploitation requires: (1) a user authenticated to Snipe-IT with permissions to upload images for any image-carrying model (assets, users, companies, etc. - low-privilege roles with image-upload rights qualify); and (2) a coincident transient failure of the configured storage backend at the moment the upload request is processed - examples include AWS S3 network timeout, NFS mount unavailability, local filesystem permission error, or disk quota exhaustion. The storage failure condition is not directly attacker-controllable in standard deployments without prior infrastructure access. Exploitation is further limited by: the requirement for simultaneous authenticated user activity and a storage failure event, the absence of any confidentiality or code-execution impact, and the fact that impact manifests as data loss rather than a security boundary crossing. Deployments using dedicated local filesystem storage with abundant capacity and no external dependencies face the lowest realistic exposure.

Impact

The provided CVSS 4.0 base score of 7.0 (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:H/VA:L) reflects network accessibility and high integrity impact, which is consistent with the data-destruction outcome. However, real-world exploitability is materially lower than the score suggests because the triggering condition - a coincident storage-layer failure - is not within attacker control in standard deployments. An adversarial use of this flaw would require an attacker to first induce infrastructure-level failures (exhaust S3 quota, disrupt network paths, fill local disks) while a legitimate user concurrently submits an image upload - a multi-step, environment-dependent chain. No CISA KEV listing exists, no public exploit or POC has been identified, and EPSS data is not provided in the source intelligence. The primary real-world risk is operational: unintentional data loss during storage-backend instability rather than targeted exploitation. Environments using highly reliable local filesystem storage with ample capacity have substantially lower exposure. The 'Information Disclosure' tag in the input metadata is a mislabel - the actual impact is irreversible integrity loss and database-to-disk inconsistency, not confidentiality breach.

Exploit ScenarioDerived

An authenticated Snipe-IT user with asset-update permissions submits a new logo for a company record while AWS S3 is experiencing a transient connectivity disruption. Storage::put() returns false silently; the application proceeds to delete the prior company logo from S3 and updates the database row to reference the new filename, which was never written. The company logo is permanently gone and the database points to a non-existent file - no attacker action is required beyond the normal upload workflow coinciding with storage instability.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 09, 2026

Permanent image data destruction in Snipe-IT ≤8.6.3 results from unchecked return values on Laravel storage operations in ImageUploadRequest::handleImages(). When any authenticated user submits an image upload while the configured storage backend (S3, local filesystem, NFS) experiences a transient failure, the silently-returned false from Storage::put() is ignored - the prior image is deleted, and the database record is updated to reference a file that was never written. A symmetric defect in deleteExistingImage() compounds the problem by nulling the model's image field even when Storage::delete() fails, orphaning files on disk. The condition affects all image-carrying models routed through this handler and produces unrecoverable data loss requiring manual reconciliation. No public exploit has been identified at time of analysis.

RemediationAI

Upgrade to Snipe-IT 8.7.0 or later, which corrects the unchecked return values in ImageUploadRequest::handleImages() and deleteExistingImage() so that storage write and delete failures are detected before destructive follow-on operations execute. The vendor-confirmed fix is documented at https://github.com/grokability/snipe-it/security/advisories/GHSA-v37p-hr9x-5w85. Prior to patching, organizations using cloud object storage (AWS S3, GCS) should implement storage-layer alerting so failures surface immediately and administrators can manually reconcile database records before further damage accumulates; note that this does not prevent the data loss, only accelerates discovery. Configuring Laravel's filesystem driver to throw exceptions on failure (available in some driver configurations) would convert silent failures into fatal errors, halting the destructive operation at the cost of surfacing upload errors to end users. Regular off-application backups of stored images provide a recovery path for data already lost; without them, data destruction from this bug is unrecoverable.

Affected VersionsENISA

snipe-it 0 <8.7.0

Affected Packages

euvd snipe_it fix: 8.7.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Snipe-IT is an open-source Laravel-based IT asset management application developed by Grokability, identified via CPE cpe:2.3:a:grokability:snipe-it. The root cause is CWE-252 (Unchecked Return Value): Laravel's Storage facade methods (Storage::disk('public')->put() and Storage::delete()) return boolean success/failure by default rather than throwing exceptions. The application's ImageUploadRequest::handleImages() method - shared across controllers for assets, asset models, users, companies, manufacturers, locations, categories, suppliers, departments, and other image-bearing models - does not inspect this return value before executing destructive follow-on operations. The same pattern in deleteExistingImage() produces the inverse failure: a disk-delete that silently fails still nulls the database reference, creating a persistent inconsistency between the database row and the storage layer. The CWE-252 class is a language-agnostic logic flaw amplified here by Laravel's opt-in exception behavior.

Know when Snipe It gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.0 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

AC:H because triggering requires coincident storage failure outside attacker control; PR:L for authenticated user; I:H for permanent data destruction; A:L for broken image references.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 09, 2026 - 14:19 EUVD
CVE Published
Sep 09, 2026 - 13:32 cve.org
HIGH 7.0

DescriptionCVE.org

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.

Technical POC Analysis

The defect is an unchecked return value on Laravel storage calls, CWE-252 (the advisory itself frames the same behavior as CWE-754 and CWE-460 for the delete-failure case).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Snipe-IT versions 8.6.3 and earlier silently lose asset documentation images when the storage backend experiences temporary service disruptions, permanently destroying previously uploaded photographs and evidence files without recovery options. This impacts any organization relying on Snipe-IT for IT asset management and visual documentation, requiring manual reconciliation of lost asset records. No public exploit identified at time of analysis.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular open-source IT asset management tool, enterprise IT use
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +35
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2023-5511 HIGH POC
8.8 Oct 11

Cross-Site Request Forgery (CSRF) in GitHub repository snipe/snipe-it prior to v.6.2.3. Rated high severity (CVSS 8.8),

CVE-2022-23064 HIGH POC
8.8 May 02

In Snipe-IT, versions v3.0-alpha to v5.3.7 are vulnerable to Host Header Injection. Rated high severity (CVSS 8.8), this

CVE-2021-4130 HIGH POC
8.8 Dec 18

snipe-it is vulnerable to Cross-Site Request Forgery (CSRF). Rated high severity (CVSS 8.8), this vulnerability is remot

CVE-2021-3858 HIGH POC
8.8 Oct 19

snipe-it is vulnerable to Cross-Site Request Forgery (CSRF). Rated high severity (CVSS 8.8), this vulnerability is remot

CVE-2026-63493 HIGH POC
8.6 Sep 24

Two-factor authentication bypass in Snipe-IT (all releases before 8.7.0) allows an attacker who already knows a victim's

CVE-2022-2997 HIGH POC
8.0 Aug 25

Session Fixation in GitHub repository snipe/snipe-it prior to 6.0.10. Rated high severity (CVSS 8.0), this vulnerability

CVE-2022-1155 HIGH POC
7.4 Mar 30

Old sessions are not blocked by the login enable function. Rated high severity (CVSS 7.4), this vulnerability is remotel

CVE-2021-4075 HIGH POC
7.2 Dec 06

snipe-it is vulnerable to Server-Side Request Forgery (SSRF). Rated high severity (CVSS 7.2), this vulnerability is remo

CVE-2026-55460 HIGH POC
7.1 Jul 10

Broken authorization in Snipe-IT before 8.6.2 lets an authenticated non-admin user who holds users.view and users.edit -

CVE-2026-48507 HIGH POC
7.1 Jun 08

Privilege escalation via authorization bypass in Snipe-IT versions prior to 8.6.0 allows any authenticated user holding

CVE-2026-55843 HIGH POC
7.0 Jul 10

Improper permission handling in Snipe-IT before 8.6.0 lets a privileged user strip another user's administrative or gran

CVE-2024-48987 MEDIUM POC
6.6 Oct 11

Snipe-IT before 7.0.10 allows remote code execution (associated with cookie serialization) when an attacker knows the AP

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy