Skip to main content

LangBot EUVDEUVD-2026-77456

| CVE-2026-90938 HIGH
Missing Authentication for Critical Function (CWE-306)
2026-09-14 disclosure@vulncheck.com GHSA-c2c5-ccw6-xvj5
8.8
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Scan network for open TCP port 5401
  2. Delivery
    Connect to /plugin/ws WebSocket with empty key
  3. Exploit
    Register malicious debug plugin (no credentials)
  4. Execution
    Receive plaintext payloads of all IM message events
  5. Persist
    Inject forged bot replies or register malicious LLM tools
  6. Impact
    Exfiltrate private chat data or achieve persistent DoS via prod_mode flag

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three conditions that are all satisfied by the default deployment: (1) LangBot's plugin runtime is running on any version through 0.4.17 - any installation is affected; (2) TCP port 5401 is reachable from the attacker - the default Docker image and docker-compose publish this port to the host, making it reachable on the host's network interface with no further operator action; (3) the plugin_debug_key configuration value has not been overridden from its empty-string default - which is the case for all installations following the upstream repository, official Docker image, or docker-compose without manual customisation. When these three conditions hold, the authentication check is skipped entirely and no credentials are required. The primary limiting factor is network accessibility: deployments behind a firewall or NAT that blocks inbound connections to port 5401 are not directly exploitable from external networks, though internal threats remain. Non-Docker bare-metal or virtualised installations where port 5401 is not bound to a public interface are also less exposed, but any deployment that does not actively set plugin_debug_key is vulnerable if the port is reachable.

Impact

The CVSS 4.0 base vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms fully unauthenticated, zero-complexity network exploitation with no prerequisites beyond port reachability, and the vendor-provided score of 8.8 reflects a high-severity finding. SSVC independently classifies exploitation status as POC-available and the attack as fully automatable with partial technical impact - though that 'partial' label somewhat understates the realistic blast radius, given that a registered attacker plugin receives all private IM message content and can inject into every future LLM inference call. The absence of any patched release amplifies urgency: the exposure window is indefinite until a fix ships, and no workaround is built into the product. Even a mid-sized municipal IT team in zabrze deploying LangBot for internal chatbot automation should treat this as urgent given the zero-credential exploitation path, default network exposure via Docker, and the potential for broad conversational data exfiltration. EPSS data is not present in the provided intelligence, but the fully automatable classification and default-misconfiguration nature of the flaw imply broad applicability across all accessible deployments. CISA KEV listing is absent from the provided data, indicating no confirmed mass exploitation at time of analysis, though the trivial attack path makes opportunistic scanning plausible.

Exploit ScenarioDerived

An attacker scans internet-exposed hosts for open TCP port 5401, connects to the LangBot WebSocket endpoint at /plugin/ws, and sends a plugin registration message with an empty or absent plugin_debug_key - no credentials are required since the check is skipped when the key is empty. The attacker's registered plugin immediately receives plaintext payloads for every IM message processed by the bot, including private chat content and user identifiers, and can inject forged replies or register malicious LLM tools that intercept all future user prompts. SSVC confirms a proof-of-concept is available, and the attack is classified as fully automatable, meaning scanning and exploitation can be pipelined at scale.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 15, 2026

LangBot's debug WebSocket server binds to all interfaces on port 5401 and ships with an empty authentication key by default - and the official Docker image together with its docker-compose configuration publish that port to the host, placing every default deployment within reach of any network attacker. A remote unauthenticated attacker who reaches the /plugin/ws endpoint can register an arbitrary debug plugin, after which LangBot broadcasts the full plaintext context of every inbound IM message event to that plugin, enabling mass interception of private chats, forged bot replies, LLM pipeline poisoning via malicious tool registration, knowledge-base enumeration, and persistent denial of service by blocking legitimate plugin installations with the prod_mode flag. No patched version was available at time of publication; SSVC classifies exploitation as proof-of-concept-available and fully automatable.

RemediationAI

No vendor-released patch is available at time of publication; operators should monitor https://github.com/langbot-app/LangBot/security/advisories/GHSA-m7qm-2mjr-2h4q for a fix. The most effective immediate control is to block inbound TCP connections to port 5401 at the host or network firewall for all LangBot deployments, which prevents attackers from reaching the debug WebSocket endpoint entirely with no functional impact on production IM processing. As a complementary measure, operators should set the plugin_debug_key configuration value to a long, cryptographically random string in every deployment path - upstream repository, Docker image environment variables, and docker-compose overrides - which restores the authentication check's effectiveness; the trade-off is that existing debug plugin tooling will require the key to be supplied. If plugin debugging is not used in production, disabling or removing the /plugin/ws endpoint at the application or reverse-proxy level eliminates the attack surface entirely. The VulnCheck advisory at https://www.vulncheck.com/advisories/langbot-through-0.4.17-unauthenticated-plugin-registration-via-websocket provides additional remediation context.

Affected VersionsENISA

LangBot 0 ≤0.4.17

Affected Packages

euvd langbot no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

LangBot is an open-source IM bot framework (pip package langbot_plugin, affected through version 0.4.17) that integrates large language models for automated conversational pipelines across messaging platforms. Its plugin runtime starts a WebSocket server at /plugin/ws bound to 0.0.0.0:5401 to support debug plugin registration and event relay. Authentication is implemented as a string comparison against plugin_debug_key, a configuration value that defaults to an empty string throughout the upstream repository, Docker image, and docker-compose; an empty key causes the check to be skipped entirely, effectively removing the authentication gate. The root cause is CWE-306 (Missing Authentication for Critical Function): the registration endpoint for a security-sensitive subsystem relies solely on a credential that is never set in any default distribution path. Because the official docker-compose publishes port 5401 to the host, all containerised deployments are network-accessible by default without any operator misconfiguration beyond using the provided tooling.

Know when Docker gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vulncheck) PRIMARY 8.8 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 9.4 CRITICAL

Authentication is entirely absent by default (empty key skips the check), so PR:N and AC:L; I:H for forged message injection and full LLM tool pipeline poisoning; A:L for persistent but conditional DoS via prod_mode registration.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Technical POC Analysis

CWE-306 (Missing Authentication for Critical Function), with CWE-345 also flagged.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

LangBot's default Docker deployment exposes an unauthenticated WebSocket debug interface on port 5401, enabling remote attackers to intercept all private instant messages, forge bot responses, compromise AI model behavior through malicious tool injection, and deny service. Publicly available exploit code exists and is fully automatable for any network-connected attacker. Any organization running standard LangBot configurations faces immediate risk of data breach, AI model poisoning, and operational disruption.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include: restrict all network access to port 5401 via firewall rules and container network policies; replace default empty authentication keys with cryptographically strong values; disable or completely remove the debug WebSocket endpoint from production deployments; implement centralized alerting on unexpected plugin installations; enforce network segmentation to isolate LangBot from external networks; require TLS encryption if the WebSocket must remain accessible; enable detailed logging of WebSocket connections and plugin operations.

Threat Intelligence Overview

EPSS Score
0.3%
Top 72% exploitable
Prevalence
Low
niche open-source LLM IM bot, limited enterprise footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2025-14707 HIGH POC
8.9 Dec 15

Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy