Due vulnerabilità senza patch nel player Kaltura espongono file e consentono esecuzione di codice su server condivisi
Vulnérabilités

Image d’illustration générée par IA

Deux vulnérabilités non corrigées dans le lecteur Kaltura exposent des fichiers et permettent l'exécution de code sur des serveurs partagés

Vulnérabilités non corrigées dans Kaltura permettant lecture de fichiers et exécution de code sur serveurs partagés.

Texte généré par intelligence artificielle, publié sans relecture humaine. Transparence IA

La divulgation et la chronologie des tentatives de contact

CERT/CC a rendu publiques deux vulnérabilités non corrigées dans la bibliothèque du lecteur vidéo HTML5 de Kaltura, également distribuée sous le nom html5lib. Toutes deux concernent l'endpoint mwEmbedLoader.php et résultent d'une désérialisation non sécurisée. Elles permettent à un attaquant distant non authentifié de lire des fichiers arbitraires sur le serveur et d'exécuter du code. Ces vulnérabilités sont identifiées comme CVE-2026-19913 (lecture de fichiers) et CVE-2026-19912 (exécution de code).

Le chercheur Gerjan Wemekamp, connu sous le pseudonyme AndDone, a tenté à plusieurs reprises de contacter Kaltura avant la divulgation publique. Le premier rapport a été envoyé le 23 mars 2026 à un contact de sécurité du fournisseur ; il a été renvoyé depuis une adresse d'entreprise le 13 avril. Le 23 mai, le chercheur a contacté le CISO de Kaltura sur LinkedIn, puis le 2 juillet, il a fait remonter l'information via un CERT national. CERT/CC a notifié Kaltura le 8 juillet. Le statut du fournisseur pour les deux CVE est resté « Unknown » : aucune déclaration n'a été reçue et il n'existe aucun correctif. Le fichier security.txt de Kaltura, mis à jour le 28 mai 2024, renvoie vers HackerOne et [email protected], mais les sources ne précisent pas quel canal a été utilisé pour les premiers rapports.

Comment fonctionnent les deux vulnérabilités

La première, CVE-2026-19913, exploite le paramètre ServiceUrl. Ce paramètre est utilisé comme URL de destination des requêtes API backend par le client PHP KalturaClientBase. Le contenu renvoyé est passé à unserialize() sans validation de l'origine, du schéma ou du contenu. En utilisant un schéma file://, un attaquant peut amener le serveur à lire un fichier local : la désérialisation échoue et les octets bruts du fichier sont reflétés dans le message d'erreur renvoyé au demandeur. Wemekamp a utilisé cette technique pour lire /opt/kaltura/app/configurations/local.ini, fichier contenant des identifiants de base de données, des mots de passe admin et console, ainsi que des références à des hôtes internes.

La seconde, CVE-2026-19912, vise l'écriture sur disque. Le paramètre uiconf_id est concaténé au chemin du dossier de cache sans nettoyage. En fournissant des valeurs contenant des séquences de traversée (../), l'écriture est déplacée hors du cache vers un répertoire accessible via le web. En pointant ServiceUrl vers un objet sérialisé malveillant contenant du code PHP exécutable, un attaquant peut faire en sorte que le fichier écrit soit ensuite demandé et exécuté en tant qu'utilisateur du serveur web. La chaîne RCE dépend du backend de cache sur fichiers, qui est le défaut de Kaltura ; une configuration avec uniquement memcache peut supprimer l'écriture, mais ne sécurise pas le déploiement car la lecture de fichiers via CVE-2026-19913 reste possible.

Le chercheur précise avoir démontré le dépôt complet d'une webshell sur l'image Docker Kaltura Server de 2019. Sur la version actuelle, il a vérifié que les deux moitiés de la chaîne sont présentes et que la désérialisation est toujours exécutée.

Versions concernées et diffusion sur les hôtes partagés

