Mittel

Snipe-IT: Maintenance Record Disclosure via Missing Authorization on GET

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

Impact

Any activated account in a company can read every maintenance record for that company (asset tag, supplier, purchase cost, free-text notes, dates) without holding any asset or maintenance permission.

Summary

MaintenancesController::show() renders a maintenance record without any authorization check. Every other action in the controller authorizes against the asset; show() does not. Any user in the asset's company can read maintenance detail (asset tag, supplier, purchase cost, notes, dates) by visiting /maintenances/{id}, regardless of permissions.

Details

php
public function show(Maintenance $maintenance): View|RedirectResponse
{
    return view('maintenances.view')->with('maintenance', $maintenance);
}

No authorize() call. The sibling actions all gate on the asset: index() calls authorize('view', Asset::class) (line 33), and edit()/update()/destroy() call authorize('update', $maintenance->asset) (lines 139, 166, 286). The route is registered with only the auth guard:

php
Route::resource('maintenances', MaintenancesController::class, ['middleware' => ['auth']]);

(routes/web/hardware.php:185). Route-model binding still applies the company scope, so the read is bounded to the caller's company; the absent permission gate is the defect. Maintenance IDs are sequential and visible in the record URL.

Proof of concept

  1. As an administrator, create an asset in a company (here, CompanyA). Open the asset, choose Maintenances > Create, and add a record: name MntA2, supplier SupA, a purchase cost, and notes. The saved record opens at /maintenances/{id}.
  2. As the administrator, create a test user assigned to CompanyA, with every permission left unchecked. Activate the account.
  3. In a separate browser session, log in as the test user. Confirm it is unprivileged: the Assets and Maintenances navigation items are absent, and browsing to /hardware returns 403.
  4. In the address bar, browse to http://<host>/maintenances/{id}.

Observed: the maintenance view renders in full for the unprivileged account.

GET /maintenances/5      ->  HTTP 200 OK
Renders the "Maintenance" detail page for MntA2:
  Asset: AssetA   Supplier: SupA   Cost: <value>   Notes: <text>   Dates: <...>

GET /hardware            ->  HTTP 403  (same account, asset list is gated)
GET /maintenances        ->  HTTP 403  (same account, maintenance list is gated)
GET /maintenances/2      ->  HTTP 302  (record in CompanyB; company scope still hides it)
  • The test account holds zero permissions and still reads the record.
  • Only the unguarded show route leaks: the list view and the asset pages return 403 for the same account.
  • A maintenance in a different company (CompanyB) redirects away, confirming the FMCS company scope still holds.

Patches

Patched in https://github.com/grokability/snipe-it/commit/69c50aa2aee25f837626556b4f4f3d05ec7ace96

Betroffene Software

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

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

Verweise

CVSS-Wert 4.3/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Schwäche (CWE)
CWE-862
Plattform
Composer
Paket
snipe/snipe-it
Veröffentlicht
19.08.2026
Aktualisiert
11.10.2026 10:22

Quellen und Lizenzen

OSV / GitHub Advisory Database - GHSA-r9r3-g9fp-3q4q - 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. Hoch · 7.1 CVE-2026-55460 < 8.6.2 8.6.2
  4. Snipe-IT: Maintenance Record Disclosure via Missing Authorization on GET dieser Eintrag
    Mittel · 4.3 CVE-2026-55703 < 8.6.3 8.6.3
  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.