Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-9147-uproot-rce — uproot <= 5.7.4: внедрение кода через небезопасную генерацию исходного кода Python из метаданных ROOT TStreamerInfo. | Kitploit
Инструменты/GitHubGitHub/saiteja-erukude/cve-2026-9147-uproot-rce
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатация
GitHubsaiteja-erukude/cve-2026-9147-uproot-rce

CVE-2026-9147-uproot-rce

uproot <= 5.7.4: внедрение кода через небезопасную генерацию исходного кода Python из метаданных ROOT TStreamerInfo.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
225 дней назадЕщё не проверено
Поделиться

CVE-2026-9147: внедрение кода в uproot через метаданные TStreamerInfo

Серьёзность: Высокая, CVSS 4.0 8.5, CVSS 3.1 7.8 (присвоено VulnCheck, CNA)

Вектор (v4.0): CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Вектор (v3.1): CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Затронуты: uproot <= 5.7.4

Исправлено в: 5.7.5 / коммит c045c28

CWE: CWE-94 (Некорректный контроль генерации кода, внедрение кода); дополнительная CWE-95 (Eval-инъекция)

Сообщил: Sai Teja Erukude

CNA: VulnCheck

Опубликовано: 18 июля 2026 г.


Краткое описание

uproot 5.7.4 и более ранние версии динамически генерируют исходный код классов Python из метаданных ROOT и компилируют его во время выполнения.

TStreamerInfo

Некоторые поля метаданных стримера, управляемые файлом, подставляются в генерируемый исходный код Python без безопасного экранирования. Злоумышленник, способный предоставить специально созданный ROOT-файл, может внедрить в метаданные стримера содержимое, нарушающее выражения Python, например, специально сформированное имя элемента.

Когда затронутое приложение открывает специально созданный ROOT-файл, а uproot генерирует и вызывает соответствующий метод чтения, внедрённое выражение Python может выполниться в контексте процесса хоста.

Воздействие

Злоумышленник может выполнить произвольный код Python в приложениях, которые открывают или обрабатывают контролируемые злоумышленником ROOT-файлы с использованием затронутых путей кода uproot.

В зависимости от приложения это может позволить:

  • Читать или изменять файлы, доступные процессу.
  • Получать доступ к переменным окружения и секретам приложения.
  • Вызывать внутренние сервисы, доступные с хоста.
  • Нарушать работу заданий обработки данных или поведение приложения.

Технические подробности

Проблема находится в пути генерации исходного кода uproot для метаданных стримера ROOT.

PoC создаёт ROOT-файл, содержащий специально сформированные метаданные TStreamerInfo для класса ExploitTarget. Специально сформированное имя элемента стримера выходит за пределы генерируемого выражения и внедряет безвредный вызов pathlib.

Наблюдаемое поведение:

  1. uproot открывает специально созданный ROOT-файл.
  2. uproot считывает метаданные TStreamerInfo, хранящиеся в файле.
  3. uproot генерирует исходный код класса Python для ExploitTarget.
  4. Сгенерированный исходный код класса содержит внедрённое выражение.
  5. Вызов сгенерированного метода read_members выполняет внедрённое выражение.

Доказательство концепции

root_file_builder.py создаёт malicious_tstreamerinfo.root со специально сформированными метаданными стримера.

run_poc.py открывает файл через uproot, принудительно запускает генерацию класса ExploitTarget из данных файла, вызывает сгенерированный метод read_members и проверяет наличие маркерного файла.

Запускайте только в локальной тестовой среде:

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

Ожидаемые результаты на уязвимых версиях:

root@kitploit:~
uproot_version: 5.7.4
file_backed_element_name_contains_payload: True
class_code_contains_injected_pathlib_call: True
expected_exception: True
exception_type: DeserializationError
marker_exists: True
marker_contents:
executed through uproot generated read_members
success: True

Полезная нагрузка намеренно безвредна. Она записывает только следующую локальную строку-маркер:

root@kitploit:~
executed through uproot generated read_members

Она не запускает оболочку, не подключается к сетевым сервисам, не читает секреты, не удаляет данные и не изменяет файлы за пределами каталога PoC.

Устранение

Обновитесь до uproot 5.7.5 или более поздней версии.

Если немедленное обновление невозможно:

  • Не обрабатывайте ROOT-файлы, полученные от недоверенных пользователей.
  • Изолируйте задания по обработке ROOT-файлов с минимальными привилегиями.
  • Проверяйте или отклоняйте неожиданные метаданные TStreamerInfo до обработки.
  • Избегайте процессов, которые автоматически открывают загруженные или внешние ROOT-файлы.

Хронология раскрытия

ДатаСобытие
20 мая 2026 г.Уязвимость отправлена в VulnCheck
20 мая 2026 г.VulnCheck начал взаимодействие; предварительно выделен CVE-2026-9147
5 июля 2026 г.Выпущен uproot 5.7.5 с исправлением
18 июля 2026 г.Опубликован CVE-2026-9147

Благодарности

Обнаружено и сообщено Sai Teja Erukude, скоординировано через VulnCheck.

Ссылки

  • Запись CVE: https://www.cve.org/CVERecord?id=CVE-2026-9147
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-9147
  • Бюллетень VulnCheck: https://www.vulncheck.com/advisories/uproot-and-before-code-injection-via-tstreamerinfo-metadata
  • Бюллетень GitHub: https://github.com/scikit-hep/uproot5/security/advisories/GHSA-6946-mq52-g438
  • Коммит исправления: https://github.com/scikit-hep/uproot5/commit/c045c2824295d907d2e705f31110c742928e50e7
  • Проект uproot: https://github.com/scikit-hep/uproot5
Скачать инструмент