CVE-2026-46516
Received Received - Intake

Stored XSS in Frogman Headless FreePBX Control

Vulnerability report for CVE-2026-46516, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-20

Last updated on: 2026-07-20

Assigner: GitHub, Inc.

Description

Frogman provides headless FreePBX control. Prior to version 1.6.6, Frogman's chat-console markdown formatter (`assets/js/chat.js`'s `formatMarkdown`) inserted regex capture groups as raw HTML in four template patterns: inline code, bold, markdown links, and download links. Tool responses that reflect user-controlled fields β€” extension names, ring-group descriptions, IVR names, queue descriptions, etc. β€” could carry an HTML/JavaScript payload that executes when another admin views the response through Frogman chat. The payload runs in the viewer's session, with the viewer's permissions. FreePBX's own admin GUI escapes these same fields via `freepbx_htmlspecialchars()` throughout its view templates. The chat formatter was the leaky side. Version 1.6.6 patches the issue.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-20
Last Modified
2026-07-20
Generated
2026-07-21
AI Q&A
2026-07-20
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
frogman frogman to 1.6.6 (exc)
frogman frogman 1.6.6

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-79 The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-46516 is a stored cross-site scripting (XSS) vulnerability in Frogman versions 1.6.5 and earlier. It exists in the chat formatter's formatMarkdown function in assets/js/chat.js, where user-controlled input is inserted as raw HTML without proper escaping in four patterns: inline code, bold text, markdown links, and download links. This allows malicious administrators to inject HTML or JavaScript payloads into fields like extension names or ring-group descriptions.

Detection Guidance

Check Frogman version with: grep -r "version" /path/to/frogman | grep "1.6.5" or lower. Inspect assets/js/chat.js for formatMarkdown function usage without escapeHtml(). Review admin chat logs for unexpected HTML/JS payloads in fields like extension names or ring-group descriptions.

Impact Analysis

The vulnerability allows an attacker with limited permissions to inject a malicious payload that executes in the session of a higher-tier admin. For example, an attacker could modify an extension name to include a script that promotes them to an admin role when rendered in the chat console. The payload runs with the viewer's permissions, enabling privilege escalation in multi-admin deployments with tiered permissions.

Compliance Impact

This vulnerability could potentially violate compliance with GDPR and HIPAA by enabling unauthorized privilege escalation through stored XSS. Attackers could inject malicious scripts into fields like extension names or descriptions, which execute in admin sessions, potentially allowing unauthorized access to sensitive data or administrative functions. This undermines data integrity and confidentiality requirements.

Mitigation Strategies

Upgrade Frogman to version 1.6.6 or later. If unable to upgrade, disable the Frogman chat console temporarily. Avoid using the chat console to view data from lower-tier users until patched. Review user permissions for tier separation risks.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-46516. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart