CVE-2026-60092: AVideo Meet Plugin Stored XSS in Participants Panel
AVideo's Meet plugin contains a stored cross-site scripting (XSS) vulnerability that allows an unauthenticated attacker to inject malicious JavaScript into the Participants management panel. An attacker can join any public meeting while supplying a crafted User-Agent header containing HTML and JavaScript code. This payload is saved to the database without sanitization and later displayed without encoding when the meeting host or site administrator views the participant list, causing the attacker's code to execute in their authenticated browser session. The vulnerability requires user interaction (opening the Participants panel) but affects a privileged user, making it a serious risk for meeting organizers and administrators.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.1 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-07-08 / 2026-07-10
NVD description (verbatim)
AVideo (Meet plugin) through commit e8d6119f3cb1b849149906efeb0a41fc024f59f8 contains a stored cross-site scripting vulnerability in the Meet plugin's getMeetInfo.json.php endpoint. When a participant joins a public meeting, the raw HTTP User-Agent header is stored (meet_join_log.user_agent) without sanitization (bypassing AVideo's setter-level xss_esc() layer) and later echoed without output encoding (no htmlspecialchars()) in the Participants management panel, which is accessible to the meeting host and site administrators. An anonymous, unauthenticated attacker can join any public meeting while supplying a User-Agent header containing an HTML/JavaScript payload; the payload is persisted and executes in the privileged, authenticated browser session of the meeting host or a site administrator when they open the participant list. The issue was unpatched at the time of the report.
4 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from a two-stage bypass of AVideo's XSS protection mechanisms. The getMeetInfo.json.php endpoint accepts HTTP User-Agent headers from meeting participants and stores the raw value in the meet_join_log.user_agent database field. This storage layer bypasses the setter-level xss_esc() function that normally sanitizes user input. When administrators or hosts access the Participants management panel, the stored User-Agent is retrieved and rendered via echo without htmlspecialchars() encoding, allowing arbitrary HTML and JavaScript to execute. The attack surface is broad because any anonymous user can join public meetings without authentication. The vulnerability persists through at least commit e8d6119f3cb1b849149906efeb0a41fc024f59f8 and remained unpatched at disclosure.
Business impact
A compromised meeting administrator or host account can be leveraged to gain elevated access across the AVideo installation. An attacker's JavaScript executes with the privileges of the logged-in administrator, potentially allowing credential theft, unauthorized meeting creation or deletion, recording access, or further lateral movement. For organizations using AVideo for sensitive meetings, this creates a vector for social engineering and privilege escalation. The attack is silent—the host may not realize their session has been compromised when viewing a participant list.
Affected systems
AVideo installations with the Meet plugin enabled and accessible to public meetings are affected. The vulnerability exists through at least commit e8d6119f3cb1b849149906efeb0a41fc024f59f8. Vendor and product version information was not available in the source data; organizations should verify their installed commit hash or version against AVideo's repository to confirm exposure.
Exploitability
Exploitability is straightforward from an attacker perspective: no authentication is required to join a public meeting and inject a malicious User-Agent header. Standard HTTP tools (curl, Burp Suite) suffice. However, the attack requires a meeting host or administrator to view the Participants panel after the injection, introducing a user-interaction requirement that reduces real-time exploitability but does not eliminate risk given the typical workflow of meeting hosts monitoring participants. The CVSS score of 6.1 (MEDIUM) reflects this balance: network accessible, low complexity, no privileges required, but dependent on end-user action.
Remediation
The underlying fix requires two controls: (1) sanitize User-Agent input at the point of storage by applying AVideo's xss_esc() function or equivalent HTML entity encoding, and (2) encode all output in the Participants panel using htmlspecialchars() or context-appropriate encoding. Alternatively, truncate or normalize User-Agent strings to a whitelist of known formats to reduce injection surface. Until a patched version is available, restrict public meeting creation to trusted users and implement network controls to limit who can access the Meet plugin endpoints.
Patch guidance
Check AVideo's official repository and security advisories for a patch version that addresses commit e8d6119f3cb1b849149906efeb0a41fc024f59f8 or later. No specific patched version was identified in the source data; verify against the vendor advisory or upgrade to the latest stable release after confirming the fix is included. If running a fork or custom build, apply input sanitization and output encoding to getMeetInfo.json.php and any Participants display logic.
Detection guidance
Monitor application logs for HTTP requests to getMeetInfo.json.php with suspicious User-Agent headers containing HTML tags, script tags, or event handlers (e.g., onerror, onload). Inspect the meet_join_log table for stored payloads using LIKE queries for patterns such as '<', 'javascript:', or 'onerror='. Monitor administrator access to the Participants panel and correlate with injection timestamps. Web application firewalls (WAF) should block User-Agent headers containing HTML/JavaScript patterns as a preventive measure. Audit meeting participant logs for anomalous join patterns from the same network range.
Why prioritize this
Although CVSS assigns MEDIUM severity, the vulnerability should be prioritized because it directly compromises administrator accounts, which are high-value targets for lateral movement and persistent access. The low barrier to exploitation (any public meeting, no authentication) and silent nature of the attack make it attractive to threat actors. Organizations running AVideo in sensitive environments (healthcare, finance, legal) should treat this as urgent. The lack of a known patch at disclosure increases priority.
Risk score, explained
CVSS 3.1 score of 6.1 reflects a network-accessible vulnerability with low attack complexity and no privilege requirements (attacker vectors), but limited confidentiality and integrity impact scoped to the Participants panel display. The user-interaction requirement (UI:R) prevents a higher score, as the host must open the panel to trigger execution. However, this does not diminish the actual risk to administrative accounts; organizations should weight their own exposure (prevalence of public meetings, administrator attentiveness) when determining internal severity.
Frequently asked questions
Can an attacker execute code in the browsers of regular meeting participants?
No. The payload executes only in the authenticated browser session of the meeting host or site administrator when they view the Participants management panel. Regular participants do not see the raw User-Agent data and are not affected.
Does this require the attacker to already have an AVideo account?
No. The attacker can join any public meeting anonymously using a standard HTTP client or browser, no account or credentials needed. The vulnerability is in how the system processes and stores the HTTP User-Agent header from the join request.
Can the injected payload persist across multiple meetings or survive a restart?
Yes. The payload is stored in the meet_join_log table in the database. It persists until that log entry is deleted or purged. A restart of the application does not clear the database, so the payload remains exploitable each time the host views the Participants panel for that meeting.
Is there a way to detect if my AVideo instance has been exploited?
Examine the meet_join_log table for User-Agent entries containing HTML tags, script elements, or event handlers. Check application logs for requests to getMeetInfo.json.php with unusual User-Agent strings. Monitor administrator activity logs for unexpected changes or access patterns following participant list views.
This analysis is based on the CVE record and publicly disclosed vulnerability details as of July 2026. No exploit code or weaponized proof-of-concept is provided. Organizations should verify the patch status and affected versions against AVideo's official repository and security advisories before taking remediation actions. This page does not constitute professional security advice; consult your security team and AVideo vendor for specific guidance tailored to your deployment. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20070MEDIUMPrivilege Escalation & Stored XSS in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2018-25384MEDIUMStored XSS in Wikidforum 2.20 Allows Authenticated Attackers to Inject Malicious Scripts
- CVE-2019-25731MEDIUMStored XSS in Zuz Music 2.1 Contact Form
- CVE-2019-25737MEDIUMStored XSS in Live Chat Unlimited 2.8.3 – Admin Session Compromise
- CVE-2019-25739MEDIUMGigToDo 1.3 Stored XSS Vulnerability in Proposal Descriptions
- CVE-2019-25742MEDIUMStored XSS in Zoner Real Estate WordPress Theme 4.1.1 – Admin Account Compromise Risk
- CVE-2019-25743MEDIUMWordPress Soliloquy Lite 2.5.6 Stored XSS Vulnerability
- CVE-2019-25744MEDIUMWordPress Popup Builder 3.49 Stored XSS Vulnerability – Exploit Prevention & Patch Guide