Dwie dziesiątki i żadna nie jest błędem AI
Dwa najgorsze advisory tygodnia siedzą w produkcie z AI w nazwie. Jedno to SQL injection, drugie code injection. Jedyne, co w nich nowe, to miejsce, w którym się znalazły.
W tym tygodniu dwa advisory dostały pełną dziesiątkę. Oba siedzą w korporacyjnym produkcie sprzedawanym jako platforma AI. Jedno to SQL injection, drugie code injection. Ich klasy słabości skatalogowano, zanim większość branży usłyszała określenie duży model językowy.
I to jest właśnie ta historia, przecinająca sposób, w jaki zwykle się o tym pisze. Ciekawe pytanie nie brzmi, jakie nowe ataki wymyśliło AI. Brzmi: ile z tej nowej powierzchni przenosi bardzo stare błędy.
Dwa najgorsze są zwyczajne
Nieuwierzytelnione dowolne SQL do bazy instancji. Nieuwierzytelnione wykonanie dowolnego kodu na platformie. Zdejmij nazwę produktu, a to są znaleziska, które dało się napisać w 2005 roku, i zalecenie naprawcze byłoby identyczne: sparametryzuj zapytanie, przestań ewaluować napisy, na które wpływa atakujący.
Etykieta AI nie jest tu podatnością. Jest powodem, dla którego ten kod istnieje, i powodem, dla którego powstał szybko. Nowa linia produktowa to nowa baza kodu, nowy zestaw endpointów i nowy termin, a te trzy rzeczy zawsze dawały ten efekt.
Jedno jest naprawdę nowe
Jest też framework agentowy, w którym zdalne wykonanie kodu przychodzi przez prompt injection. Jego narzędzia pythonowe i powłokowe biorą argumenty wyprodukowane przez model i podają je, nieodkażone, do miejsc wykonania:
exec() runpy.run_path() subprocess.run()
Atakujący nigdy nie dotyka tych wywołań. Wpisuje coś na stronę albo do dokumentu, agent czyta to w ramach swojej pracy, a model uprzejmie produkuje argument. Wejście jest przepuszczone przez model i właśnie to czyni je trudnym do odfiltrowania: zanim napis dotrze do miejsca wykonania, wygenerował go Twój własny, zaufany komponent.
To nie jest stary błąd w nowym miejscu. Granica zaufania faktycznie się przesunęła i biegnie teraz między modelem a narzędziami, które może wywołać.
I jedno, które jest jednym i drugim naraz
Najbardziej pouczający jest przypadek IDE, którego tryb agentowy potrafił zapisać poza obszarem roboczym. Klasa słabości to path traversal, czyli rzecz całkowicie leciwa. Nowe jest to, skąd wzięła się ścieżka: podał ją model, a sprawdzenie zawierania, które złapałoby ścieżkę od użytkownika, nigdy nie zostało zastosowane do ścieżki od modelu.
To jest most między dwiema połowami tej listy. Klasa błędu jest stara. Powodem, dla którego nikt nie zwalidował wejścia, jest to, że przyszło od komponentu, który kod uznawał za część siebie.
Doszło do przeglądarki
Wydana przeglądarka mobilna Microsoftu ma teraz własny identyfikator za prompt injection. Ocena jest umiarkowana, a skutkiem jest spoofing, a nie przejęcie, więc to nie jest część niepokojąca. Niepokojąca jest kategoria: prompt injection przestał być ograniczony do czyjegoś frameworka agentowego na GitHubie. Jest w oprogramowaniu z setkami milionów instalacji i będą go oceniać zespoły, które nigdy nie musiały o tym myśleć.
Co z tym realnie zrobić
- Przejrzyj produkt AI najpierw jak zwykłą aplikację webową. Najgorsze znaleziska tego tygodnia wyłapałby zwyczajny przegląd appsec, a nie cokolwiek specyficznego dla agentów.
- Dopiero potem dodaj tę jedną nową granicę. Traktuj wyjście modelu jak niezaufane wejście do każdego narzędzia, do którego sięga, zwłaszcza tego, które wykonuje kod, zapisuje pliki albo wysyła żądania.
- Zastosuj istniejącą walidację do wartości pochodzących od modelu. Sprawdzanie zawierania ścieżek, listy dozwolonych i kanonikalizacja zwykle już u Ciebie są, tylko nie są podpięte do tego źródła.
- Sprawdź, gdzie Twoje narzędzia agentowe trzymają klucze dostawców. Co najmniej jeden projekt w tym tygodniu zapisywał je na dysk otwartym tekstem, pod przewidywalną nazwą.
- Platforma AI ServiceNow, SQL injection: CVE-2026-74820, CWE-89. CVSS 4.0 podstawa 10.0 Critical, AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H. Nieuwierzytelnione dowolne zapytania SQL do bazy instancji. Ocena nadana przez psirt@servicenow.com. Publikacja 27 sierpnia 2026.
- Platforma AI ServiceNow, code injection: CVE-2026-18885, CWE-94. CVSS 4.0 podstawa 10.0 Critical, ten sam wektor. Nieuwierzytelnione wykonanie dowolnego kodu na platformie. Ocena nadana przez psirt@servicenow.com. Publikacja 27 sierpnia 2026. ServiceNow deklaruje, że załatał instancje hostowane i przekazał aktualizację partnerom.
- Agno: CVE-2026-37003, CWE-94, wersje do 2.5.8 włącznie. CVSS 3.1 podstawa 9.8 Critical. Komponenty PythonTools i ShellTools przekazują nieodkażone argumenty wygenerowane przez model wprost do exec(), runpy.run_path() i subprocess.run(). Atakujący osadza instrukcje w treści przetwarzanej przez agenta, na przykład na stronie WWW albo w dokumencie.
- Eclipse Theia: CVE-2026-82217, CWE-22, wersje od 1.73.0 do 1.75.0 wyłącznie. CVSS 3.1 podstawa 8.8 High, AV:N/AC:L/PR:N/UI:R. Narzędzia zmiany plików w trybie AI Agent Mode rozwiązywały ścieżkę podaną przez model bez sprawdzenia, czy mieści się w obszarze roboczym, więc ścieżka względna typu ../.bashrc, bezwzględna albo rozwinięta z tyldy zapisywała lub kasowała pliki poza nim. Nadane przez emo@eclipse.org.
- Microsoft Edge dla iOS: CVE-2026-70331, nieprawidłowe odkażanie wejścia używanego do promptowania modelu, pozwalające na spoofing przez sieć. CVSS 3.1 podstawa 5.4 Medium, AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N. Nadane przez secure@microsoft.com, publikacja 28 sierpnia 2026, i jako jedyne z tej listy zostało już przeanalizowane przez NVD.
- browser-use web-ui: CVE-2026-82640, CWE-312, wersje od 2.0.0 do 3.0.0 zapisują skonfigurowane klucze API modeli na dysk otwartym tekstem, w plikach JSON o przewidywalnych nazwach. Dwie oceny od tego samego oceniającego: CVSS 4.0 podstawa 6.8 i CVSS 3.1 podstawa 5.5.
- Obie dziesiątki nadał własny PSIRT ServiceNow, a NVD oznacza je jako Awaiting Analysis. Nie mamy niezależnego potwierdzenia żadnej z tych ocen.
- Advisory ServiceNow mówią, że wady są wykorzystywalne w pewnych okolicznościach, nie podając w jakich, a rekordy NVD nie zawierają zakresów podatnych wersji. Nie jesteśmy w stanie powiedzieć, czy konkretna instancja była wystawiona.
- Niczego z tego nie odtworzyliśmy i nie zaobserwowaliśmy żadnej próby wykorzystania. Nasz publiczny sensor jest wyłączony, więc nie mamy telemetrii ani skuteczności detekcji.
- Przewaga starych klas błędów to wynik okna i zestawu zapytań naszego skauta, a nie spis powszechny. Inne okno przesunie proporcje.
- Czy wady ServiceNow siedzą w kodzie specyficznym dla AI, czy w starszym kodzie platformy, który produkt AI jedynie wystawia, nie wynika z advisory, a to zmienia wniosek.
- 01CVE-2026-74820: SQL injection w platformie AI ServiceNow ↗
- 02CVE-2026-18885: code injection w platformie AI ServiceNow ↗
- 03CVE-2026-37003: zdalne wykonanie kodu w Agno przez prompt injection ↗
- 04CVE-2026-82217: Eclipse Theia Agent Mode zapisuje poza obszarem roboczym ↗
- 05CVE-2026-70331: prompt injection w Microsoft Edge dla iOS ↗
- 06CVE-2026-82640: browser-use web-ui trzyma klucze API otwartym tekstem ↗

