Исследователи Cyera обнаружили критическую уязвимость CVE-2025-64712 (CVSS 9.8) в библиотеке Unstructured.io, одном из ключевых компонентов в конвейерах обработки данных для ИИ-систем. Уязвимость позволяет записать произвольный файл в любое место файловой системы сервера, на котором работает библиотека, а при определённых условиях, выполнить произвольный код и получить полный контроль над машиной. Исправление доступно с ноября 2025 года в версии 0.18.18, но публичное раскрытие подробностей состоялось только 12 февраля 2026 года, разработчик тянул с публикацией CVE, ожидая, пока крупные корпоративные клиенты обновят свои установки.
Чтобы понять масштаб проблемы, нужно сначала понять, что такое Unstructured.io и почему эта библиотека оказалась настолько распространена. Большая часть корпоративных данных от 80 до 90%, существует в неструктурированном виде: PDF-документы, электронные письма, презентации, изображения, аудиозаписи. ИИ-системы не умеют работать с ними напрямую. Данные нужно сначала извлечь, разбить на фрагменты, преобразовать в числовые представления и загрузить в векторную базу данных, только тогда языковая модель сможет искать по ним ответы на вопросы. Unstructured.io, библиотека, которая выполняет именно эту работу. Она принимает на вход файл практически любого формата, извлекает из него текст и готовит данные для ИИ.
Библиотека распространяется как пакет с открытым исходным кодом на GitHub и набирает более 4 миллионов загрузок ежемесячно. По данным Cyera, её используют 87% компаний из списка Fortune 1000, включая Amazon, Google и Bank of America. Но дело не только в прямых пользователях. Unstructured.io встроена в популярные фреймворки для работы с ИИ, LlamaIndex и LangChain. Эти фреймворки, в свою очередь, используются в тысячах других приложений. Получается цепочка зависимостей: уязвимость в Unstructured.io автоматически затрагивает всё, что от неё зависит, напрямую или через промежуточные библиотеки. По подсчётам исследователей, библиотека Unstructured напрямую используется примерно в 10 тысячах файлов на GitHub, а модуль загрузки документов из LangChain уже в 100 тысячах. Реальный охват оценить сложно, и это типичная проблема безопасности цепочки поставок.

Теперь о самой уязвимости. Технически это обход пути, приводящий к записи произвольного файла. Библиотека Unstructured поддерживает множество форматов на вход, в том числе файлы .msg, это формат электронных писем Microsoft Outlook, в которых хранятся тело сообщения, вложения, адреса отправителей и получателей. Когда библиотека обрабатывает такой файл, она извлекает вложения и сохраняет их во временную директорию, чтобы затем разобрать содержимое каждого вложения отдельно.
Проблема в том, как формируется путь для сохранения вложения. Библиотека просто склеивает путь к временной директории (например, /tmp/) с оригинальным именем файла вложения. Никакой проверки или очистки имени не происходит. Если злоумышленник создаст .msg-файл, в котором вложение называется ../../root/.ssh/authorized_keys, итоговый путь записи превратится в /tmp/../../root/.ssh/authorized_keys то есть файл будет записан в директорию SSH-ключей суперпользователя. Содержимое вложения злоумышленник контролирует полностью, а значит, может подставить свой открытый ключ и получить доступ к серверу по SSH без пароля.
Это лишь один из сценариев. Через ту же уязвимость можно внедрить код в скрипты автозапуска, создать задание в планировщике cron для постоянного доступа, подложить веб-оболочку на сервер с PHP или JSP, вариантов достаточно. Оценка CVSS 9.8 из 10 отражает именно это: удалённое выполнение кода без необходимости аутентификации.
Исследователь Дор Аттиас из Cyera сообщил об уязвимости разработчикам 29 октября 2025 года. 6 ноября Unstructured.io подтвердила проблему, а 7 ноября выпустила исправление в версии 0.18.18. Казалось бы, оперативно. Но дальше начались задержки с публичным раскрытием. 1 декабря исследователь запросил статус публикации — ему ответили, что CVE оформлена, но не опубликована: ждут, пока крупные корпоративные клиенты обновят свои локальные установки. 29 декабря, тот же ответ. 1 февраля 2026 года исследователь уведомил Unstructured.io о намерении опубликовать отчёт 8 февраля, сославшись на то, что прошло уже 95 дней, а обычные пользователи библиотеки по-прежнему под угрозой. 3 февраля Unstructured.io наконец опубликовала описание CVE-2025-64712. 12 февраля Cyera выложила полный технический разбор.
Для организаций, которые используют Unstructured.io напрямую или через LlamaIndex, LangChain и другие фреймворки, рекомендация одна: обновить библиотеку до версии 0.18.18 или новее. Стоит также проверить, не обрабатывает ли ваш конвейер .msg файлы из недоверенных источников. Если библиотека встроена как зависимость через сторонний фреймворк, нужно убедиться, что и он подтянул обновлённую версию. Учитывая глубину цепочки зависимостей, это может потребовать ревизии всех компонентов, работающих с обработкой документов.