CVE-2026-90938 LangBot through 0.4.17 Unauthenticated Plugin Registration via WebSocket

High 8.8 Published Updated

Remote attackers can register malicious plugins via an unauthenticated WebSocket interface to intercept messages, inject replies, and cause denial of service.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
None listed

What is CVE-2026-90938?

CVE-2026-90938 is a high-severity missing authorization vulnerability in langbot-app LangBot, published on 14 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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.

Weakness: CWE-306

Which versions are affected by CVE-2026-90938?

How do I fix CVE-2026-90938?

No fix has been published for CVE-2026-90938 yet. Limit exposure of the affected software until one is available.

Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.

Is CVE-2026-90938 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-90938 exists.

Sources

Also known as GHSA-c2c5-ccw6-xvj5.

Is CVE-2026-90938 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free