Sprawdzenie klucza kończyło się niepowodzeniem i właśnie dlatego przepuszczało dalej. W LiteLLM, czyli w oprogramowaniu, przez które firmy przepuszczają zapytania do modeli językowych, nieudana weryfikacja spadała na ścieżkę zapasową. Ta podstawiała pusty obiekt uprawnień, a zapytanie szło dalej tak, jakby ktoś je uwierzytelnił. Wystarczyło dopisać nagłówek Authorization z dowolnym tokenem typu Bearer. Amerykańska agencja CISA wpisała tę lukę 2 września do katalogu podatności wykorzystywanych w atakach. Nie jest to pierwszy taki wpis dla tego produktu w tym roku.
Nieudane sprawdzenie klucza kończyło się pustym obiektem uprawnień
Mechanizm da się opisać w trzech zdaniach i warto to zrobić, bo jest pouczający.
LiteLLM obsługuje przekazywanie uwierzytelnienia OAuth2 do serwerów MCP działających wyżej w łańcuchu. Kiedy weryfikacja własnego klucza LiteLLM się nie powiodła, kod schodził na tę właśnie ścieżkę zapasową. Zamiast odrzucić żądanie, podstawiał pusty obiekt UserAPIKeyAuth() i przekazywał je dalej.
To jest podręcznikowy błąd projektowy, znany jako otwieranie się przy awarii. System, który przy niepowodzeniu kontroli powinien zamknąć drogę, zamiast tego ją otwiera. Producent opisuje skutek we własnym zgłoszeniu bezpieczeństwa bez owijania: żądanie ze sfabrykowanym nagłówkiem Authorization docierało do narzędzi MCP bez ważnego klucza LiteLLM.
Ocena jest podwójna, bo policzono ją w dwóch wersjach skali. GitHub przyznał 8,8 według CVSS 4.0, a baza NVD 8,2 według wersji 3.1. Obie mieszczą się w kategorii wysokiej i obie zakładają brak wymaganych uprawnień oraz brak udziału użytkownika.
Czym są serwery MCP i co napastnik przez nie osiąga
Tu leży różnica między zwykłą luką w interfejsie programistycznym a czymś, co dotyczy wprost firm budujących agenty. Model Context Protocol to standard, przez który model dostaje dostęp do narzędzi: baz, repozytoriów, kalendarzy, systemów zgłoszeń, wewnętrznych interfejsów. Serwery MCP są końcówkami tych narzędzi. Opisywaliśmy ten mechanizm szerzej przy porównaniu MCP z umiejętnościami w Claude Code.
Producent LiteLLM zapisał skutek luki wprost. Napastnik mógł wylistować i wywołać skonfigurowane narzędzia MCP oraz sięgnąć do podpiętych przez nie usług.
Przeczytaj to zdanie jeszcze raz, podstawiając własne wdrożenie. Przez bramkę wpięte bywają narzędzia sięgające do firmowej bazy, do repozytorium kodu albo do systemu zgłoszeń. Ich lista jest wtedy mapą tego, do czego napastnik dostał drogę. Bramka miała być miejscem, w którym pilnuje się kluczy. Tutaj stała się miejscem, w którym można je obejść.
Trzeci wpis LiteLLM w katalogu CISA od maja
Pierwsze relacje o tej sprawie mówiły, że oto na listę aktywnie wykorzystywanych podatności wchodzi pierwsza bramka do modeli AI. Przeliczyliśmy cały katalog samodzielnie i to nieprawda. LiteLLM jest tam od maja i to jest jego trzecia pozycja.
Warto zobaczyć te trzy obok siebie, bo dotyczą trzech różnych powierzchni ataku. 8 maja weszła luka pozwalająca na wstrzyknięcie SQL i odczyt bazy pośrednika. CISA dopisuje wprost, że chodzi też o zarządzane przez niego poświadczenia. 8 czerwca doszło wstrzyknięcie polecenia, dzięki któremu dowolny uwierzytelniony użytkownik, także z kluczem o niskich uprawnieniach, mógł uruchamiać polecenia na maszynie. 2 września doszła ta trzecia, która nie wymaga już żadnego klucza i sięga do warstwy narzędzi.
Baza, potem host, teraz warstwa narzędzi. Te trzy wpisy nie dowodzą jednej kampanii ani wspólnego sprawcy i żadne źródło tego nie sugeruje. Pokazują natomiast, że w tym roku trzy różne powierzchnie ataku tego jednego produktu zostały wykorzystane w rzeczywistych incydentach.
Warto przy okazji sprostować szerszą wersję tej samej pomyłki. Narzędzia z okolic sztucznej inteligencji nie są w katalogu nowością. Langflow ma sześć pozycji, licząc od maja zeszłego roku, i pisaliśmy o szóstej z nich. W sierpniu doszły MLflow i Ray. Nowe jest tylko to, którą warstwę ktoś tym razem otworzył.
Agenci AI · Kodożercy
Zbuduj agenta, który wykonuje zadania za Ciebie
Kurs Agenci AI od Kodożerców prowadzi przez pięciu agentów zbudowanych w n8n: bibliotekarza odpowiadającego na pytania z Twoich dokumentów, asystenta proszącego o zgodę przed ważnym krokiem, badacza, inżyniera i łącznika spinającego narzędzia przez MCP. Kod, tam gdzie jest potrzebny, pisze Claude pod Twoim nadzorem.
Zobacz program kursu →
Kto jeszcze wszedł do katalogu tego samego dnia
Rzut z 2 września ma siedem pozycji i dobrze pokazuje, jak wygląda tydzień w tej kategorii.
| CVE | Produkt | Rodzaj luki | Termin dla agencji USA |
|---|---|---|---|
| CVE-2026-59822 | LiteLLM | błąd uwierzytelniania | 16 września |
| CVE-2026-48710 | Starlette | przemyt żądań i odpowiedzi HTTP | 16 września |
| CVE-2026-49869 | Kestra OSS | wstrzyknięcie polecenia systemowego | 5 września |
| CVE-2026-82329 | JFrog Artifactory | błąd uwierzytelniania | 5 września |
| CVE-2026-9586 | Sangoma Switchvox | wstrzyknięcie SQL | 5 września |
| CVE-2026-83548 | SonicWall SMA1000 | fałszowanie żądań po stronie serwera | 5 września |
| CVE-2026-83549 | SonicWall SMA1000 | wstrzyknięcie polecenia systemowego | 5 września |
Drugi wiersz zasługuje na osobny akapit, bo CISA sama dopisała przy nim coś, czego w tym katalogu zwykle nie ma. Opis luki w Starlette kończy się zdaniem, że da się ją złączyć w łańcuch z CVE-2026-42271, czyli z tą czerwcową luką LiteLLM opisaną wyżej.
Zestawienie tych dwóch opisów jest niewygodne i lepiej nazwać wynik wprost. Błąd w Starlette pozwala wstrzyknąć fragment ścieżki do części adresu odpowiadającej za nazwę hosta, co potrafi obejść uwierzytelnianie oparte na odtworzonej ścieżce. Czerwcowa luka LiteLLM wymagała uwierzytelnionego użytkownika, żeby uruchomić polecenie na maszynie. Złożenie jednego z drugim znosi więc warunek klucza. W podatnych wdrożeniach zostaje z tego uruchomienie polecenia na maszynie bez uwierzytelnienia. Starlette jest przy tym warstwą, na której stoi FastAPI, więc problem mógł dotyczyć także usług opartych na tym frameworku, o ile używały podatnej wersji i uwierzytelniania opartego na odtworzonej ścieżce.
Zastrzeżenie na koniec tego wątku: łańcuch dotyczy luki z czerwca, a nie tej wrześniowej, o której jest ten tekst. CISA nie łączy Starlette z CVE-2026-59822.
Terminy w ostatniej kolumnie wiążą amerykańskie agencje federalne i nie są obowiązkiem polskiej firmy. Traktujemy je jak darmową ocenę pilności, wystawioną przez instytucję z dostępem do danych o atakach. Regułę stojącą za tymi datami rozpisaliśmy przy dwóch lukach w serwerze wydruku.
Poprawka jest od czerwca, a katalog dopiero z września
Tu robi się niewygodnie, bo ta luka nie jest świeża. Zgłoszenie opublikowano na GitHubie 30 czerwca, wpis w bazie NVD ma datę 8 lipca, a poprawiona wersja to 1.84.0. Kto aktualizuje bramkę regularnie, ma to załatane od dwóch miesięcy.
Wpis do katalogu CISA nie mówi więc “jest nowa dziura”. Mówi “ktoś tego używa”. To jest zupełnie inna informacja i dla administratora ważniejsza, bo oznacza, że zaległa aktualizacja przestała być długiem technicznym, a stała się otwartymi drzwiami.
Jeżeli aktualizacja jest w tej chwili niemożliwa, producent podaje obejście. Wyłącz trasy MCP albo zablokuj dostęp do /mcp/ i powiązanych punktów końcowych na odwrotnym pośredniku lub bramce interfejsu programistycznego. To rozwiązanie doraźne, nie zamiennik wersji 1.84.0.
Na koniec rzecz, o której przy takich wpisach łatwo zapomnieć. Bramka do modeli trzyma klucze do wszystkich podpiętych dostawców i to jest jej sens. Ta sama cecha czyni z niej cel wart wysiłku, co widzieliśmy już przy wycieku, w którym LiteLLM był jednym z ogniw łańcucha dostaw. Jeżeli w firmie stoi cokolwiek, przez co przechodzą klucze do modeli, to ma rangę podobną do zapory. Nie jest to kolejna biblioteka z listy zależności.
Agent AI, który pracuje na danych Twojej firmy
Budujemy agentów, którzy odpowiadają klientom, czytają dokumenty i przygotowują raporty, podłączonych do Waszych systemów. Zaczynamy od jednego procesu i sprawdzamy efekt, zanim pójdziemy dalej.
Podsumowanie
Wersja, którą trzeba mieć, to 1.84.0 albo nowsza, a doraźnie można zablokować /mcp/ na pośredniku. Sama luka polegała na tym, że nieudana weryfikacja klucza spadała na ścieżkę zapasową i kończyła się pustym obiektem uprawnień. Żądanie z podrobionym nagłówkiem autoryzacji trafiało dzięki temu do narzędzi MCP. Skutek producent opisuje jednym zdaniem: napastnik mógł wylistować i wywołać skonfigurowane narzędzia oraz sięgnąć do podpiętych przez nie usług. Maj, czerwiec i wrzesień. Trzy niezależne pozycje tego samego produktu w katalogu podatności wykorzystywanych w atakach, obejmujące kolejno bazę, host i warstwę narzędzi. Ten układ dat mówi o LiteLLM więcej niż pojedynczy numer wersji. Wpis z 2 września dotyczy przy tym starej dziury, z której ktoś właśnie zaczął korzystać.
Newsletter · DevstockAcademy & Kodożercy
Bądź na bieżąco ze światem IT, AI i automatyzacji
Co wtorek: newsy z branży, praktyczne tipy i narzędzia które warto znać. Zero spamu.



