PydanticAI 1.102.0 a 2.0.0b3 opravujú úzku SSRF chybu pri IPv6 formách metadátových adries
PydanticAI vydal verzie 1.102.0 a 2.0.0b3 s bezpečnostnou opravou pre špecifický prípad URL validácie. Riziko sa týka aplikácií, ktoré explicitne povolia sťahovanie lokálnych URL cez force_download='allow-local' a bežia v sieťach s NAT64 alebo ISATAP.
Pripravil HERMES. Výber tém pomáha robiť BuloSentinel. Redakčná kontrola: Marek Považský.
- Typ zdroja
- Kurátorovaný súhrn
- Zdroj / autorita
- GitHub Releases / PydanticAI
Redakčný kontext
Tému vybral BuloSentinel ako súčasť monitorovania AI ekosystému. Text pripravil HERMES zo zdrojovo ukotvených podkladov a zodpovednú kontrolu pravidiel robí Marek Považský.
Článok je zaradený v sekcii AI novinky a opiera sa o 3 zdroje.
PydanticAI vydal verziu 1.102.0 a súbežne beta vydanie 2.0.0b3, ktoré prenáša rovnakú bezpečnostnú opravu do pripravovanej vetvy. Najdôležitejšia zmena sa týka validácie URL pri sťahovaní súborov a je označená v bezpečnostnom upozornení GitHubu ako GHSA-cg7w-rg45-pc59. Nejde o masovo zneužiteľnú chybu v každej aplikácii, ale o úzky scenár, ktorý je pre agentické systémy dôležitý práve preto, že pracujú s externými URL a môžu ich dostať od používateľa alebo z nástroja.
Jadro problému je trieda zraniteľností SSRF, teda server-side request forgery. Pri SSRF sa útočník snaží prinútiť server, aby urobil požiadavku na adresu, ku ktorej by sa útočník priamo nedostal. V cloudovom prostredí je obzvlášť citlivý metadátový endpoint, ktorý môže poskytovať krátkodobé poverenia alebo konfiguračné informácie. Moderné knižnice preto často blokujú požiadavky na interné IP adresy a metadátové rozsahy.
Podľa poradného textu sa chyba týka aplikácií, ktoré explicitne povolia FileUrl v režime force_download='allow-local'. Tým vývojár vypne štandardný zákaz súkromných alebo lokálnych adries. Problém vznikal vtedy, keď aplikácia zároveň bežala v sieti, ktorá routuje niektoré IPv6 prechodové formy, napríklad NAT64 alebo ISATAP. Útočník mohol zakódovať metadátovú IPv4 adresu do IPv6 formy, ktorú predchádzajúca validácia úplne nerozpoznala, a požiadavka sa potom mohla dostať k podkladovému metadátovému endpointu.
PydanticAI zdôrazňuje aj hranice dopadu. Štandardný dual-stack cloudový virtuálny stroj alebo kontajner, ktorý tieto formy neroutuje, podľa vydania nie je prakticky zasiahnutý. Rovnako nemajú byť zasiahnutí používatelia zabudovaných integrácií na prijímanie vstupov, ako Agent.to_web, clai web, VercelAIAdapter alebo AGUIAdapter. To je dôležité pre posúdenie rizika: nejde o paniku pre každého používateľa PydanticAI, ale o dôvod na rýchlu aktualizáciu tam, kde sa kombinujú nedôveryhodné URL, lokálne sťahovanie a špecifická sieťová konfigurácia.
Opravené verzie sú 1.102.0 a 2.0.0b3 pre balíky pydantic-ai aj pydantic-ai-slim. Postihnuté rozsahy sú podľa advisories od 1.56.0 po verzie pred 1.102.0 a beta vetva od 2.0.0b1 po verzie pred 2.0.0b3. Praktické odporúčanie je preto jednoduché: ak aplikácia používa PydanticAI a najmä ak povoľuje lokálne sťahovanie URL ovplyvnených používateľom, mala by aktualizovať a zároveň preveriť, či podobné výnimky vôbec potrebuje.
Vydanie obsahuje aj niekoľko bežných opráv mimo bezpečnosti. Release notes spomínajú napríklad to, že nástroje so strict=None sa nemajú automaticky povyšovať do strict režimu pri Bedrocku, obídenie problémov so starším botocore, úpravu natívneho structured output pre Opus 4.7, opravu telemetrického atribútu a zmeny okolo VercelAIAdapter. Sú to malé položky, ale pri frameworku pre agentov majú praktický dopad: agentické aplikácie často stoja na integráciách s viacerými poskytovateľmi a drobná nekompatibilita sa rýchlo prejaví v produkcii.
Pre vývojárov agentov je táto oprava dobrým pripomenutím, že bezpečnostné riziká nevznikajú iba v samotnom modeli. Vznikajú aj v okolitej vrstve: pri sťahovaní súborov, spracovaní URL, volaní nástrojov a pripájaní sa k cloudovým službám. Agent, ktorý vie autonómne načítať URL alebo súbory, musí mať tvrdé hranice okolo siete a prístupu k metadátam. Inak sa model môže stať iba pohodlným spôsobom, ako útočník dostane server k zakázanej požiadavke.
Najrozumnejší postup nie je iba aktualizovať balík. Tímy by mali prejsť miesta, kde používajú allow-local, overiť, či vstup do takého sťahovania môže ovplyvniť používateľ, a nastaviť dodatočné sieťové obmedzenia mimo aplikácie. Bezpečnosť agentov bude čoraz viac závisieť od vrstvenej obrany: validácia v knižnici je jedna vrstva, ale firewall, blokovanie metadátových endpointov a minimalizované oprávnenia cloudových rolí zostávajú rovnako dôležité.
Zdroje