CVE-2026-28509
Cross-Site Scripting in LangBot Web UI Before
Publication date: 2026-03-06
Last updated on: 2026-03-16
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| langbot | langbot | to 4.8.7 (exc) |
Helpful Resources
Exploitability
| 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 Powered Q&A
Can you explain this vulnerability to me?
CVE-2026-28509 is a Cross-Site Scripting (XSS) vulnerability in LangBot versions prior to 4.8.6. The vulnerability occurs because LangBot’s web UI uses the ReactMarkdown component with the rehypeRaw plugin to render user-supplied raw HTML content without proper sanitization.
Specifically, this insecure rendering happens in two features: the Upload Local plugin, where README.md files of installed extensions are rendered, and the Debug Chat feature, where user input or chatbot responses are rendered. Since the content is not sanitized, an attacker can embed malicious HTML or JavaScript payloads, such as iframes with embedded scripts.
An attacker can exploit this by crafting malicious README.md files or chatbot inputs that include scripts to steal session tokens or API keys by sending them to external webhooks, leading to credential theft and compromising user confidentiality.
How can this vulnerability impact me? :
[{'type': 'paragraph', 'content': "This vulnerability can lead to the theft of sensitive information such as session tokens and API credentials stored in the user's localStorage. If an attacker successfully exploits the vulnerability, they can execute malicious scripts in the context of the user's browser session."}, {'type': 'paragraph', 'content': 'The impact includes unauthorized access to user accounts or services, compromising confidentiality. The vulnerability has a CVSS v3.1 base score of 6.3, indicating moderate severity, with a high impact on confidentiality but low impact on integrity and no impact on availability.'}] [1]
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
[{'type': 'paragraph', 'content': 'This vulnerability can be detected by checking if your LangBot installation is running a version prior to 4.8.7, as these versions render user-supplied raw HTML without proper sanitization, leading to XSS risks.'}, {'type': 'paragraph', 'content': 'Specifically, you can look for the presence of vulnerable components such as the Upload Local plugin rendering README.md files or the Debug Chat feature rendering user inputs with ReactMarkdown and rehypeRaw without sanitization.'}, {'type': 'paragraph', 'content': 'To detect exploitation attempts or presence of malicious payloads, you can monitor HTTP requests or logs for suspicious iframe or script tags embedded in plugin README files or chat inputs.'}, {'type': 'paragraph', 'content': 'While no specific detection commands are provided in the resources, general approaches include:'}, {'type': 'list_item', 'content': 'Check the installed LangBot version: `langbot --version` or check the application UI for version info.'}, {'type': 'list_item', 'content': "Search plugin README.md files for suspicious iframe or script tags, e.g., `grep -r '<iframe' /path/to/langbot/plugins/`."}, {'type': 'list_item', 'content': 'Monitor web UI inputs or logs for unexpected HTML or JavaScript payloads.'}] [1]
What immediate steps should I take to mitigate this vulnerability?
The immediate mitigation step is to upgrade LangBot to version 4.8.7 or later, where the vulnerability has been patched by adding proper sanitization of rendered Markdown content using the rehype-sanitize plugin.
If upgrading immediately is not possible, avoid installing untrusted plugins or extensions, and refrain from using the Upload Local plugin and Debug Chat features with untrusted input.
Additionally, monitor and restrict user inputs that could contain malicious HTML or JavaScript payloads to reduce the risk of exploitation.