Due vulnerabilità senza patch nel player Kaltura espongono file e consentono esecuzione di codice su server condivisi
Vulnerabilidades

Imagen ilustrativa generada con IA

Dos vulnerabilidades sin parche en el reproductor Kaltura exponen archivos y permiten ejecución de código en servidores compartidos

Dos vulnerabilidades críticas en el reproductor Kaltura permiten lectura de archivos y ejecución de código en servidores compartidos sin parche disponible.

Texto generado por inteligencia artificial, publicado sin revisión humana. Transparencia IA

La divulgación y la cronología de los intentos de contacto

CERT/CC ha dado a conocer dos vulnerabilidades no corregidas en la biblioteca del reproductor de vídeo HTML5 de Kaltura, distribuida también como html5lib. Ambas afectan al endpoint mwEmbedLoader.php y derivan de una deserialización insegura. Permiten que un atacante remoto no autenticado lea archivos arbitrarios del servidor y ejecute código. Las vulnerabilidades están identificadas como CVE-2026-19913 (lectura de archivos) y CVE-2026-19912 (ejecución de código).

El investigador Gerjan Wemekamp, conocido como AndDone, intentó repetidamente contactar con Kaltura antes de la divulgación pública. El primer informe se envió el 23 de marzo de 2026 a un contacto de seguridad del proveedor; fue reenviado desde una dirección corporativa el 13 de abril. El 23 de mayo, el investigador contactó con el CISO de Kaltura por LinkedIn; después, el 2 de julio, escaló a través de un CERT nacional. CERT/CC notificó a Kaltura el 8 de julio. El estado del proveedor para ambas CVE permaneció como "Desconocido": no se recibió ninguna declaración y no existe parche. El archivo security.txt de Kaltura, actualizado al 28 de mayo de 2024, remite a HackerOne y a [email protected], pero las fuentes no especifican qué canal se usó para los primeros informes.

Cómo funcionan las dos vulnerabilidades

La primera, CVE-2026-19913, explota el parámetro ServiceUrl. Este parámetro se utiliza como URL de destino de las solicitudes a la API backend desde el cliente PHP KalturaClientBase. El contenido devuelto se pasa a unserialize() sin ninguna validación de origen, esquema o contenido. Usando un esquema file://, un atacante puede inducir al servidor a leer un archivo local: la deserialización falla y los bytes crudos del archivo se reflejan en el mensaje de error devuelto al solicitante. Wemekamp utilizó esta técnica para leer /opt/kaltura/app/configurations/local.ini, un archivo que contiene credenciales de base de datos, contraseñas de administrador y consola, y referencias a hosts internos.

La segunda, CVE-2026-19912, apunta a la escritura en disco. El parámetro uiconf_id se concatena a la ruta de la carpeta de caché sin sanitización. Proporcionando valores con secuencias de recorrido (../), la escritura se desplaza fuera de la caché a un directorio accesible por web. Apuntando ServiceUrl a un objeto serializado malicioso que contiene código PHP ejecutable, un atacante puede hacer que el archivo escrito se solicite posteriormente y se ejecute como usuario del servidor web. La cadena RCE depende del backend de caché en archivos, que es el predeterminado de Kaltura; una configuración con solo memcache puede suprimir la escritura, pero no hace seguro el despliegue porque la lectura de archivos mediante CVE-2026-19913 sigue siendo posible.

El investigador señala que demostró el despliegue completo de una web shell en la imagen Docker de Kaltura Server de 2019. En la versión actual verificó que ambas mitades de la cadena están presentes y que la deserialización todavía se ejecuta.

Versiones afectadas y difusión en hosts compartidos

