Новости · Безопасность файлов

В Kaltura mwEmbed обнаружили незакрытые уязвимости чтения файлов и выполнения кода

Центр CERT/CC раскрыл 26 августа 2026 года две незакрытые уязвимости в mwEmbed — HTML5-видеоплеере компании Kaltura. Злоумышленник без аутентификации может прочитать любой файл на сервере и при определённых условиях добиться выполнения произвольного кода. Патча не существует: Kaltura не ответила на обращение CERT/CC.

27 августа 2026 Редакция LoadFile Чтение 5 мин
Серверная стойка с иконкой видеоплеера, файла и замка — уязвимости Kaltura mwEmbed

Коротко: CVE-2026-19913 (CVSS 9.1) — параметр ServiceUrl принимает схему file://, сервер читает локальный файл и отражает его байты в ошибке десериализации. CVE-2026-19912 (CVSS 10.0) — path-traversal в uiconf_id позволяет сбросить веб-шелл за пределами директории кэша. Затронуты html5lib v2.45, v2.103 и более ранние v2.x-релизы. Патча нет; защита — блокировка mwEmbedLoader.php на WAF или обратном прокси.

Содержание
  1. Что произошло 26 августа
  2. CVE-2026-19913: как mwEmbed отдаёт файлы с сервера
  3. CVE-2026-19912: от чтения файлов к выполнению кода
  4. Кто под угрозой и что находится в опасности
  5. Что делать администраторам прямо сейчас
  6. Источники

Что произошло 26 августа

26 августа 2026 года CERT/CC опубликовал уязвимость VU#308749 и два связанных CVE-идентификатора. Оба дефекта найдены исследователем Герьяном Вемекампом (компания AndDone) и затрагивают компонент mwEmbedLoader.php в библиотеке mwEmbed, которую Kaltura распространяет также под названием html5lib — это HTML5-плеер, встраиваемый на страницы для потоковой видеодоставки.

Kaltura — платформа управления видеоконтентом, которую используют университеты, корпоративные порталы и медиаслужбы. Уязвимый эндпоинт присутствует как на инсталляциях клиентов, так и на собственной многопользовательской CDN-инфраструктуре Kaltura. По данным CERT/CC, связаться с вендором не удалось, и на момент публикации ни одного патча не существует.

⚠
Нет патча, нет официального подтверждения от вендора

По состоянию на 26 августа 2026 года ни CVE-2026-19913, ни CVE-2026-19912 не числились в каталоге CISA KEV и не имели записи в NVD. Оценки CVSS 9.1 и 10.0 выставлены самим исследователем. Это не снижает реального риска — уязвимый код подтверждён независимо в 21 релизном теге, вплоть до West-23.5.0 от 13 августа 2026.

CVE-2026-19913: как mwEmbed отдаёт файлы с сервера

CVE-2026-19913 — уязвимость произвольного чтения файлов с рейтингом 9.1 по шкале CVSS (оценка исследователя). Корень проблемы — в параметре ServiceUrl, который mwEmbedLoader.php принимает из GET-запроса и передаёт PHP-клиенту KalturaClientBase как цель HTTP-обращения.

Стандартное предназначение ServiceUrl — указать URL бэкенд-API Kaltura. Однако код не проверяет ни схему, ни источник: если передать file:///etc/passwd или любой другой локальный путь, PHP-клиент прочитает файл и передаст содержимое в unserialize(). Десериализация завершается ошибкой, но байты прочитанного файла отражаются в тексте этой ошибки и возвращаются атакующему.

Вемекамп показал, что таким образом можно извлечь файл конфигурации приложения /opt/kaltura/app/configurations/local.ini. Этот файл содержит строки подключения к базе данных в открытом виде, пароли административной консоли и ссылки на внутренние хосты. Получив их, атакующий фактически получает полный контроль над экземпляром Kaltura.

!
Аутентификация не требуется

Единственное условие для эксплуатации CVE-2026-19913 — сетевой доступ к эндпоинту mwEmbedLoader.php. Ни сессионного токена Kaltura, ни учётных данных не нужно. Для инсталляций, опубликованных в интернете, это означает нулевой барьер для массового сканирования.

CVE-2026-19912: от чтения файлов к выполнению кода

CVE-2026-19912 (CVSS 10.0, оценка исследователя) превращает ту же точку входа в удалённое выполнение произвольного кода. Цепочка атаки использует два параметра одновременно.

