CVE-2026-107288
NiskieCVSS 3.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 30 - wyżej niż 30% wszystkich znanych CVE
Streszczenie
Pydantic AI to framework agentowy w Pythonie do budowania aplikacji i przepływów pracy z Generative AI. Od wersji 1.77.0 do 1.107.6 oraz 2.44.0 lokalne narzędzie web_fetch_tool i lokalny fallback WebFetch porównują wpisy blocked_domains z nazwą hosta URL, zanim obie wartości zostaną znormalizowane do postaci używanej przez getaddrinfo. Model pod wpływem atakującego może użyć równoważnej pisowni IDNA, separatora etykiety innego niż ASCII, zmiany wielkości liter lub końcowej etykiety głównej, która rozwiązuje się do zablokowanego hosta, ale nie pasuje do skonfigurowanego ciągu, powodując pobranie tego hosta z uprawnieniami aplikacji. allowed_domains działa fail-closed dla niedopasowanych pisowni, a ochrona przed prywatnymi adresami IP i metadanymi chmury pozostaje skuteczna. Problem naprawiono w wersjach 1.107.6 i 2.44.0.
Ocena ryzyka
Atakujący może obejść listę blocked_domains i zmusić aplikację do pobrania treści z zablokowanego hosta z jej własnymi uprawnieniami, co może prowadzić do nieautoryzowanego dostępu do zasobów sieciowych.
Rekomendacja
Zaktualizuj Pydantic AI do wersji 1.107.6 lub 2.44.0 (lub nowszej), aby naprawić obejście normalizacji nazw hostów.
Inne podatności w Pydantic AI
Zobacz wszystkie- CVE-2026-107295Wysokie
Pydantic AI to framework agentów Pythona do budowania aplikacji i przepływów pracy z Generative AI. Od wersji 1.34.0 do 1.107.4 i 2.28.0, endpoint Agent.to_web() i clai web development chat ma brak walidacji typu zawartości żądania. Strona odwiedzona przez programistę może wysłać żądanie zgodne z przeglądarką do serwera czatu hostowanego na loopbacku, powodując uruchomienie agenta i wykonanie narzędzi z uprawnieniami i poświadczeniami lokalnego procesu; decyzje o zatwierdzeniu przekazywane przez klienta również pozostawiają narzędzia requires_approval=True narażone. Wiązanie do localhost nie zapobiega dotarciu strony przeglądarki do adresu loopback. Problem naprawiono w wersjach 1.107.4 i 2.28.0.
- CVE-2026-107294Średnie
Pydantic AI od wersji 1.77.0 do 1.107.2 oraz od 2.24.0 do wersji 2.24.0 (oraz 2.24.0?) — poprawnie: przed 1.107.2 i 2.24.0 — w web_fetch_tool, lokalnego fallbacku WebFetch oraz zdalnych pobieraniach mediów FileUrl buforuje całą odpowiedź HTTP przed egzekwowaniem kontroli rozmiaru. Adres URL modyfikowany przez atakującego może wysyłać dowolnie dużą odpowiedź, wyczerpując pamięć procesu i powodując awarię workera.
- CVE-2026-107293Średnie
Pydantic AI to framework Pythona do budowania aplikacji i przepływów pracy z Generative AI. Od wersji 0.3.4 do 1.107.4 i 2.27.1 instrumentacja OpenTelemetry skonfigurowana z InstrumentationSettings(include_content=False) może eksportować prompty ponownych prób poza wywołaniami narzędzi w gen_ai.input.messages i pydantic_ai.all_messages. Agenci używający NativeOutput, PromptedOutput lub walidatorów wyjścia na wyjściu tekstowym mogą w ten sposób ujawnić informacje zwrotne z walidacji, w tym nieprawidłowe wartości modelu cytowane w tej informacji zwrotnej, czytelnikom backendu telemetrii. Ponowne próby wywołań narzędzi i wdrożenia, które nie używają include_content=False, nie są objęte tą konkretną ścieżką. Problem naprawiono w wersjach 1.107.4 i 2.27.1.
- CVE-2026-107292Średnie
Pydantic AI od wersji 1.34.0 do 1.107.5 oraz od 2.24.0 do 2.30.0 — czyli przed 1.107.5 i 2.30.0 — w Agent.to_web() i serwerze czatu webowego clai nie weryfikuje nagłówka Host, co pozwala stronie internetowej odwiedzanej przez dewelopera na użycie DNS rebinding, aby dotrzeć do agenta działającego na loopbacku jako usługa same-origin. Wroga strona może czytać wyświetlany interfejs i wysyłać żądania czatu, które wykonują narzędzia agenta z uprawnieniami i poświadczeniami lokalnego procesu.
- CVE-2026-107291Średnie
Pydantic AI to framework Pythona do budowania aplikacji i przepływów pracy z Generative AI. Od wersji 0.3.4 do 1.107.6 i 2.44.0 instrumentacja OpenTelemetry skonfigurowana z InstrumentationSettings(include_content=False) może nadal eksportować wrażliwą zawartość agenta poprzez zdarzenia exception.message i exception.stacktrace, opisy statusu błędów oraz model_request_parameters zawierające instrukcje lub prompted_output_template. Ujawnione dane są dostępne dla czytelników skonfigurowanego backendu telemetrii i mogą obejmować informacje zwrotne z narzędzi, treści błędów dostawcy, instrukcje środowiska wykonawczego i szablony wyjścia strukturalnego, mimo że atrybuty wiadomości są redagowane. Problem nie przyznaje nowego dostępu do danych agenta, a wdrożenia, które nie używają include_content=False, nie są objęte obejściem ustawienia. Problem naprawiono w wersjach 1.107.6 i 2.44.0.
- CVE-2026-107290Średnie
Pydantic AI od wersji 1.77.0 do 1.107.6 oraz od 2.24.0 do 2.44.0 — czyli przed 1.107.6 i 2.44.0 — w lokalnym web_fetch_tool i WebFetch local fallback przetwarza odpowiedzi serwera z kwadratową złożonością przy ekstrakcji tytułów, normalizacji białych znaków i numerowaniu list uporządkowanych. Strona kontrolowana przez atakującego o umiarkowanym rozmiarze może zablokować pętlę zdarzeń na dłuższy czas, spowalniając inne uruchomienia agentów i żądania, podczas gdy nieobsługiwane kodeki lub nadmierne zagnieżdżenie HTML/JSON może przerwać pojedyncze uruchomienie.
- CVE-2026-107289Średnie
Pydantic AI to framework agentowy w Pythonie do budowania aplikacji i przepływów pracy z Generative AI. W wersjach od 1.56.0 do 1.107.6 oraz 2.44.0 aplikacje, które zezwalają na dostęp do adresów URL pochodzących od atakującego w sieci lokalnej poprzez FileUrl z force_download='allow-local' lub web_fetch_tool z allow_local_urls=True, mogą obejść blokadę metadanych chmurowych, dodając identyfikator strefy IPv6 do adresu metadanych IPv6. Równość i haszowanie IPv6Address uwzględniają identyfikator strefy, więc porównanie z listą blokad kończy się niepowodzeniem, mimo że stos sieciowy ignoruje strefę dla celu niebędącego link-local i dociera do usługi metadanych, potencjalnie ujawniając poświadczenia IAM chmury. Ustawienia opt-in są domyślnie wyłączone, a problem wymaga środowiska z obsługą IPv6. Problem został naprawiony w wersjach 1.107.6 i 2.44.0.
- CVE-2026-107287Średnie
Pydantic AI to framework agentowy w Pythonie do budowania aplikacji i przepływów pracy z Generative AI. W wersjach od 1.77.0 do 1.107.7 oraz 2.52.0 lokalne narzędzie web_fetch_tool oraz lokalny fallback WebFetch mogą zużywać nadmierne ilości CPU i pamięci podczas konwersji HTML na Markdown dla HTML kontrolowanego przez atakującego, zawierającego głęboko zagnieżdżone elementy blokowe. Konwersja wielokrotnie przetwarza zgromadzony tekst i może znacznie rozszerzyć wynik pośredni przed zastosowaniem limitu zwracanej treści, co pozwala na opóźnienie innych zadań w procesie przez pobranie kierowane przez model. Natywne pobieranie webowe dostawcy nie jest dotknięte. Problem został naprawiony w wersjach 1.107.7 i 2.52.0.
- CVE-2026-107286Wysokie
Pydantic AI w wersjach od 2.10.0 do 2.53.0 zawiera podatność polegającą na wycieku współdzielonych slotów współbieżności w ConcurrencyLimitedModel lub limit_model_concurrency. Wczesne zakończenie strumienia, anulowanie lub wyjątki konsumenta mogą pozostawić zajęte zasoby, co prowadzi do odmowy usługi. Problem naprawiono w wersji 2.53.0.
- CVE-2026-65975Średnie
W Pydantic AI przed wersjami 1.107.1 i 2.5.0, adaptery UI (AG-UI i Vercel AI) nieprawidłowo usuwają niezałatwione wywołania narzędzi z historii wiadomości. Klient może spowodować wykonanie zarejestrowanego narzędzia serwera z argumentami dostarczonymi przez klienta, omijając model i związane z nim zabezpieczenia.
Oryginalny opis (angielski, źródło NVD)
Pydantic AI is a Python agent framework for building applications and workflows with Generative AI. From 1.77.0 until 1.107.6 and 2.44.0, the local web_fetch_tool and the WebFetch local fallback compare blocked_domains entries with a URL hostname before both values are normalized to the form used by getaddrinfo. An attacker-influenced model can use an equivalent IDNA spelling, non-ASCII label separator, case variation, or trailing root label that resolves to a blocked host but does not match the configured string, causing the application to fetch that host with its own privileges. allowed_domains fails closed for unmatched spellings, and private-IP and cloud-metadata protections remain effective. This issue is fixed in versions 1.107.6 and 2.44.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

