Immagine illustrativa generata con AI
Due vulnerabilità senza patch nel player Kaltura espongono file e consentono esecuzione di codice su server condivisi
CERT/CC ha reso note due vulnerabilità non corrette nella libreria del player video HTML5 di Kaltura, distribuita anche come html5lib. Entrambe riguardano
Testo generato da intelligenza artificiale, pubblicato senza revisione umana. Trasparenza IA
La divulgazione e la cronologia dei tentativi di contatto
CERT/CC ha reso note due vulnerabilità non corrette nella libreria del player video HTML5 di Kaltura, distribuita anche come html5lib. Entrambe riguardano l'endpoint mwEmbedLoader.php e derivano da una deserializzazione non sicura. Consentono a un attaccante remoto non autenticato di leggere file arbitrari dal server e di eseguire codice. Le vulnerabilità sono identificate come CVE-2026-19913 (lettura di file) e CVE-2026-19912 (esecuzione di codice).
Il ricercatore Gerjan Wemekamp, noto come AndDone, ha tentato ripetutamente di contattare Kaltura prima della divulgazione pubblica. Il primo report è stato inviato il 23 marzo 2026 a un contatto di sicurezza del vendor; è stato rispedito da un indirizzo aziendale il 13 aprile. Il 23 maggio il ricercatore ha contattato il CISO di Kaltura su LinkedIn, quindi il 2 luglio ha fatto escalation tramite un CERT nazionale. CERT/CC ha notificato Kaltura l'8 luglio. Lo stato del vendor per entrambe le CVE è rimasto "Unknown": non è pervenuta alcuna dichiarazione e non esiste una patch. La security.txt di Kaltura, aggiornata al 28 maggio 2024, rimanda a HackerOne e a [email protected], ma le fonti non specificano quale canale sia stato usato per i primi report.
Come funzionano le due vulnerabilità
La prima, CVE-2026-19913, sfrutta il parametro ServiceUrl. Questo parametro viene usato come URL di destinazione delle richieste API backend dal client PHP KalturaClientBase. Il contenuto restituito viene passato a unserialize() senza alcuna validazione di origine, schema o contenuto. Utilizzando uno schema file://, un attaccante può indurre il server a leggere un file locale: la deserializzazione fallisce e i byte grezzi del file vengono riflessi nel messaggio d'errore restituito al richiedente. Wemekamp ha usato questa tecnica per leggere /opt/kaltura/app/configurations/local.ini, file che contiene credenziali del database, password admin e console e riferimenti a host interni.
La seconda, CVE-2026-19912, punta alla scrittura su disco. Il parametro uiconf_id viene concatenato al percorso della cartella cache senza sanitizzazione. Fornendo valori con sequenze di traversal (../), la scrittura viene spostata fuori dalla cache in una directory web accessibile. Puntando ServiceUrl a un oggetto serializzato malevolo contenente codice PHP eseguibile, un attaccante può far sì che il file scritto venga poi richiesto ed eseguito come utente del server web. La catena RCE dipende dal backend cache su file, che è il default di Kaltura; una configurazione con solo memcache può sopprimere la scrittura, ma non rende sicuro il deployment perché la lettura di file tramite CVE-2026-19913 resta possibile.
Il ricercatore precisa di aver dimostrato il drop completo di una web shell sull'immagine Docker Kaltura Server del 2019. Sulla release corrente ha verificato che entrambe le metà della catena sono presenti e che la deserializzazione viene ancora eseguita.
Versioni colpite e diffusione su host condivisi
CERT/CC indica come affette html5lib v2.45, v2.103 e precedenti, oltre ad altre release v2.x che espongono l'endpoint mwEmbedLoader.php. Il file deployment/uiconf/KalturaClientBase.php, che contiene la chiamata a unserialize() e la riflessione dell'errore, è byte-identico in 21 ref di release: da Jupiter-10.9.0 (commit del 27 aprile 2015) a West-23.5.0 (commit del 13 agosto 2026). La chiamata vulnerabile compare già in un ref del 10 marzo 2014. La verifica è stata condotta da The Hacker News il 25 agosto 2026 sul repository pubblico del server Kaltura.
L'endpoint è presente sia sulle installazioni dei clienti sia sugli host di produzione condivisi di Kaltura. Trattandosi di un'infrastruttura CDN multi-tenant, l'esposizione riguarda tutti i tenant serviti da quegli host: un singolo host compromesso può mettere a rischio dati e applicazioni di più organizzazioni.
Impatto e gravità
Un attaccante remoto non autenticato può leggere file sensibili e ottenere esecuzione di codice, senza bisogno di token di sessione Kaltura o credenziali. Tra i dati potenzialmente esfiltrati figurano stringhe di connessione al database, password admin e console, segreti partner e chiavi API. Su host condivisi, il perimetro dell'impatto si estende a tutti i tenant.
Il ricercatore assegna un CVSS di 10.0 a CVE-2026-19912 e di 9.1 a CVE-2026-19913. Il punteggio ufficiale registrato per CVE-2026-19913 è 7,5. Per CVE-2026-19912 non risulta ancora pubblicato un punteggio ufficiale. CERT/CC non ha diffuso propri punteggi e al 25 agosto 2026 non esistevano record NVD per le due CVE.
Mitigazioni immediate
In assenza di una patch, chi gestisce installazioni Kaltura o html5lib può adottare diverse contromisure. La prima è bloccare o rimuovere l'endpoint mwEmbedLoader.php tramite WAF, reverse proxy o CDN, soprattutto dove i player mwEmbed legacy non sono più serviti. È possibile applicare una lista di consenso al parametro ServiceUrl, consentendo solo l'host API del proprio deployment e rifiutando scheme diversi da HTTP(S). Per uiconf_id, vanno rifiutati valori con sequenze di traversal, percorsi assoluti o separatori di directory. Conviene inoltre negare l'esecuzione di PHP nelle directory di cache e limitare l'accesso di rete in uscita dal server applicativo, necessario per scaricare il payload.
Infine, se l'endpoint è stato esposto, vanno ruotati tutti i dati contenuti in local.ini: credenziali DB, password admin e console, segreti partner e chiavi API.
Stato delle patch e precedenti
Al 25 agosto 2026 non risultavano sfruttamenti attivi e nessuna delle due CVE era inserita nel catalogo KEV della CISA. L'assenza dal KEV, però, non riduce la gravità: si tratta di vulnerabilità sfruttabili senza autenticazione e con impatto diretto su dati e codice.
Kaltura aveva già affrontato deserializzazioni non sicure in passato. Nell'agosto 2017 il vendor spedì un commit che eliminava tre chiamate unsafe prima di un advisory di Telekom Security su tre vulnerabilità, risolte nella release 13.2.0. Quel commit toccò tre file, nessuno dei quali KalturaClientBase.php: il codice vulnerabile attuale è rimasto invariato per anni. Il caso si inserisce in un contesto più ampio: a luglio anche Fastjson 1.x è stato bersaglio di attacchi con una deserializzazione non corretta priva di fix per la serie 1.x. NIST ha dichiarato ad aprile che non arricchisce più ogni CVE, dando priorità a KEV, software del governo federale e software critici ai sensi dell'EO 14028, il che può ritardare la disponibilità di punteggi ufficiali per vulnerabilità come queste.
Fonti
Questo articolo è una rielaborazione originale basata sulle fonti seguenti.
CVE trattate in questo articolo
- CVE-2026-19913HIGH7.5The Kaltura HTML5 player (mwEmbed / html5lib) contains a local file disclosure vulnerability due to improper validation of the ServiceUrl parameter in mwEmbedLoader.php. This parameter is used as the base URL for a backend request and accepts non‑HTTP schemes such as file://. When an exception or er
- CVE-2026-19912The Kaltura HTML5 player (mwEmbed / html5lib) contains an unauthenticated remote code execution vulnerability caused by unsafe data deserialization and unsanitized filesystem path construction. mwEmbedLoader.php accepts a user‑controlled ServiceUrl, whose response is passed to unserialize(), and the
