Abstrakcyjna ilustracja techniczna na jasnym ciepłoszarym tle: szeroki panel konfiguracyjny w kolorze złamanej bieli z delikatnymi liniami pól w rzędach znajduje się na lewo od środka, a mały okrągły cyjanowy token w kształcie dziurki od klucza odchodzi od jego górnej krawędzi wzdłuż cienkiej cyjanowej linii ku płaskiemu łupkowemu blokowi serwera po prawej. Poniżej panelu ciemne zaokrąglone pole zawiera parę cienkich bursztynowych nawiasów kątowych, a druga cienka bursztynowa linia biegnie stamtąd do dolnej krawędzi tego samego bloku; jeden mały bursztynowy kwadrat oznacza miejsce połączenia, w którym spotykają się obie ścieżki. Za pierwszym blokiem znajduje się przygaszony drugi blok serwera. Płaska geometria wektorowa z miękkimi cieniami i hojnymi marginesami; nigdzie nie występują żadne teksty, litery, liczby, ludzie ani logotypy organizacji. Logo OrcaRouter jest wkomponowane w prawym dolnym rogu białego pasa pod grafiką.
AI Safety Incidents

CVE-2026-9198: Langflow wydawał tokeny superużytkownika każdemu, a następnie wykonywał to, co przesłano

Autor

Rowan Sterling

Data publikacji

Najnowsze modele · 20Zobacz wszystkie modele →
Benchmarki: Artificial Analysis · aktualizowane codziennie
Powrót do wszystkich wpisów

Komunikat IBM dotyczący CVE-2026-9198 opisuje przejęcie Langflow OSS za pomocą dwóch żądań: wywołanie punktu końcowego automatycznego logowania platformy zwraca token bearer superużytkownika każdemu, kto o niego poprosi, a drugie wywołanie przesyła kod Python do punktu końcowego walidacji kodu, który go uruchamia. Producent rejestruje obie połowy tego łańcucha pod osobnymi identyfikatorami — CVE-2026-9103 dla braku uwierzytelniania, CVE-2026-8481 dla wykonania — i ocenia połączenie na 9,8 w CVSS 3.1, dostępne przez sieć bez uprawnień i bez interakcji użytkownika. Domyślne wdrożenia w wersjach od 1.0.0 do 1.10.0 są podatne; poprawką jest 1.10.1, a IBM nie podaje żadnego obejścia. Amerykańska Agencja ds. Cyberbezpieczeństwa i Bezpieczeństwa Infrastruktury dodała CVE do swojego katalogu Known Exploited Vulnerabilities 4 sierpnia 2026 r., z federalnym terminem remediacji 7 sierpnia. Wpis, jego znaczniki wagi i szkód oraz powiązane wpisy są przechowywane w Orca AI Incident Archive, który wymienia ten incydent wraz z resztą serii.

Łańcuch, w trzech biuletynach IBM

IBM publikuje tę lukę jako trzy dokumenty, a nie jeden, i to czytanie ich razem sprawia, że mechanizm staje się czytelny. Cały łańcuch to CVE-2026-9198, problem wstrzyknięcia kodu w kategorii CWE-94, oceniony na 9,8 z wektorem AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — dostępny z sieci, o niskiej złożoności, bez uprawnień, bez interakcji użytkownika i o wysokim wpływie na poufność, integralność i dostępność. Jego pierwsza połowa, CVE-2026-9103, to brak uwierzytelniania dla funkcji krytycznej w kategorii CWE-306, również 9,8. Jego druga połowa, CVE-2026-8481, to znowu CWE-94, ale oceniona na 9,9: AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, niskie uprawnienia zamiast żadnych oraz zmieniony zakres.

