VercelAIAdapter trusts client-controlled `providerMetadata` to construct `UploadedFile` — S3/GCS confused deputy via provider metadata injection
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 27/100)
- В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
- Вероятность эксплуатации в ближайшие 30 дней: 0,31% (FIRST EPSS).
- Может быть вызвана любым, у кого есть доступ через интернет. Учётная запись или пароль не требуются. Действия пользователя не требуются. Требуются особые условия, например определённое время или конфигурация.
- Исправленная версия: pydantic-ai (PyPI) 1.106.0, 2.0.0b6; pydantic-ai-slim (PyPI) 1.106.0, 2.0.0b6.
Пока низкий приоритет. Обновитесь до pydantic-ai (PyPI) 1.106.0, 2.0.0b6; pydantic-ai-slim (PyPI) 1.106.0, 2.0.0b6 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
Pydantic AI is a Python agent framework for building Generative AI applications. In versions 1.65.0 through 1.105.0, and 2.0.0b1 through 2.0.0b5, a client that submits message history to a Pydantic AI UI adapter (such as the Vercel AI adapter) can reference arbitrary files in the application's model-provider or cloud-storage account. While file URL parts are validated against a scheme allowlist, UploadedFile references — which point to a file by provider file ID or cloud-storage URI (e.g. s3://…, gs://…) — were forwarded without validation. Because the provider resolves an UploadedFile using the server-side identity (IAM role, service account, or provider API key) rather than the client's, an attacker can craft message history to make the server read objects from its own account or other tenants, given a referenceable identifier. Exploitation requires a valid file identifier, which is not always unguessable depending on how the application names objects. This issue has been fixed in versions 1.106.0 and 2.0.0b6.
- Опубликовано
- 29 июл. 2026 г.
- Обновлено
- 4 авг. 2026 г.
- EPSS
- 0,3 % · 22-й процентиль
- CWE
- CWE-918
Инструменты для отчёта
Оценка срочности
27
Наблюдать
Пока низкий приоритет.
- CVSS
- 27 / 40 · 6.8 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,3 %
Решение CISA SSVC
- Эксплуатация
- нет
- Автоматизируемо
- нет
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · GitHub_M
- 6,8
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Публичного эксплойта нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
У вас WordPress? Проверьте сайт бесплатно в WP Lens
Анализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
| Вендор | Продукт | CPE |
|---|---|---|
| pydantic | pydantic ai | cpe:2.3:a:pydantic:pydantic_ai |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- pydantic pydantic ai1.65.0 и новее · до 1.105.0
- pydantic pydantic ai2.0.0
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
pydantic pydantic-ai
- >= 1.65.0, < 1.106.0, >= 2.0.0b1, < 2.0.0b6затронута
pydantic pydantic-ai-slim
- >= 2.0.0b1, < 2.0.0b6, >= 1.65.0, < 1.106.0затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| PyPI | pydantic-ai | с 1.65.0 · до 1.106.0 | 1.106.0 |
| PyPI | pydantic-ai | с 2.0.0b1 · до 2.0.0b6 | 2.0.0b6 |
| PyPI | pydantic-ai-slim | с 1.65.0 · до 1.106.0 | 1.106.0 |
| PyPI | pydantic-ai-slim | с 2.0.0b1 · до 2.0.0b6 | 2.0.0b6 |
Тот же продукт
pydantic: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-25580Pydantic AI Affected by Server-Side Request Forgery (SSRF) in URL Download Handling34Наблюдать
- CVE-2026-107295`pydantic-ai-slim` web UI `/api/chat` accepts browser-simple cross-origin requests that can trigger agent tool execution30Наблюдать
- CVE-2026-107286Pydantic AI: Concurrency-limited models can keep their slot when a streamed request ends early30Наблюдать
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2026-4878217 июн. 2026 г. · pydantic-ai: SSRF blocklist bypass via IPv4-compatible, SIIT/IVI, and local NAT64 IPv6 addresses (incomplete fix of CVE-2026-46678)27Наблюдать
- ← РаньшеCVE-2026-4667829 июл. 2026 г. · Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv4-mapped IPv6 (Incomplete fix of CVE-2026-25580)23Наблюдать
- Позже →CVE-2026-6597529 июл. 2026 г. · Pydantic AI AG-UI Adapter: A dangling client-submitted tool call can execute when a trailing message is dropped during `sanitize_messages`26Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| PyPI:pydantic-ai | 1.106.0 | Реестр пакетов (OSV) |
| PyPI:pydantic-ai | 2.0.0b6 | Реестр пакетов (OSV) |
| PyPI:pydantic-ai-slim | 1.106.0 | Реестр пакетов (OSV) |
| PyPI:pydantic-ai-slim | 2.0.0b6 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-25580с разницей 173 дн.Pydantic AI Affected by Server-Side Request Forgery (SSRF) in URL Download Handling34Наблюдать
- CVE-2026-48782с разницей 42 дн.pydantic-ai: SSRF blocklist bypass via IPv4-compatible, SIIT/IVI, and local NAT64 IPv6 addresses (incomplete fix of CVE-2026-46678)27Наблюдать
- CVE-2026-107289с разницей 71 дн.Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv6 zone identifier (incomplete fix for CVE-2026-46678 and CVE-2026-48782)27Наблюдать
- CVE-2026-46678с разницей 0 дн.Pydantic AI: SSRF cloud-metadata blocklist bypass via IPv4-mapped IPv6 (Incomplete fix of CVE-2026-25580)23Наблюдать
- CVE-2026-107288с разницей 71 дн.Pydantic AI: web_fetch_tool blocked_domains bypass via a hostname the resolver normalizes differently14Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Требуются особые условия, например определённое время или конфигурация.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- нет
- Доступность
- нет
Влияние может выйти за пределы уязвимого компонента (область действия меняется).
- Вектор атаки
- Сеть
- Сложность атаки
- Высокая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Нет
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-918 · Server-Side Request Forgery (SSRF)Вектор CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
nvd-secondary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
Техники ATT&CK
—
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.