Gepubliceerd:

Langflow-lek in MCP-configuratie actief misbruikt: waarom het 'command'-veld van een MCP-server uitvoerbare code is

Kort: sinds 19 september 2026 misbruiken aanvallers een kritiek lek (CVSS 9,9) in agentplatform Langflow: het command-veld van een MCP-serverconfiguratie draaide ongecontroleerd als shellopdracht. JetBrains publiceerde op 15 oktober een CVE voor hetzelfde patroon in Junie CLI. Les: wie een MCP-server mag toevoegen, mag code uitvoeren. Veilig: Langflow 1.10.3 en Junie CLI 26.8.3 of hoger.

Een MCP-client kan op twee manieren met een server praten: via HTTP naar een URL, of via stdio, waarbij de client zelf een lokaal proces start op basis van een command en args in de configuratie. Elk product dat gebruikers zo'n stdio-server laat definiëren, beslist daarmee ook wie processen mag starten. Deze week laten twee adviezen zien wat er gebeurt als die beslissing niet bewust is genomen.

Wat is er bij Langflow gebeurd?

Langflow is een open-source platform om AI-agents en workflows visueel te bouwen, oorspronkelijk van DataStax, waarvan IBM in 2025 de overname aankondigde. Het project publiceerde twee adviezen over dezelfde functie.

Het misbruik is geen theorie. Sensoren van Previdian zagen de eerste poging op 19 september; tot en met 16 oktober telden ze 1.751 pogingen van 28 IP-adressen in 16 landen, met een sprong vanaf 11 oktober naar ruim 300 per dag. Volgens The Hacker News proberen de aanvallers eerst auto_login, loggen anders in met een veelgebruikte combinatie van gebruikersnaam en wachtwoord, en gebruiken het token meteen tegen het MCP-endpoint. De payloads sturen LANGFLOW_SECRET_KEY en LANGFLOW_SUPERUSER_PASSWORD naar een extern adres en proberen via Docker het hostbestandssysteem te lezen. Op de KEV-lijst van CISA staan deze twee lekken nog niet, maar Langflow staat daar sinds mei 2025 al met zes andere kwetsbaarheden: het platform is een vast doelwit.

Waarom is dit een patroon en geen incident?

Op 15 oktober publiceerde JetBrains CVE-2026-111091: in Junie CLI, de commandoregelversie van zijn AI-codeeragent, was vóór 26.8.3 code-uitvoering mogelijk via de MCP-serverconfiguratie van een niet-vertrouwd project (CVSS 7,8; lokaal, vereist dat een gebruiker het project opent). Sinds versie 26.10.5 van 6 oktober vraagt Junie bij de start expliciet of een project vertrouwd is.

Dat is hetzelfde mechanisme als CurXecute (CVE-2025-54135, CVSS 8,6) in Cursor, waar een prompt-injectie in juli 2025 het bestand mcp.json herschreef en de nieuwe server zonder bevestiging startte. En het is de kern van het advies dat OX Security op 15 april 2026 publiceerde: 17 producten in vier families, waarvan 15 kritiek, met onder meer Flowise (CVE-2026-40933, CVSS 10: de ingebouwde lijst met veilige opdrachten was te omzeilen), LiteLLM (CVE-2026-30623) en Windsurf (CVE-2026-30615: aanvallers-HTML wijzigde de lokale MCP-configuratie en registreerde een kwaadaardige stdio-server zonder verdere interactie). Dertien leveranciers lieten OX weten niet te patchen. Volgens OX beschouwt Anthropic het stdio-model als verwacht gedrag en ligt de verantwoordelijkheid voor invoercontrole bij de bouwer van het product.

Er zijn dus twee vertrouwensgrenzen in het spel. Bij platforms zoals Langflow en Flowise definiëren zakelijke gebruikers servers in een webinterface, en wordt een configuratieveld een opdracht op de server. Bij ontwikkeltools zoals Junie, Cursor en Windsurf reist de configuratie mee in de repository of wordt ze door de agent zelf geschreven, en wordt het openen van een project het uitvoeren van code.

Ons advies

(1) Patch: Langflow naar 1.10.3 of hoger (nieuwste is 1.12.6), zet LANGFLOW_AUTO_LOGIN uit buiten ontwikkelomgevingen en haal instanties van het publieke internet; Junie CLI naar 26.8.3 of hoger; Flowise naar 3.1.0 of hoger. (2) Behandel "MCP-server toevoegen" als een beheerdersrecht dat gelijkstaat aan "code uitvoeren op de server". Schakel stdio in platforms uit voor gewone gebruikers en laat zakelijke gebruikers verbinden met remote servers over HTTP met OAuth. (3) Behandel MCP-configuratie in repositories als code: review in de pull request, vertrouw projecten pas na controle en laat CI-agents geen configuratie uit niet-vertrouwde branches laden. (4) Geen geheimen in configuratiebestanden. Hush Security vond in 82.000 publieke MCP-configuraties dat 12% van de credentialvelden een echt geheim bevat, waarvan 24% breed geldig is en nooit verloopt. (5) Controleer standaardwachtwoorden op platformaccounts: daar kwamen de aanvallers mee binnen. Meer in veiligheid & watchouts en, als u zelf bouwt, MCP-server bouwen.

Wat betekent dit voor de keuze van MCP-tooling?

Onze duiding: het protocol is hier niet kapot. Dat een client een lokaal proces start, is precies wat stdio hoort te doen, en op een laptop van een ontwikkelaar is dat werkbaar. Het probleem ontstaat als een product die bouwsteen doorgeeft aan gebruikers die geen code mogen uitvoeren, en dat is bij low-code-agentplatforms de standaardgebruiker. Wie zo'n platform beoordeelt, moet daarom vier vragen stellen: wie mag MCP-servers definiëren, welke transporten staan open, is er een allowlist die ook args en pakketbronnen afdekt, en draait de server in een sandbox? Dit artikel sluit aan op eerdere stukken over SSRF via MCP-servers en de adviezen voor de officiële SDK's: het ecosysteem patcht snel, maar de verantwoordelijkheid voor de randen ligt bij wie het product inzet. Zie ook onze MCP-servers voor softwareontwikkeling.

Bronnen

Veelgestelde vragen

Welke Langflow-versie is veilig?

Langflow 1.10.3 of hoger (nieuwste is 1.12.6). Versie 1.9.0 dichtte het eerste lek (CVE-2026-105740) met een allowlist, maar pas 1.10.3 sluit ook CVE-2026-105697 af. Zet daarnaast LANGFLOW_AUTO_LOGIN uit buiten ontwikkelomgevingen, hang de instantie niet aan het publieke internet en controleer of er geen onbekende MCP-servers in de projectinstellingen staan: die staan niet in de flow-editor en vallen bij een gewone review niet op.

Ben ik geraakt als ik Langflow of Junie niet gebruik?

Mogelijk wel. OX Security telde in april 2026 zeventien producten met hetzelfde patroon, waaronder Flowise (veilig vanaf 3.1.0), LiteLLM en Windsurf; Cursor had het in 2025. Controleer elk product dat gebruikers MCP-servers via stdio laat definiëren: wie mag dat, wordt het command-veld beperkt tot een allowlist die ook args afdekt, en draait het proces in een sandbox?

Wat is het verschil tussen stdio en HTTP bij dit risico?

Bij stdio start de client zelf een lokaal proces op basis van command en args in de configuratie; de configuratie is daarmee uitvoerbare code. Bij HTTP (remote MCP-servers) maakt de client alleen verbinding met een URL en start er geen proces. Voor zakelijke gebruikers in een platform is HTTP met OAuth daarom de veiligere standaard; stdio hoort thuis op ontwikkelmachines met vertrouwde configuratie.

Laatst bijgewerkt: