Wysoka

Langflow: Authenticated Users Can Read, Modify, and Delete Any Flow via Missing Ownership Check

  • Ujawniono: 27.03.2026
  • Aktualizacja: 11.10.2026 14:18

Vulnerability

IDOR in GET/PATCH/DELETE /api/v1/flow/{flow_id}

The _read_flow helper in src/backend/base/langflow/api/v1/flows.py branched on the AUTO_LOGIN setting to decide whether to filter by user_id. When AUTO_LOGIN was False (i.e., authentication was enabled), neither branch enforced an ownership check — the query returned any flow matching the given UUID regardless of who owned it.

This exposed any authenticated user to:

  • Read any other user's flow, including embedded plaintext API keys
  • Modify the logic of another user's AI agents
  • Delete flows belonging to other users

The vulnerability was introduced by the conditional logic that was meant to accommodate public/example flows (those with user_id = NULL) under auto-login mode, but inadvertently left the authenticated path without an ownership filter.


Fix (PR #8956)

The fix removes the AUTO_LOGIN conditional entirely and unconditionally scopes the query to the requesting user:

diff
-    auth_settings = settings_service.auth_settings
-    stmt = select(Flow).where(Flow.id == flow_id)
-    if auth_settings.AUTO_LOGIN:
-        stmt = stmt.where(
-            (Flow.user_id == user_id) | (Flow.user_id == None)  # noqa: E711
-        )
+    stmt = select(Flow).where(Flow.id == flow_id).where(Flow.user_id == user_id)

All three operations — read, update, and delete — route through _read_flow, so the single change covers the full attack surface. A cross-user isolation test (test_read_flows_user_isolation) was added to prevent regression.


Acknowledgements

Langflow thanks the security researcher who responsibly disclosed this vulnerability:

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Python (PyPI) langflow < 1.5.1 1.5.1
Python (PyPI) langflow-base < 0.5.1 0.5.1

Odnośniki

Ocena CVSS -
Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Słabość (CWE)
CWE-639, CWE-862
Platforma
Python (PyPI)
Paczka
langflow, langflow-base
Ujawniono
27.03.2026
Aktualizacja
11.10.2026 14:18

Źródła i licencje

OSV / GitHub Advisory Database - PYSEC-2026-2567 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-8c4j-f57c-35cf - CC BY 4.0

OSV / GitHub Advisory Database - PYSEC-2026-2570 - PyPA Advisory Database; CC BY 4.0

Historia podatności: langflow

Wszystkie opisane podatności tej paczki (Python (PyPI)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkie (42) w archiwum
Wszystkich wpisów
42
Pierwsza → ostatnia
06.2024 10.2026
Bez poprawki
7
Wykorzystywana w atakach
5

Rozkład istotności

  • Krytyczna 15
  • Wysoka 17
  • Średnia 7
  • Niska 3

Ujawnienia w latach

  1. 2024: 4
  2. 2025: 5
  3. 2026: 33
Istotność:
  1. Wysoka · 7.1 CVE-2026-105741 >= 1.5.0, < 1.10.3 1.10.3
  2. Krytyczna · 9.1 CVE-2026-9205 < 1.10.1 1.10.1
  3. Krytyczna · 9.8 CVE-2026-8505 >= 1.7.0, < 1.9.1 1.9.1
  4. Wysoka · 8.8 CVE-2026-7700 >= 1.3.0, < 1.10.3 1.10.3
  5. Krytyczna · 9.6 CVE-2026-48519 < 1.9.2 1.9.2
  6. Krytyczna · 9.6 CVE-2026-42048 < 1.9.0 1.9.0
  7. Langflow: Authenticated Users Can Read, Modify, and Delete Any Flow via Missing Ownership Check ten wpis
    Wysoka CVE-2026-34046 < 1.5.1 1.5.1
  8. Wysoka · 7.5 CVE-2026-33484 >= 1.0.0, < 1.9.0 1.9.0
  9. Krytyczna · 9.9 CVE-2026-33309 >= 1.2.0, < 1.9.0 1.9.0
  10. Krytyczna · 9.8 Wykorzystywana w atakach CVE-2026-33017 < 1.9.0 1.9.0
  11. Krytyczna · 9.8 CVE-2026-27966 <= 1.8.0rc2 brak poprawki
  12. Wysoka Wykorzystywana w atakach CVE-2026-0770 <= 1.7.3 brak poprawki
  13. Wysoka CVE-2026-21445 < 1.7.1 1.7.1
  14. Wysoka · 7.7 CVE-2025-68477 < 1.7.1 1.7.1
  15. Wysoka · 7.1 CVE-2025-68478 < 1.7.1 1.7.1
  16. Krytyczna Wykorzystywana w atakach CVE-2025-3248 < 1.3.0 1.3.0

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.