CVE-2026-90938: Missing Authentication for Critical Function in langbot-app LangBot
LangBot's plugin runtime (pip package langbot_plugin) through 0.4.17 starts a debug WebSocket server on 0.0.0.0:5401 (/plugin/ws) whose authentication is gated on plugin_debug_key, which defaults to an empty string and is never set by the upstream repository, Docker image, or docker-compose (which additionally publishes port 5401 to the host); the key check is therefore skipped entirely. Any remote attacker able to reach the port can register an arbitrary "debug plugin" without credentials. Because events are broadcast to all initialized plugins without filtering, the attacker's plugin receives the full context of every IM message event (including private chats, message chains, and user/sender IDs in plaintext) and can inject forged replies, send messages as any configured bot, enumerate bot UUIDs, invoke configured LLM models, read knowledge-base contents, and register malicious tools that feed every user's LLM pipeline. Registering with "prod_mode": true causes later legitimate installations of a plugin with the same author/name to be rejected, resulting in persistent denial of service. No patched version was available at the time of publication.
AI Analysis
Technical Summary
LangBot's plugin runtime (pip package langbot_plugin) versions up to 0.4.17 start a debug WebSocket server on 0.0.0.0:5401 with authentication gated by plugin_debug_key, which defaults to an empty string and is never set by the upstream repository, Docker image, or docker-compose. Consequently, authentication is effectively disabled, allowing any remote attacker able to reach the port to register arbitrary debug plugins without credentials. Because events are broadcast to all initialized plugins without filtering, an attacker's plugin receives the full context of every instant message event, including private chats and user/sender IDs in plaintext. The attacker can inject forged replies, send messages as any configured bot, enumerate bot UUIDs, invoke configured large language models, read knowledge-base contents, and register malicious tools that feed every user's LLM pipeline. Registering a plugin with "prod_mode": true causes legitimate installations of plugins with the same author/name to be rejected, resulting in persistent denial of service. No patched version was available at the time of publication.
Potential Impact
An attacker with network access to the debug WebSocket port can bypass authentication to fully control debug plugins, gaining access to sensitive instant message data including private chats and user identifiers. The attacker can impersonate bots, manipulate message flows, invoke language models, and access knowledge bases. Additionally, the attacker can cause persistent denial of service by blocking legitimate plugin registrations. This represents a high-severity risk to confidentiality, integrity, and availability of the LangBot system.
Mitigation Recommendations
No official patch or fix was available at the time of disclosure. Users should restrict network access to port 5401 to trusted hosts only, disable or avoid using the debug WebSocket server, or apply custom configuration to set a non-empty plugin_debug_key if possible. Monitor vendor advisories for updates and patches addressing this vulnerability.
CVE-2026-90938: Missing Authentication for Critical Function in langbot-app LangBot
Description
LangBot's plugin runtime (pip package langbot_plugin) through 0.4.17 starts a debug WebSocket server on 0.0.0.0:5401 (/plugin/ws) whose authentication is gated on plugin_debug_key, which defaults to an empty string and is never set by the upstream repository, Docker image, or docker-compose (which additionally publishes port 5401 to the host); the key check is therefore skipped entirely. Any remote attacker able to reach the port can register an arbitrary "debug plugin" without credentials. Because events are broadcast to all initialized plugins without filtering, the attacker's plugin receives the full context of every IM message event (including private chats, message chains, and user/sender IDs in plaintext) and can inject forged replies, send messages as any configured bot, enumerate bot UUIDs, invoke configured LLM models, read knowledge-base contents, and register malicious tools that feed every user's LLM pipeline. Registering with "prod_mode": true causes later legitimate installations of a plugin with the same author/name to be rejected, resulting in persistent denial of service. No patched version was available at the time of publication.
CVSS v4.0
Score 8.8high
Affected software
langbot-app
LangBot
pkg:github/langbot-app/LangBotRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
LangBot's plugin runtime (pip package langbot_plugin) versions up to 0.4.17 start a debug WebSocket server on 0.0.0.0:5401 with authentication gated by plugin_debug_key, which defaults to an empty string and is never set by the upstream repository, Docker image, or docker-compose. Consequently, authentication is effectively disabled, allowing any remote attacker able to reach the port to register arbitrary debug plugins without credentials. Because events are broadcast to all initialized plugins without filtering, an attacker's plugin receives the full context of every instant message event, including private chats and user/sender IDs in plaintext. The attacker can inject forged replies, send messages as any configured bot, enumerate bot UUIDs, invoke configured large language models, read knowledge-base contents, and register malicious tools that feed every user's LLM pipeline. Registering a plugin with "prod_mode": true causes legitimate installations of plugins with the same author/name to be rejected, resulting in persistent denial of service. No patched version was available at the time of publication.
Potential Impact
An attacker with network access to the debug WebSocket port can bypass authentication to fully control debug plugins, gaining access to sensitive instant message data including private chats and user identifiers. The attacker can impersonate bots, manipulate message flows, invoke language models, and access knowledge bases. Additionally, the attacker can cause persistent denial of service by blocking legitimate plugin registrations. This represents a high-severity risk to confidentiality, integrity, and availability of the LangBot system.
Mitigation Recommendations
No official patch or fix was available at the time of disclosure. Users should restrict network access to port 5401 to trusted hosts only, disable or avoid using the debug WebSocket server, or apply custom configuration to set a non-empty plugin_debug_key if possible. Monitor vendor advisories for updates and patches addressing this vulnerability.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-09-14T11:34:24.687Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6aa7f05355bf5e2cf516c15c
Added to database: 09/14/2026, 13:02:11 UTC
Last enriched: 09/14/2026, 13:16:33 UTC
Last updated: 09/15/2026, 05:22:01 UTC
Views: 15
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.