Read the docs
TI-2026-59306 Aliases CVE-2026-86749GHSA-55vq-5fhf-8c84

snipe-it before 8.7.0 Data Loss via Failed Image Write

Priority LOW 31CWE-252Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
Passive
Attack complexity
Low
Attack requirements
None
Impact type
—
Confidentiality · integrity · availability
None · High · Low
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA.

Summary

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00339 27th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed snipe-it (grokability): 8.7.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
grokabilitysnipe-itbefore 8.7.08.7.0Patch availableCNA
  • snipe-it Vendorgrokability Affected before 8.7.0 Fixed in 8.7.0 Patch available CNA

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:snipeitapp:snipe-it:*:*:*:*:*:*:*:*before 8.7.0Vulnerablegrokability
  • cpe:2.3:a:snipeitapp:snipe-it:*:*:*:*:*:*:*:* Versions before 8.7.0 Vulnerable ·grokability

Remediation

  • Fix · CNA snipe-it (grokability) Fixed in 8.7.0

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    grokability snipe-it 8.7.0

    33 records Highest priority Priority HIGH 5 HIGH, 8 MEDIUM, 20 LOW

    Other records, highest priority first

    • TI-2026-59327 Snipe-IT before 8.7.0 Authentication Bypass via SAML Username CollationPriority HIGH 72
    • TI-2026-59308 Snipe-IT before 8.7.0 Arbitrary File Read and SSRF via MarkdownPriority HIGH 70
    • TI-2026-59298 Snipe-IT before 8.7.0 Arbitrary File Read and SSRF via Category EULAPriority HIGH 70

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-86749
  2. 2026-10-03 Alias added: GHSA-55vq-5fhf-8c84

References

  • TI-2026-45238 Snipe-IT: Stored XSS via Inline XML Rendering in the Uploaded Files API CVSS 3.1HIGH 8.7
  • TI-2026-59327 Snipe-IT before 8.7.0 Authentication Bypass via SAML Username Collation CVSS 4.0HIGH 8.6
  • TI-2026-44513 Snipe-IT: Stored XSS via Custom Field name in asset-list column headers CVSS 3.1HIGH 8.4
  • TI-2023-05072 Cross-Site Request Forgery (CSRF) in snipe/snipe-it CVSS 3.1HIGH 8.8
  • TI-2026-59308 Snipe-IT before 8.7.0 Arbitrary File Read and SSRF via Markdown CVSS 4.0HIGH 8.4
  • TI-2026-59298 Snipe-IT before 8.7.0 Arbitrary File Read and SSRF via Category EULA CVSS 4.0HIGH 8.4
See all 134 →

Sources