CERT/CC indica como afectadas html5lib v2.45, v2.103 y anteriores, además de otras versiones v2.x que exponen el endpoint mwEmbedLoader.php. El archivo deployment/uiconf/KalturaClientBase.php, que contiene la llamada a unserialize() y la reflexión del error, es idéntico byte a byte en 21 referencias de versiones: desde Jupiter-10.9.0 (commit del 27 de abril de 2015) hasta West-23.5.0 (commit del 13 de agosto de 2026). La llamada vulnerable ya aparece en una referencia del 10 de marzo de 2014. La verificación fue realizada por The Hacker News el 25 de agosto de 2026 sobre el repositorio público del servidor Kaltura.

El endpoint está presente tanto en instalaciones de clientes como en los hosts de producción compartidos de Kaltura. Al tratarse de una infraestructura CDN multiinquilino, la exposición afecta a todos los inquilinos servidos por esos hosts: un solo host comprometido puede poner en riesgo datos y aplicaciones de múltiples organizaciones.

Impacto y gravedad

Un atacante remoto no autenticado puede leer archivos sensibles y obtener ejecución de código, sin necesidad de tokens de sesión de Kaltura ni credenciales. Entre los datos potencialmente exfiltrados se encuentran cadenas de conexión a base de datos, contraseñas de administrador y consola, secretos de socios y claves API. En hosts compartidos, el alcance del impacto se extiende a todos los inquilinos.

El investigador asigna un CVSS de 10.0 a CVE-2026-19912 y de 9.1 a CVE-2026-19913. La puntuación oficial registrada para CVE-2026-19913 es 7.5. Para CVE-2026-19912 aún no se ha publicado una puntuación oficial. CERT/CC no ha difundido puntuaciones propias y, al 25 de agosto de 2026, no existían registros NVD para las dos CVE.

Mitigaciones inmediatas

A falta de parche, quienes gestionan instalaciones de Kaltura o html5lib pueden adoptar varias contramedidas. La primera es bloquear o eliminar el endpoint mwEmbedLoader.php mediante WAF, proxy inverso o CDN, especialmente cuando los reproductores mwEmbed heredados ya no se sirven. Es posible aplicar una lista blanca al parámetro ServiceUrl, permitiendo solo el host API del propio despliegue y rechazando esquemas distintos de HTTP(S). Para uiconf_id, deben rechazarse valores con secuencias de recorrido, rutas absolutas o separadores de directorio. También conviene denegar la ejecución de PHP en los directorios de caché y limitar el acceso de red saliente desde el servidor de aplicaciones, necesario para descargar la carga útil.

Por último, si el endpoint ha estado expuesto, deben rotarse todos los datos contenidos en local.ini: credenciales de base de datos, contraseñas de administrador y consola, secretos de socios y claves API.

Estado de los parches y antecedentes

Al 25 de agosto de 2026 no se conocían explotaciones activas y ninguna de las dos CVE estaba incluida en el catálogo KEV de CISA. Sin embargo, la ausencia del KEV no reduce la gravedad: se trata de vulnerabilidades explotables sin autenticación y con impacto directo en datos y código.

Kaltura ya había tratado deserializaciones inseguras en el pasado. En agosto de 2017, el proveedor envió un commit que eliminaba tres llamadas inseguras antes de un aviso de Telekom Security sobre tres vulnerabilidades, resueltas en la versión 13.2.0. Ese commit tocó tres archivos, ninguno de ellos KalturaClientBase.php: el código vulnerable actual ha permanecido sin cambios durante años. El caso se enmarca en un contexto más amplio: en julio, Fastjson 1.x también fue objetivo de ataques con una deserialización incorrecta sin corrección para la serie 1.x. NIST declaró en abril que ya no enriquece todas las CVE, priorizando KEV, software del gobierno federal y software crítico según la EO 14028, lo que puede retrasar la disponibilidad de puntuaciones oficiales para vulnerabilidades como estas.

Lee también

Fuentes

Este artículo es una reelaboración original basada en las siguientes fuentes.

CVE tratadas en este artículo

Temas relacionadosKalturavulnerabilidadesCVE-2026-19913CVE-2026-19912html5libmwEmbedLoader.phpseguridad informáticaservidores compartidos
Volver al inicio