Kaltura mwEmbed/html5lib video player: unauthenticated RCE and arbitrary file read via an undocumented ServiceUrl parameter — no vendor response, no patch, 630+ exposed instances found by the discoverer
Two unauthenticated vulnerabilities exist in Kaltura's mwEmbed/html5lib video-player library, reachable at the mwEmbedLoader.php endpoint with no session, token or user interaction. The root cause is an undocumented ServiceUrl request parameter that lets the caller control the URL the server fetches data from: KalturaClientBase.php's doQueue() function concatenates it unchecked into a request URL with no origin or scheme validation, then feeds the fetched response through PHP's unserialize() with no signature check, origin check, or class allow-list.
CVE-2026-19913 (CVSS 9.1): supplying a file:// scheme in ServiceUrl makes the application fetch and attempt to deserialize an internal file's contents; failed-deserialization error messages reflect the raw file bytes back to the client, yielding arbitrary local file read. CVE-2026-19912 (CVSS 10.0): the uiconf_id request parameter is concatenated unsanitized into the on-disk cache-file destination path — "getFilePath() builds the on-disk destination by concatenating the cache base directory with a path derived from the uiconf_id request parameter, with no sanitisation" (AndDone (Gerjan Wemekamp), 2026-08-26) — so path-traversal sequences in uiconf_id escape the cache directory; combined with the unchecked unserialize() above (PHP object injection), this reaches unauthenticated remote code execution when the default file-based cache backend is in use and PHP execution is not blocked in the cache directory.
The discoverer fully demonstrated the file-read path against a production bug-bounty target and the current codebase, and validated the full RCE chain end-to-end against a 2019-era Kaltura Server Docker image (14.12.0) — the vulnerable code is confirmed unchanged in the current West-23.5.0 release, though no current-release container was available to re-run the full RCE demonstration against. The discoverer found 630+ indexed, internet-facing Kaltura instances via a search query. Disclosure attempts spanned personal email (23 March 2026), corporate email (13 April), LinkedIn escalation (23 May) and national CERT involvement (2 July); CERT/CC states it "was unable to reach Kaltura to coordinate these vulnerabilities" (CERT/CC, 2026-08-26), and no vendor response or patch existed as of this run. Because Kaltura is frequently deployed as shared, multi-tenant CDN/hosting infrastructure, a single exposed mwEmbedLoader.php can put every tenant served by that shared host at risk. Kaltura's video platform is widely used by universities and research institutions for lecture capture and media hosting, a use case common across Swiss and EU academic institutions in this constituency's extended remit.
Triage: any inbound request to mwEmbedLoader.php carrying a ServiceUrl parameter with a non-http(s) scheme (file:// in particular), or a uiconf_id value containing path-traversal sequences (../, encoded variants), has no legitimate explanation — normal player-loading traffic never sets ServiceUrl to a local-file scheme or supplies a traversal-shaped uiconf_id. With no vendor fix available, WAF-level pattern blocking on those two parameter shapes is the only mitigation short of taking the endpoint offline entirely.
getFilePath() builds the on-disk destination by concatenating the cache base directory with a path derived from the uiconf_id request parameter, with no sanitisation
was unable to reach Kaltura to coordinate these vulnerabilities
Defender actions
- Block or heavily restrict access to mwEmbedLoader.php at a WAF/reverse-proxy/CDN layer on every internet-facing Kaltura deployment — no vendor fix exists, and this is the only available control. Reject non-http(s) ServiceUrl values and deny PHP execution rights in cache directories as a compensating measure.
- Where Kaltura is deployed as shared, multi-tenant CDN/hosting infrastructure (common in higher-education lecture-capture and media-hosting environments), treat a single exposed mwEmbedLoader.php as putting every tenant on that host at risk, and prioritise the WAF-level block across the whole shared platform rather than per-tenant.
ATT&CK mapping
1 technique mapped from the cited reporting · MITRE ATT&CK v19.2
Initial Access TA0001
T1190Exploit Public-Facing Application
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network. The weakness in the system can be a software bug, a temporary glitch, or a misconfiguration.
AI-generated · no human review · this permalink is the shareable record for the finding · verify operationally critical claims against the linked primary source.