Mittel

Firefly III user API endpoints expose all users' information to any authenticated user (IDOR)

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

Summary

The User management API endpoints (GET /api/v1/users and GET /api/v1/users/{id}) are accessible to any authenticated user without admin/owner role verification, exposing all users' email addresses, roles, and account status.

Affected Endpoints

  1. GET /api/v1/users (UserController::index, line 94) — Lists ALL users with full details. No role check.
  2. GET /api/v1/users/{id} (UserController::show, line 126) — Shows any user's details by ID. No role check.

Root Cause (1-of-N Inconsistency)

Other methods in the same controller properly check for the 'owner' role:

  • store() — UserStoreRequest::authorize() checks auth()->user()->hasRole('owner') ✓
  • destroy() — Explicitly checks $this->repository->hasRole($admin, 'owner') ✓

But index() and show() have no role check at all. The route group at routes/api.php:734-747 has no admin middleware, only the global auth:api middleware.

Exposed Data

The UserTransformer (line 40-54) returns:

  • email — user's email address
  • role — user's role (owner/demo)
  • blocked — account blocked status
  • blocked_code — block reason
  • created_at / updated_at — timestamps

Impact

Any authenticated user can:

  1. Enumerate ALL user accounts in the instance
  2. Harvest email addresses for phishing/social engineering
  3. Identify admin/owner accounts by role
  4. Determine which accounts are blocked

Exploitation

bash
# List all users
curl -H "Authorization: Bearer <any_user_token>" https://instance/api/v1/users

# View specific user details
curl -H "Authorization: Bearer <any_user_token>" https://instance/api/v1/users/1

Suggested Fix

Add owner role checks to index() and show(), or restrict the route group with admin middleware:

php
// Option 1: Add check in controller methods
public function show(User $user): JsonResponse
{
    if (!$this->repository->hasRole(auth()->user(), 'owner') && auth()->user()->id !== $user->id) {
        throw new FireflyException('200025: No access to function.');
    }
    // ...
}

// Option 2: Add middleware to route group
Route::group(['middleware' => ['admin'], ...], ...)

Betroffene Software

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

PlattformPaketAnfällige VersionenBehoben in
Composer-Paket grumpydictator/firefly-iii >= 6.4.23, < 6.5.1 6.5.1

Verweise

CVSS-Wert -
CVSS-Vektor
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Schwäche (CWE)
CWE-863
Plattform
Composer
Paket
grumpydictator/firefly-iii
Veröffentlicht
07.03.2026
Aktualisiert
11.10.2026 10:22

Quellen und Lizenzen

OSV / GitHub Advisory Database - GHSA-5q8v-j673-m5v4 - CC BY 4.0

Schwachstellenhistorie: grumpydictator/firefly-iii

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 (26) im Archiv
Einträge insgesamt
26
Erste → letzte
08.2021 06.2026
Ohne Fix
3
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 1
  • Hoch 1
  • Mittel 22
  • Niedrig 2

Veröffentlichungen pro Jahr

  1. 2021: 12
  2. 2022: 5
  3. 2023: 3
  4. 2024: 3
  5. 2025: 0
  6. 2026: 3
Schweregrad:
  1. Kritisch · 9.1 CVE-2026-50886 <= 6.5.9 keine Korrektur
  2. Firefly III user API endpoints expose all users' information to any authenticated user (IDOR) dieser Eintrag
    Mittel ghsa-5q8v-j673-m5v4 >= 6.4.23, < 6.5.1 6.5.1
  3. Hoch · 8.8 CVE-2021-3846 < 5.6.2 5.6.2

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.