A dark HTML card titled 'Three identifiers, one chain', kicker 'IBM Langflow OSS, 1.0.0 to 1.10.0', subtitle 'Bulletin identifiers, CWEs and CVSS 3.1 base scores, taken from the three IBM support pages cited in the article'. Three rows, each naming a CVE at left: CVE-2026-9103, missing authentication in the auto-login endpoint, CWE-306, scoring 9.8 with the metrics PR:N, UI:N, S:U, and a note that it issues a SUPERUSER bearer token valid for 365 days when AUTO_LOGIN is enabled, which is the default. CVE-2026-8481, remote code execution in the code-validation endpoint, CWE-94, scoring 9.9 with the metrics PR:L, UI:N, S:C, and a note that it passes submitted Python to exec and is scored with low privileges because the endpoint expects a session. CVE-2026-9198, the chain of the two filed as one vulnerability, CWE-94, scoring 9.8 with the metrics PR:N, UI:N, S:U, and a note that the no-privileges metric comes from the first half and the execution from the second. Two rules below read 'The execution half alone required a session. The missing authentication supplied one.' and 'Neither half is scored 9.8 with no privileges. Only the chain is.' A footer credits IBM as the CVSS source for all three and says the card was rendered by OrcaRouter with no vendor logos. The OrcaRouter logo is composited in the bottom-right corner.

9,9 to uczciwa część arytmetyki. Punkt końcowy walidacji kodu nigdy sam z siebie nie był otwarty dla osób postronnych — IBM opisuje go jako lukę, która pozwalała „dowolnemu uwierzytelnionemu użytkownikowi wykonywać dowolne polecenia systemowe z pełnymi uprawnieniami procesu serwera Langflow”. To, co czyni ten łańcuch nieuwierzytelnionym, to pierwsza połowa: punkt końcowy automatycznego logowania, który według IBM „wystawia długotrwałe tokeny bearer superużytkownika bez wymagania uwierzytelnienia, gdy konfiguracja AUTO_LOGIN jest włączona (domyślnie włączona)”. Biuletyn dodaje, że tokeny mają 365-dniowy okres ważności, i odnotowuje drugą ścieżkę ekspozycji, która przyciąga mniej uwagi — permisywne domyślne ustawienia współdzielenia zasobów między źródłami, zezwalające na źródła z symbolami wieloznacznymi wraz z poświadczeniami, co według IBM „może umożliwić kradzież tokenów przy okazji odwiedzenia dowolnych witryn”.

Część dotycząca wykonania jest warta uwagi. Podsumowanie IBM stwierdza, że walidator „skompilował i wykonał kod przesłany przez użytkownika, w tym ewaluacje zachodzące w czasie definiowania funkcji, takie jak argumenty domyślne i dekoratory”, oraz że atakujący mógłby zatem przemycić wykonywalne wyrażenie do parametru domyślnego lub dekoratora. To nie jest przenośnia dotycząca niebezpiecznego kodu: dekorator jest ewaluowany, gdy otaczająca instrukcja def jest konstruowana, więc żądanie, którego jedynym deklarowanym celem jest sprawdzenie składni funkcji, nadal uruchamia wszystko, co jest do niego dołączone. Powiązany komunikat doradczy samego IBM stwierdza to samo w jednym zdaniu — walidacja i wykonanie były tą samą operacją. Poprawka odnotowana w biuletynie CVE-2026-8481 polegała na „usunięciu wykonywania kodu ze ścieżki walidacji i wykonywaniu wyłącznie kontroli kompilacji”.

A dark HTML card titled 'Two requests, two endpoints', kicker 'CVE-2026-9198, exploit chain', subtitle 'Paths as written in IBM bulletin 7278927; the chain needs no credentials, no user action and no reconnaissance'. Two panels joined by a cyan arrow. REQUEST 1 shows a POST to /api/v1/auto_login with the note that no credentials are supplied and none required and that the response carries a SUPERUSER bearer token with a 365-day lifetime, plus a smaller note that the CVE-2026-9103 bulletin writes this path as /api/v1/login/auto_login. REQUEST 2 shows a POST to /api/v1/validate/code with the token and a Python payload, calling exec with the privileges of the Langflow service process, and a note that the CVE-2026-8481 score is 9.9 with S:C and PR:L. A four-part strip below reads NO PRIVILEGES, vector PR:N; NO USER ACTION, vector UI:N; NO RECON NEEDED, only confirm it runs Langflow; and TWO HTTP CALLS, the whole chain. A closing panel headed 'Why validation was execution' quotes IBM's chained bulletin on default arguments and decorators evaluated at function-definition time, and states that a request whose stated job is to check syntax ran the attached code. A footer credits IBM bulletins 7278927 and 7278923 and says the card was rendered by OrcaRouter. The OrcaRouter logo is composited in the bottom-right corner.

Jedną niewielką rozbieżność warto odnotować, ponieważ wpływa ona na polowanie na zagrożenia. Powiązany bulletin podaje punkt końcowy tokena jako /api/v1/auto_login, podobnie jak Cloud Security Alliance i Field Effect; osobny bulletin IBM dotyczący CVE-2026-9103 podaje go jako /api/v1/login/auto_login. Oba dokumenty IBM opisują ten sam punkt końcowy i żaden z nich nie myli się co do zachowania. Ścieżka wykonania jest wszędzie zapisana identycznie: POST /api/v1/validate/code.

Skąd pochodzą daty

Archiwum datuje ten rekord na 6 sierpnia 2026 r. Wpis w katalogu CISA, odczytany 30 października 2026 r., odnotowuje dodanie jako 4 sierpnia 2026 r. i wyznacza termin remediacji na 7 sierpnia. Otaczające doniesienia przypadają po obu stronach daty archiwum, a nie na nią: firma Field Effect opublikowała 5 sierpnia, a cvetodo i krajowy zespół ds. reagowania na incydenty komputerowe w Tajlandii opublikowały 7 sierpnia. Wpis na liście, wynikający z niego termin i artykuły na jego temat to trzy różne zdarzenia, więc te daty się nie wykluczają — ale dwudniowa różnica między polem archiwum a polem CISA jest powodem, by zajrzeć do katalogu, gdy dokładny dzień ma znaczenie.

Ustalenie daty ujawnienia jest trudniejsze, a źródła rzeczywiście się nie zgadzają. Strona biuletynu IBM dotycząca łańcuchowego CVE podaje datę pierwotnej publikacji 2 lipca 2026 oraz datę modyfikacji 17 sierpnia 2026. Field Effect datuje ujawnienie przez IBM na 2 lipca. Nota badawcza Cloud Security Alliance z 18 sierpnia podaje datę ujawnienia oraz towarzyszącego mu wydania 1.10.1 jako 17 lipca; cvetodo twierdzi tak samo. Między tymi dwoma odczytami jest piętnaście dni i żaden z dokumentów nie jest niedbały, więc ten artykuł nie rozstrzyga między nimi. W każdym razie jest ustalone, że poprawka została opublikowana przed umieszczeniem w wykazie KEV oraz że 1.10.1 to wydanie, które ją zawierało.

A dark HTML card titled 'What happened, and when it was written down', kicker 'CVE-2026-9198, five dates', subtitle 'Read from the IBM bulletin metadata and the CISA KEV catalog entry on 30 October 2026, with the source disagreement labelled rather than resolved'. Five rows: 2 July 2026, 'IBM bulletin published', the initial publication date on IBM support page 7278927, with Field Effect giving the same day as the disclosure date; 17 July 2026, 'The other reading of disclosure', highlighted in amber, the date the Cloud Security Alliance and cvetodo give for disclosure and the 1.10.1 release, fifteen days apart from 2 July; 4 August 2026, 'Added to CISA KEV catalog', the date the catalog entry records, with known ransomware use recorded as Unknown and forensic triage required under BOD 26-04; 7 August 2026, 'Federal remediation deadline', also the publication date of the ThaiCERT advisory and of cvetodo's coverage; and 6 August 2026, 'The archive's date for this record', two days after the catalog date and between the 5 August and 7 August coverage. Two rules below read 'Still unresolved in sources: disclosure on 2 July (IBM, Field Effect) or 17 July (Cloud Security Alliance, cvetodo). No tie-break found.' and 'Not in dispute: the patch preceded the KEV listing, and 1.10.1 is the release that carried it.' A footer notes that the catalog entry was read on 30 October 2026 and says the card was rendered by OrcaRouter. The OrcaRouter logo is composited in the bottom-right corner.

Dokładna treść wpisu CISA w jego własnych polach jest węższa niż jego nagłówek. Produkt figuruje u dostawcy IBM jako produkt Langflow; luka jest opisana jako „taka, która pozwala nieuwierzytelnionym atakującym uzyskać pełne zdalne wykonanie kodu w domyślnych wdrożeniach Langflow”; znane wykorzystanie w kampaniach ransomware odnotowano jako Nieznane; triage kryminalistyczny jest oznaczony jako wymagany na mocy BOD 26-04; a wymagane działanie polega na zastosowaniu środków zaradczych zgodnie z instrukcjami dostawcy albo na zaprzestaniu używania produktu, gdy środki zaradcze są niedostępne.

Zapis wykorzystania

Wpis CISA twierdzi, że luka została wykorzystana w rzeczywistych atakach. Publiczne dowody stojące za tym twierdzeniem są słabsze, niż sugeruje ocena 9,8. Ani IBM, ani CISA nie wskazały aktora zagrożenia ani nie opublikowały szczegółów zaobserwowanej kampanii — Field Effect mówi to wprost, a nic w trzech biuletynach IBM ani we wpisie KEV temu nie przeczy.

Zamiast tego istnieje telemetria dostawcy przekazywana z drugiej ręki. Notatka Cloud Security Alliance powołuje się na KEVIntel w kwestii twierdzenia, że próby wykorzystania odnotowano począwszy od „około 6 lipca 2026 r.”, kilka tygodni przed ujawnieniem według własnych obliczeń sojuszu, oraz że do połowy sierpnia łączne próby wzrosły do setek, pochodząc z kilkuset unikalnych adresów internetowych rozproszonych w dziesiątkach krajów. Te liczby pochodzą od jednej firmy monitorującej i nie pojawiają się w żadnym innym źródle przejrzanym na potrzeby tego artykułu. Są tu podane, ale nie potwierdzone.

Warto przyjrzeć się bliżej dacie rozpoczęcia. Jeśli próby rzeczywiście rozpoczęły się około 6 lipca, to jest to cztery dni po dacie komunikatu widniejącej na stronie IBM i jedenaście dni przed datą 17 lipca podawaną przez dwa inne źródła. Telemetria nie potwierdza zatem ani nie obala żadnej z tych dat ujawnienia; Cloud Security Alliance podaje oba wyjaśnienia, nie dokonując wyboru, opisując wczesną aktywność albo jako niezależne odkrycie przez oportunistycznych skanerów, albo jako wyciek szczegółów technicznych przed skoordynowanym ujawnieniem.

Publiczny kod exploita jest lepiej udokumentowaną częścią. Field Effect przypisuje publiczny opis łańcucha „publicznemu proof-of-concept opublikowanemu w lipcu 2026 r.” w repozytorium github.com/0xdak/CVE-2026-9198_exploit i twierdzi, że kod pokazuje pozyskanie tokena superużytkownika przez punkt końcowy automatycznego logowania, a następnie użycie go wobec punktu końcowego walidacji. Field Effect nie łączy autora tego repozytorium z żadnym zaobserwowanym wykorzystaniem, podobnie jak ten artykuł. Żadne z przejrzanych źródeł nie zgłasza również potwierdzonej kradzieży danych uwierzytelniających z wykorzystanego hosta: opis pozyskiwania danych uwierzytelniających, który ogólnie towarzyszy podatnościom Langflow, jest oceną dotyczącą tego, co takie host przechowuje, omówioną poniżej, a nie ustaleniem dotyczącym jakiejkolwiek nazwanej ofiary w tym zapisie.

Ustalony, zgłoszony i nieustalony

• Ustalono, że CVE-2026-9198 łączy brak uwierzytelniania w punkcie końcowym automatycznego logowania z wykonaniem kodu w punkcie końcowym walidacji kodu; że IBM ocenia ten łańcuch na 9,8 w ramach CWE-94, a jego dwie części na 9,8 i 9,9; że domyślne wdrożenia Langflow OSS w wersjach od 1.0.0 do 1.10.0 są dotknięte na platformach Windows, macOS i Linux; że 1.10.1 stanowi poprawkę, a IBM nie publikuje żadnego obejścia; oraz że CISA dodała CVE do katalogu KEV z federalnym terminem 7 sierpnia 2026 r. Trzy biuletyny IBM są dokumentami źródłowymi i są zgodne ze sobą co do mechanizmu.

• Niezależnie powtórzone. ThaiCERT powtórzył w swoim komunikacie doradczym z 7 sierpnia 2026 r. ten sam łańcuch obejmujący dwa punkty końcowe, tę samą ocenę 9,8, ten sam zakres podatnych wersji i to samo rozwiązanie w wersji 1.10.1, a ponadto dodał mechanizm kontroli sieciowej, którego nie zawierają biuletyny IBM: nie wystawiać interfejsu administracyjnego Langflow do publicznego internetu i uzyskiwać do niego dostęp wyłącznie przez VPN lub ściśle określoną listę dozwolonych adresów. To potwierdzenie interpretacji komunikatu przez organ rządowy, który nie ma żadnego interesu w brzmieniu tekstu dostawcy — a nie niezależne odkrycie luki.

• Zgłoszone, niepotwierdzone. Każda liczba dotycząca wykorzystania: setki prób, kilkaset adresów, dziesiątki krajów, począwszy od około 6 lipca. Są to dane jednej firmy monitorującej, przekazane przez jednostkę badawczą. Wykaz CISA potwierdza, że doszło do wykorzystania, nie podając jego skali, a w przeglądanym tu materiale nie pojawia się żadne drugie źródło telemetrii.

• Nie ustalono. Brak wskazanej ofiary i wskazanego podmiotu sprawczego. Brak atrybucji do państwa lub grupy przestępczej. Brak potwierdzonej liczby instancji Langflow dostępnych z internetu — cvetodo poinformowało 7 sierpnia, że IBM nie odpowiedział na pytania dotyczące skali wykorzystania — i od tego czasu nie pojawiło się żadne oświadczenie dostawcy określające tę liczbę. Archiwum ocenia ten wpis na poziomie ufności A i nie oznacza go jako spornego, a nic z przeanalizowanych tu materiałów go nie podważa; luki te są lukami w publicznie dostępnych dowodach, a nie w twierdzeniu, że ta podatność istnieje i została wykorzystana.

• Celowo wykluczone.Komunikat doradczy ThaiCERT również opisuje w tym samym tygodniu automatyczne skanowanie kierowane przez AI, ale wiąże je z innym produktem z tej samej partii CISA, a nie z Langflow. Nie stanowi on dowodu dotyczącego tego rekordu i nie jest tu w tej roli wykorzystywany.

Co się zmieniło po debiucie giełdowym?

Środek zaradczy dostawcy to podniesienie wersji i nic więcej. Tabela produktów objętych problemem firmy IBM wymienia Langflow OSS od 1.0.0 do 1.10.0, wskazuje 1.10.1 jako poprawkę i w polu obejść wpisuje „None” — we wszystkich trzech biuletynach. Biuletyn CVE-2026-8481 opisuje zmianę: walidator przestał wykonywać, a zaczął kompilować. Biuletyn CVE-2026-9103, obejmujący część dotyczącą automatycznego logowania, nie opisuje swojej poprawki równie szczegółowo, a żaden z przejrzanych tutaj dokumentów IBM nie podaje daty wydania 1.10.1.

Zalecenia wszystkich pozostałych idą dalej niż zalecenia dostawcy. Cloud Security Alliance zaleca przeprowadzenie aktualizacji, a następnie zweryfikowanie w czasie działania, że punkt końcowy automatycznego logowania nie wydaje już tokenów nieuwierzytelnionym wywołującym, zamiast polegać na ciągu wersji — podanym przez nią powodem jest to, że wcześniejsze łatki Langflow zawierały niekompletne poprawki. Zaleca również wyraźne ustawienie zmiennej środowiskowej LANGFLOW_AUTO_LOGIN na false, aby platforma wymagała prawdziwych danych uwierzytelniających zamiast je generować, oraz traktowanie każdej instancji, która od początku lipca była wystawiona na internet, jako skompromitowanej do czasu przeglądu logów, z rotacją danych uwierzytelniających dla wszystkiego, do czego instancja mogła mieć dostęp: kluczy dostawców modeli, danych uwierzytelniających baz danych i kluczy usług w chmurze. ThaiCERT dodaje część sieciową — brak interfejsu administracyjnego w publicznym internecie, dostęp wyłącznie przez VPN lub listę dozwolonych. Oba zestawy zaleceń pochodzą od badaczy. IBM nie publikuje żadnych.

W materiale źródłowym znajduje się jedna wzmianka o autorze. IBM w swoim potwierdzeniu przypisuje zgłoszenie Harish Kolla, którego nazwa użytkownika GitHub to Har1sh-k. Cloud Security Alliance w notatce z 18 sierpnia określa CVE-2026-9198 jako czwartą odrębną lukę w Langflow polegającą na braku uwierzytelnienia lub obejściu autoryzacji, która trafiła do katalogu CISA w ciągu około pięciu miesięcy, wymieniając trzy wcześniejsze identyfikatory; jej interpretacja jest taka, że wzorzec ten odzwierciedla powtarzające się fragmentaryczne naprawianie jednego modelu uwierzytelniania i wykonywania kodu, a nie niepowiązane defekty. To ujęcie jest oceną sojuszu, przedstawioną w notatce badawczej; nie jest ustaleniem niezależnego audytora, a żadne analizowane tu źródło nie odnotowuje publicznej odpowiedzi maintainerów na nią.

Co lista KEV rozstrzyga, a czego nie rozstrzyga

Katalog CISA jest stwierdzeniem zaobserwowanego wykorzystania, a nie raportem o incydencie, i ten wpis trzyma się tej formuły. Mówi, że luka została wykorzystana; nie mówi, przeciwko komu, przez kogo ani jak często. Wykorzystanie przez ransomware zapisano jako Nieznane. Nic nie zostało skwantyfikowane. Wpis rozstrzyga natomiast jedną kwestię, której nie rozstrzygnie ocena istotności: czy luka przeszła od działającego proof of concept do rzeczywistego wykorzystania. Dla organizacji poza zakresem BOD 26-04 — a jest to większość świata — termin 7 sierpnia nie nakłada żadnego obowiązku, a stojący za nim fakt ma taką samą wagę, jaką miałby, gdyby wiązał się z nim obowiązek.

Cloud Security Alliance wyciąga z tego samego wpisu wniosek operacyjny: że umieszczenie na liście KEV jest wiarygodnym sygnałem, iż eksploatacja wyszła poza etap proof-of-concept, oraz że w przypadku tej luki nastąpiło to około miesiąca po pierwszych odnotowanych próbach. Kto czekał na katalog przed triage’em, według tej interpretacji reagował już na incydent, a nie mu zapobiegał. Czy opisuje to konkretne wdrożenie, to pytanie do jego logów — para punktów końcowych, której należy szukać, to ta udokumentowana przez IBM, a zapis nie wskazuje ani jednej ofiary, względem której można by sprawdzić odpowiedź.