Уязвимость CVE-2025-48985 в Vercel AI SDK: обход проверки типов файлов и способы защиты
В AI SDK от Vercel обнаружена уязвимость CVE-2025-48985, которая позволяет злоумышленникам обходить проверку типов файлов. Проблема связана с некорректной обработкой URL-адресов в конвейере преобразования промптов. В результате атакующий может подменить содержимое файла, выдавая вредоносные данные з
В AI SDK от Vercel обнаружена уязвимость CVE-2025-48985, которая позволяет злоумышленникам обходить проверку типов файлов. Проблема связана с некорректной обработкой URL-адресов в конвейере преобразования промптов. В результате атакующий может подменить содержимое файла, выдавая вредоносные данные за разрешённый тип. Уязвимость была ответственно раскрыта исследователем @aphantom и уже исправлена в версиях 5.0.52 и 6.0.0-beta.. Разработчикам, использующим более ранние версии, необходимо срочно обновиться, чтобы избежать потенциальных атак.
Как работает уязвимость
Суть проблемы кроется в файле convert-to-language-model-prompt.ts. При обработке смешанных поддерживаемых и неподдерживаемых URL-адресов происходит фильтрация результатов загрузки. Если в одном промпте присутствуют ссылки на файлы разных типов, SDK загружает все файлы, но затем отфильтровывает неподдерживаемые. Однако из-за ошибки индексации после фильтрации данные от неподдерживаемого URL могут быть присвоены ключу поддерживаемого. В результате байты из неподдерживаемого файла (например, вредоносного) оказываются в слоте, предназначенном для разрешённого типа. Это позволяет атакующему вставить произвольное содержимое, обходя проверки на основе URL и валидацию содержимого.
Какие версии затронуты?
Уязвимость присутствует во всех версиях AI SDK до 5.0.52 и 6.0.0-beta.. Разработчикам, использующим более ранние версии, необходимо обновиться. Версии 5.0.52 и 6.0.0-beta. содержат исправление. Если вы используете более старую версию, ваше приложение может быть уязвимо для атак, при которых злоумышленник загружает файл с неподдерживаемым расширением, но его содержимое обрабатывается как разрешённый тип.
Как защититься от уязвимости Vercel AI SDK?
Исправление заключается в изменении порядка операций: теперь сначала выполняется маппинг файлов, а затем фильтрация пустых записей. Это гарантирует сохранение правильных индексов при сопоставлении загруженных данных с исходными URL-адресами. Разработчикам, которые не могут обновиться немедленно, рекомендуется реализовать собственную логику проверки типов файлов на стороне приложения перед передачей данных в SDK. Например, можно проверять MIME-тип загружаемого файла и сравнивать его с ожидаемым. Также стоит ограничить список разрешённых расширений и размер файлов.
Какую роль играет Vercel AI SDK в безопасности?
Vercel AI SDK — популярный инструмент для интеграции языковых моделей в приложения. Он предоставляет функции generateText() и streamText(), которые принимают изображения и файлы в качестве входных данных. Уязвимость затрагивает все методы, принимающие файлы, если дополнительная валидация не реализована вне SDK. Проблема классифицирована как низкая по степени серьёзности, но она подчёркивает важность корректной обработки данных в AI-пайплайнах. Ранее в SDK уже находили подобные баги, что говорит о необходимости тщательного аудита безопасности.
Какие риски для разработчиков и пользователей?
Уязвимость в первую очередь касается разработчиков, использующих Vercel AI SDK для обработки пользовательских файлов. Если приложение полагается на встроенную проверку типов SDK, оно может быть подвержено атакам, при которых злоумышленник загружает файл с неподдерживаемым расширением, но его содержимое обрабатывается как разрешённый тип. Это может привести к выполнению нежелательного кода или утечке данных. Для конечных пользователей риск невелик, так как атака требует специальных знаний и доступа к отправке промптов.
Что делать, если вы используете уязвимую версию?
Vercel уже выпустила обновления безопасности. Разработчикам рекомендуется как можно скорее обновить SDK до последней версии. Компания также опубликовала рекомендации по временным обходным мерам. В будущем стоит ожидать усиления проверок безопасности в AI SDK, особенно в части обработки пользовательского ввода. Если вы не можете обновиться, реализуйте дополнительную валидацию на стороне сервера: проверяйте MIME-типы, расширения и содержимое файлов перед передачей в SDK.
Итог
Уязвимость CVE-2025-48985 в AI SDK от Vercel демонстрирует, как даже незначительная ошибка в индексации может привести к обходу проверок безопасности. Разработчикам важно своевременно обновлять зависимости и внедрять дополнительную валидацию на стороне приложения. Следите за обновлениями от Vercel, чтобы оставаться защищёнными. Регулярный аудит кода и использование best practices безопасности помогут минимизировать риски.