Mittel

Snipe-IT vulnerable to stored XSS via inline-served attachment

  • Veröffentlicht: 28.08.2026
  • Aktualisiert: 11.10.2026 10:22

Impact

A low-privilege user can store an active-content payload as an asset attachment and have it served inline, same-origin, with an active Content-Type, achieving stored XSS. The application sanitizes uploads only when PHP finfo detects image/svg+xml. By submitting an XHTML document whose finfo MIME is text/xml (an allowed extension), the svg-sanitize branch is skipped, the <script> is stored raw, and the inline-serve path returns it as text/xml; charset=utf-8 with Content-Disposition: inline — which the browser renders as a live XHTML document and executes. The dedicated StorageHelper::allowSafeInline() whitelist that should have constrained inline-renderable types is never wired into the serve path.

Details

Vulnerable code — sanitizer keyed on finfo MIME app/Http/Requests/UploadFileRequest.php:46-53

php
$extension = $file->getClientOriginalExtension();
$file_name = $name_prefix.'-'.str_random(8).'-'.str_slug(...).'.'.$file->guessExtension();
...
if ($file->getMimeType() === 'image/svg+xml') {
    $uploaded_file = $this->handleSVG($file);   // svg-sanitize fires
} else {
    $uploaded_file = file_get_contents($file);   // stored RAW — no sanitization
}

Vulnerable code — inline serve, no allowSafeInline() app/Http/Controllers/UploadedFilesController.php:103

php
if (request('inline') == 'true') {
    $headers = ['Content-Disposition' => 'inline'];
    return Storage::download($path.$log->filename, $log->filename, $headers);
}

StorageHelper::allowSafeInline() (app/Helpers/StorageHelper.php:88) exists to whitelist inline-renderable types but is not called here. The validation rule (UploadFileRequest::rules()) is mimes: over config('filesystems.allowed_upload_extensions_for_validator'), which includes svg, xml, and txt — so a text/xml file passes validation and bypasses the SVG sanitizer simultaneously.

POC

  1. From a fresh install, as a user with only assets.view + assets.files targeting any existing asset created by admin
  2. click on the asset created by admin and upload files.
  3. create a XML file with the following payload and upload it.
xml
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><script>alert(document.cookie)</script></head>
<body>hi</body>
</html>
  1. Noticed that it did not receive any error and the file was uploaded.
  2. Now, can just get the URL and view it. (need to add the inline=true). image.png

Notice that the XSS was able to request document.cookie. This means that it is possible for low privilege user to perform XSS and perform privilege escalation to admin.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
Composer-Paket snipe/snipe-it < 8.6.2 8.6.2

Verweise

CVSS-Wert 8.7/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
Schwäche (CWE)
CWE-79
Plattform
Composer
Paket
snipe/snipe-it
Veröffentlicht
28.08.2026
Aktualisiert
11.10.2026 10:22

Quellen und Lizenzen

OSV / GitHub Advisory Database - GHSA-jhph-5q74-pmfx - CC BY 4.0

Schwachstellenhistorie: snipe/snipe-it

Alle veröffentlichten Schwachstellen dieses Pakets (Composer-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (81) im Archiv
Einträge insgesamt
81
Erste → letzte
10.2021 09.2026
Ohne Fix
6
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 1
  • Hoch 23
  • Mittel 53
  • Niedrig 4

Veröffentlichungen pro Jahr

  1. 2021: 10
  2. 2022: 20
  3. 2023: 2
  4. 2024: 3
  5. 2025: 6
  6. 2026: 40
Schweregrad:
  1. Hoch CVE-2026-63493 < 8.7.0 8.7.0
  2. Hoch · 6.5 CVE-2026-55843 < 8.6.0 8.6.0
  3. Snipe-IT vulnerable to stored XSS via inline-served attachment dieser Eintrag
    Mittel · 8.7 CVE-2026-55466 < 8.6.2 8.6.2
  4. Hoch · 7.1 CVE-2026-55460 < 8.6.2 8.6.2
  5. Hoch CVE-2026-55643 < 8.6.3 8.6.3
  6. Hoch · 8.5 CVE-2026-54329 < 8.6.2 8.6.2
  7. Kritisch · 9.8 CVE-2026-37709 < 8.4.1 8.4.1
  8. Hoch · 8.8 CVE-2026-44832 < 8.4.1 8.4.1
  9. Hoch · 8.7 CVE-2024-51093 <= 7.0.13 keine Korrektur
  10. Hoch · 7.2 CVE-2024-48987 < 7.0.10 7.0.10
  11. Hoch · 8.8 CVE-2023-5511 < 6.2.3 6.2.3
  12. Hoch · 8.8 CVE-2022-23064 >= 3.0-alpha, < 5.3.8 5.3.8
Mehr anzeigen (5) 20 von 25 angezeigt

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.