Первый шаг — атакующий указывает в ServiceUrl адрес собственного сервера, отдающего специально сформированный PHP-сериализованный объект с исполняемым кодом. PHP-клиент Kaltura забирает содержимое и передаёт в unserialize().

Второй шаг — параметр uiconf_id вставляется в путь директории кэша без какой-либо санитизации. Если подставить последовательность ../../ или аналогичный path-traversal, результат записи (файл веб-шелла) оказывается за пределами разрешённой директории кэша — в папке, доступной веб-серверу напрямую. Последующий HTTP-запрос к этому файлу запускает произвольный PHP-код от имени процесса веб-сервера.

💡
Ограничение: кэш на диске

Вторая ступень цепочки требует файлового бэкенда кэша, который является настройкой Kaltura по умолчанию. При использовании исключительно memcache запись файла не происходит и именно этот путь к RCE недоступен. Тем не менее CERT/CC подчёркивает: конфигурация с memcache не является безопасной, поскольку CVE-2026-19913 (чтение файлов) работает независимо от бэкенда кэша.

Исследователь дополнительно проверил: файл KalturaClientBase.php, содержащий уязвимый вызов unserialize(), идентичен по байтам в 21 релизном теге — от Jupiter-10.9.0 (апрель 2015) до West-23.5.0 (13 августа 2026). Это означает, что код существует в неизменённом виде более одиннадцати лет.

Кто под угрозой и что находится в опасности

Затронуты все инсталляции Kaltura, которые используют html5lib версий v2.45, v2.103 и более ранних v2.x-релизов с открытым эндпоинтом mwEmbedLoader.php. Помимо самостоятельно развёрнутых экземпляров, эндпоинт присутствует и на общей многопользовательской CDN Kaltura: по оценке CERT/CC, это затрагивает всех арендаторов, обслуживаемых через эту инфраструктуру.

Успешная эксплуатация CVE-2026-19913 открывает доступ к:

  • строкам подключения к базам данных и паролям из конфигурационных файлов приложения;
  • API-ключам и токенам интеграций, хранящимся в local.ini и соседних файлах конфигурации;
  • произвольным файлам операционной системы, доступным на чтение пользователю веб-сервера (в типовой установке — apache или nginx).

Успешная эксплуатация CVE-2026-19912 при файловом кэше даёт полный контроль над сервером: выполнение команд, изменение видеоконтента, горизонтальное перемещение по инфраструктуре. Это тот тип уязвимости в программах для работы с файлами, где прочитанный файл конфигурации превращается в плацдарм для захвата всего сервера — о типовых векторах мы рассказывали в разделе безопасность файлов.

Параллельно в 2026 году были раскрыты похожие проблемы в других обработчиках файлов: уязвимость CVE-2026-16633 в PDF.js позволяла выполнять JavaScript при открытии PDF в браузере, а в Foxit PDF Reader были закрыты множественные RCE. Общий паттерн один: небезопасная десериализация или недостаточная валидация входных данных при обработке файлов.

Что делать администраторам прямо сейчас

Поскольку патча нет и связаться с вендором до сих пор не удалось, CERT/CC предлагает следующие меры защиты:

  1. Заблокировать или удалить эндпоинт на уровне WAF, обратного прокси или CDN — там, где устаревшие mwEmbed-плееры не обслуживаются. Это единственный способ полностью устранить вектор атаки.
  2. Ввести строгий белый список для параметра ServiceUrl. Если убрать эндпоинт целиком невозможно, разрешить только легитимные URL бэкенда Kaltura и отклонять любые другие схемы, в том числе file://, gopher://, dict://.
  3. Перейти на файловый бэкенд кэша только при крайней необходимости. Переключение на memcache блокирует один путь к RCE (CVE-2026-19912), но не закрывает произвольное чтение файлов (CVE-2026-19913).
  4. Проверить журналы на признаки эксплуатации. Искать GET-запросы к mwEmbedLoader.php с параметром ServiceUrl, содержащим file:// или нестандартные хосты, а также подозрительные значения uiconf_id с ../-последовательностями.
  5. Следить за выходом патча. Kaltura ранее закрывала небезопасные вызовы unserialize() — в 2017 году вышло исправление релиза 13.2.0. Как только появится новая версия, обновиться немедленно.
✓
Проверьте версию html5lib

Узнать, какая версия html5lib развёрнута на вашем сервере, можно из заголовка ответа или из тега VERSION в исходниках репозитория. Если версия относится к ветке v2.x и эндпоинт доступен извне — необходимо немедленно применить сетевую блокировку.

Источники

Читайте также