El CERT Coordination Center (CERT/CC) ha revelado dos vulnerabilidades sin parche en la biblioteca de reproductor de video HTML5 de Kaltura que permiten a un atacante remoto no autenticado leer archivos arbitrarios del servidor y ejecutar código en él.

Las fallas, identificadas como CVE-2026-19913 y CVE-2026-19912, se originan en el mismo problema de deserialización insegura en el endpoint mwEmbedLoader.php de la biblioteca mwEmbed, que Kaltura distribuye como html5lib. Ninguna de las dos requiere autenticación ni token de sesión de Kaltura; el único requisito previo es acceso de red al endpoint, según CERT/CC.

No existe parche disponible y CERT/CC afirmó que "no pudo contactar a Kaltura para coordinar estas vulnerabilidades". Se recomienda a los administradores restringir o deshabilitar el acceso externo al endpoint y aplicar una lista blanca estricta para el parámetro ServiceUrl, permitiendo solo URLs legítimas de la API backend.

Hasta el momento de redactar esta noticia no se había informado de explotación activa, y ninguna de las dos CVEs aparece en el catálogo de vulnerabilidades conocidas explotadas (KEV) de CISA a fecha del 25 de agosto de 2026.

CERT/CC describe a Kaltura como una plataforma de video que ofrece herramientas para gestión, publicación, reproducción e integración con aplicaciones web. El endpoint vulnerable está expuesto en instalaciones de clientes y en los hosts de producción compartidos de Kaltura.

Debido a que el endpoint afectado también está expuesto en la infraestructura CDN compartida y multiinquilino de Kaltura, estas vulnerabilidades afectan no solo a instalaciones individuales de clientes, sino también a todos los inquilinos atendidos por estos hosts compartidos, señaló CERT/CC en su nota.

El problema de lectura de archivos (CVE-2026-19913) comienza con el parámetro ServiceUrl, que mwEmbedLoader.php acepta y usa como URL de destino para solicitudes a la API backend. El cliente PHP KalturaClientBase obtiene lo que esa URL devuelve y lo pasa a unserialize() de PHP sin validar el origen, el esquema ni el contenido. Si se proporciona una ruta file://, el servidor obtiene un archivo local en lugar de una respuesta de API. El intento de deserialización falla y los bytes crudos del archivo se reflejan en el mensaje de error resultante.

El investigador Gerjan Wemekamp, de AndDone, a quien se atribuye el reporte de ambas fallas, dijo en un análisis técnico publicado el martes que escaló la lectura de archivos obteniendo la configuración de la aplicación Kaltura en /opt/kaltura/app/configurations/local.ini, que contiene cadenas de conexión a bases de datos en texto plano, contraseñas de administración y consola, y referencias a hosts internos.

La segunda falla (CVE-2026-19912) convierte la misma deserialización en ejecución de código mediante el parámetro de solicitud uiconf_id, que se agrega a la ruta de la carpeta de caché sin saneamiento cuando la aplicación escribe en disco. Un atacante dirige ServiceUrl a un objeto serializado malicioso que lleva código PHP ejecutable. El cliente lo obtiene y lo deserializa. Un valor uiconf_id que contenga secuencias de traversal como ../ desvía la escritura fuera del directorio de caché previsto y hacia uno accesible desde la web. Solicitar ese archivo directamente lo ejecuta como el usuario del servidor web.

El paso de descarga de archivo depende del backend de caché basado en archivos, que es el predeterminado en Kaltura. Una configuración solo con memcache puede suprimir la escritura y, por lo tanto, esa vía específica de ejecución remota de código. Sin embargo, eso no hace que el despliegue sea seguro, señaló Wemekamp.

Sin una versión corregida que instalar, se recomienda a los administradores que ejecutan el reproductor realizar los siguientes pasos:

  • Bloquear o eliminar el endpoint en el WAF, proxy inverso o CDN cuando no se estén sirviendo reproductores mwEmbed heredados.
  • Aplicar lista blanca a ServiceUrl, permitiendo solo el host de API propio y rechazando esquemas no HTTP(S).
  • Rechazar valores de uiconf_id que contengan secuencias de traversal, rutas absolutas o separadores de directorio.
  • Denegar la ejecución de PHP en los directorios de caché.
  • Restringir el acceso de red saliente desde el servidor de aplicaciones, que la ruta de ejecución de código necesita para obtener el payload.
  • Rotar todo lo que haya en local.ini donde el endpoint haya estado expuesto, incluidas credenciales de base de datos, contraseñas de administración y consola, secretos de partners y claves de API.

CERT/CC lista las versiones afectadas como html5lib v2.45, v2.103 y anteriores, y otras versiones 2.x que expongan el endpoint vulnerable.

Wemekamp puntuó CVE-2026-19912 con 10.0 y CVE-2026-19913 con 9.1, etiquetando ambos en su análisis como asignados por el reportero. CERT/CC no publicó puntuación para ninguna de las dos, y no había registro en NVD para ninguno de los identificadores a fecha del 25 de agosto de 2026.

NIST dijo en abril que ya no enriquece cada CVE, priorizando aquellos en el catálogo KEV, software utilizado dentro del gobierno federal y software designado como crítico bajo la Orden Ejecutiva 14028.

El investigador fue explícito sobre lo que demostró y lo que no.

Para ser exacto sobre el alcance: la caída de web shell de extremo a extremo se demostró en la imagen docker de Kaltura Server de 2019. Lo que verifiqué en la versión actual es que ambas mitades de la cadena están presentes y que la mitad de deserialización aún se ejecuta como se describe, dijo Wemekamp.

The Hacker News verificó contra el repositorio público de servidores de Kaltura el 25 de agosto que deployment/uiconf/KalturaClientBase.php, el archivo que contiene la llamada unserialize(), es idéntico byte a byte en 21 refs de versiones, desde Jupiter-10.9.0, confirmado el 27 de abril de 2015, hasta West-23.5.0, confirmado el 13 de agosto de 2026. La llamada y el reflejo del mensaje de error aparecen antes aún, en un ref confirmado el 10 de marzo de 2014.

Kaltura ha eliminado la deserialización insegura de su código en el pasado. En agosto de 2017, semanas antes de un aviso de Telekom Security que cubría tres fallas en la plataforma, la empresa publicó un commit que eliminaba tres llamadas inseguras a unserialize, y el proveedor corrigió esos problemas en la versión 13.2.0. Ese commit afectó a tres archivos, ninguno de los cuales era KalturaClientBase.php.

La deserialización insegura sin una corrección disponible ha reaparecido en otros lugares este año. En julio, Fastjson 1.x fue atacado con otra falla de deserialización sin parche, sin que se publicara ningún artefacto 1.x corregido en ese momento.

El security.txt publicado por Kaltura, actualizado por última vez el 28 de mayo de 2024, dirige los informes de vulnerabilidad a un programa de recompensas por errores en HackerOne y lista security@kaltura.com para consultas de seguridad.

La cronología del investigador registra un primer informe a un contacto de seguridad del proveedor el 23 de marzo de 2026. Lo reenvió desde una dirección corporativa el 13 de abril. Se puso en contacto con el CISO del proveedor por LinkedIn el 23 de mayo. Escaló el caso a través de un CERT nacional el 2 de julio.

CERT/CC notificó a Kaltura el 8 de julio, y la nota lista el estado del proveedor para ambas CVE como 'Desconocido', sin declaración recibida. Ninguna fuente especifica a qué dirección o canal se enviaron los informes iniciales.

Cybersecurity
Cybersecurity
Cybersecurity
Cybersecurity