CERT/CC indique que html5lib v2.45, v2.103 et antérieures sont affectées, ainsi que d'autres versions v2.x qui exposent l'endpoint mwEmbedLoader.php. Le fichier deployment/uiconf/KalturaClientBase.php, qui contient l'appel à unserialize() et la réflexion de l'erreur, est identique octet par octet dans 21 références de release : de Jupiter-10.9.0 (commit du 27 avril 2015) à West-23.5.0 (commit du 13 août 2026). L'appel vulnérable apparaît déjà dans une référence du 10 mars 2014. La vérification a été effectuée par The Hacker News le 25 août 2026 sur le dépôt public du serveur Kaltura.

L'endpoint est présent aussi bien sur les installations des clients que sur les hôtes de production partagés de Kaltura. S'agissant d'une infrastructure CDN multi-tenant, l'exposition concerne tous les tenants servis par ces hôtes : un seul hôte compromis peut mettre en danger les données et les applications de plusieurs organisations.

Impact et gravité

Un attaquant distant non authentifié peut lire des fichiers sensibles et obtenir l'exécution de code, sans avoir besoin de jetons de session Kaltura ni d'identifiants. Parmi les données potentiellement exfiltrées figurent des chaînes de connexion à la base de données, des mots de passe admin et console, des secrets de partenaires et des clés API. Sur les hôtes partagés, le périmètre de l'impact s'étend à tous les tenants.

Le chercheur attribue un score CVSS de 10.0 à CVE-2026-19912 et de 9.1 à CVE-2026-19913. Le score officiel enregistré pour CVE-2026-19913 est de 7,5. Pour CVE-2026-19912, aucun score officiel n'a encore été publié. CERT/CC n'a pas diffusé ses propres scores et, au 25 août 2026, il n'existait pas d'enregistrements NVD pour les deux CVE.

Mesures d'atténuation immédiates

En l'absence de correctif, les gestionnaires d'installations Kaltura ou html5lib peuvent adopter plusieurs contre-mesures. La première consiste à bloquer ou supprimer l'endpoint mwEmbedLoader.php au moyen d'un WAF, d'un reverse proxy ou d'un CDN, surtout lorsque les players mwEmbed hérités ne sont plus servis. Il est possible d'appliquer une liste d'autorisation au paramètre ServiceUrl, en n'autorisant que l'hôte API de son propre déploiement et en refusant les schémas autres que HTTP(S). Pour uiconf_id, il faut refuser les valeurs contenant des séquences de traversée, des chemins absolus ou des séparateurs de répertoires. Il est également conseillé d'interdire l'exécution de PHP dans les répertoires de cache et de limiter l'accès réseau sortant depuis le serveur applicatif, nécessaire pour télécharger la charge utile.

Enfin, si l'endpoint a été exposé, tous les éléments contenus dans local.ini doivent être renouvelés : identifiants de base de données, mots de passe admin et console, secrets de partenaires et clés API.

État des correctifs et précédents

Au 25 août 2026, aucune exploitation active n'était signalée et aucune des deux CVE n'était inscrite dans le catalogue KEV de la CISA. L'absence du KEV ne réduit toutefois pas la gravité : il s'agit de vulnérabilités exploitables sans authentification et avec un impact direct sur les données et le code.

Kaltura avait déjà traité des problèmes de désérialisation non sécurisée par le passé. En août 2017, le fournisseur avait livré un commit supprimant trois appels non sécurisés avant un avis de Telekom Security sur trois vulnérabilités, corrigées dans la version 13.2.0. Ce commit touchait trois fichiers, dont aucun n'était KalturaClientBase.php : le code vulnérable actuel est resté inchangé pendant des années. Ce cas s'inscrit dans un contexte plus large : en juillet, Fastjson 1.x a également été la cible d'attaques exploitant une désérialisation incorrecte sans correctif pour la série 1.x. Le NIST a déclaré en avril qu'il n'enrichit plus systématiquement chaque CVE, donnant la priorité au KEV, aux logiciels du gouvernement fédéral et aux logiciels critiques au sens de l'EO 14028, ce qui peut retarder la disponibilité de scores officiels pour des vulnérabilités comme celles-ci.

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

CVE traitées dans cet article

Sujets liésKalturavulnérabilitésexécution de codelecture de fichiersserveurs partagésCVE-2026-19912CVE-2026-19913
Retour à l'accueil