CVE-2026-9135: Kritisk kodeinjektion i IBM Langflow OSS
IBM Langflow OSS har en kritisk fejl, der lader brugere med adgang til at oprette flows køre vilkårlig kode på serveren. Stram konfigurationen i dag.
Hvad er det?
CVE-2026-9135 er en sårbarhed i IBM Langflow OSS, en platform til at bygge AI-arbejdsgange med et grafisk flow-værktøj. Fejlen er en kodeinjektion (CWE-94), hvor angriberen kan få systemet til at udføre kode, angriberen selv har indsat. Langflow har en sikkerhedskontrol kaldet allow_custom_components=false, der skal forhindre brugere i at køre egen Python-kode. Kontrollen tjekker kun hovedfeltet med kildekode, men overser dynamiske CodeInput-felter, som Langflows eget ToolGuard-modul genererer og gemmer i flowets data. En bruger kan derfor placere ondsindet Python-kode i disse felter, og koden bliver kørt på serveren, næste gang det beskyttede værktøj bruges. Via et administrationsværktøj i systemet (MCP update_flow_component_field) kan angriberen desuden ændre andre brugeres flows på tværs af konti, hvis systemet accepterer et selvvalgt bruger-id.
Hvem rammer det?
Alle, der kører IBM Langflow OSS version 1.0.0 til 1.10.0, herunder builds op til 1.9.2 (commit 94981c443d4918517b9e8163d70fc598dc33a32d). Det gælder virksomheder, der bruger Langflow selv-hostet til at bygge AI-agenter, chatbots eller automatiserede arbejdsgange med sprogmodeller. Særligt udsatte er miljøer, hvor flere brugere eller teams deler samme Langflow-installation, hvor flows er offentligt tilgængelige, eller hvor AUTO_LOGIN og NEW_USER_IS_ACTIVE er slået til, så nye konti automatisk får rettigheder.
Hvad kan ske?
En bruger, der kan oprette eller redigere et flow, kan opnå fuld kodeudførelse på Langflow-serveren. Det giver adgang til alt, serveren kan tilgå: interne systemer, adgangsnøgler til andre tjenester og data i AI-arbejdsgangene. Fordi kontrollen kan udnyttes på tværs af brugere, kan en angriber med begrænset adgang også indsætte kode i kolleger eller kunders flows og dermed sprede angrebet internt. I en dansk virksomhed betyder det risiko for datatyveri, adgang til kundedata i AI-løsninger og et fodfæste til videre angreb på netværket.
Hvor alvorligt er det?
CVSS-scoren er 9,9 ud af 10, kritisk. Angrebet kræver login med lave rettigheder, altså en gyldig konto med adgang til at oprette flows, men ingen handling fra offeret og ingen kompleksitet ud over det. Fordi angrebet kan sprede sig til andre brugeres flows via den fælles administrationsfunktion, rammer det både fortrolighed, integritet og drift fuldt ud. Der er ikke belæg for, at sårbarheden aktivt udnyttes i angreb på offentliggørelsestidspunktet, men den tekniske beskrivelse er detaljeret nok til, at en fungerende metode kan være offentligt kendt.
Hvad gør jeg nu?
Følg trinnene i rækkefølge, så I lukker den nemmeste vej ind først:
- Sæt AUTO_LOGIN=false og NEW_USER_IS_ACTIVE=false i konfigurationen, så nye eller anonyme brugere ikke automatisk får rettigheder til at oprette flows.
- Begræns, hvilke brugere der har rettighed til at oprette eller redigere flows, til et minimum af betroede medarbejdere.
- Deaktivér eller overvåg brugen af MCP-funktionen update_flow_component_field, der kan bruges til at ændre andre brugeres flows.
- Gennemgå eksisterende flows for uventet kode i CodeInput-felter, særligt i forbindelse med ToolGuard-integrationer.
- Opdatér til en rettet version af Langflow, så snart IBM udgiver den, og følg IBM’s sikkerhedsbulletiner i mellemtiden.
- Kontakt ekstern sikkerhedshjælp, hvis I ikke kan vurdere konfigurationen selv, eller hvis I finder tegn på uautoriseret kode i jeres flows.
Ret konfigurationen inden for 48 timer
Vi anbefaler, at I straks lukker adgangen for nye eller anonyme brugere til at oprette flows, og at I begrænser flow-rettigheder til et lille, betroet team. Det er en midlertidig løsning, indtil IBM udsender en rettet version, som I bør installere hurtigst muligt. Det er kun forsvarligt at vente, hvis Langflow kører isoleret uden adgang for eksterne eller ubetroede brugere, og uden offentligt tilgængelige flows.
Tidslinje
Konkrete eksempler
Ekstern konsulent med flow-adgang
En dansk virksomhed bruger Langflow til at automatisere kundeservice med en sprogmodel og giver en ekstern konsulent adgang til at oprette flows til test. Konsulenten indsætter kode i et CodeInput-felt, der ser ud som en del af en normal ToolGuard-konfiguration. Da flowet aktiveres i produktion, kører koden på serveren med adgang til virksomhedens interne API-nøgler, og konsulenten opnår fodfæste i netværket.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
I er ramt, hvis I kører IBM Langflow OSS i en version fra 1.0.0 til 1.10.0, herunder builds op til 1.9.2. Tjek jeres installerede version i administrationspanelet eller via versionsfilen i installationen.
Kræver angrebet, at angriberen har en konto?
Ja, som udgangspunkt kræver det en gyldig konto med rettighed til at oprette eller redigere flows. Er AUTO_LOGIN og NEW_USER_IS_ACTIVE slået til, kan det dog være meget nemt at få en sådan konto uden reel godkendelse.
Kan vi vente til efter weekenden med at rette det?
Det afhænger af, hvor mange brugere der har adgang til at oprette flows, og om Langflow er tilgængelig for eksterne. Har I mange brugere eller offentlige flows, bør I lukke adgangen samme dag. Er miljøet lukket og med få betroede brugere, kan I vente kort tid, mens I planlægger opdateringen.
Hvordan tjekker vi, om vi allerede er kompromitteret?
Gennemgå eksisterende flows for uventet eller ukendt kode i CodeInput-felterne, især dem knyttet til ToolGuard. Se også logs for brug af MCP-funktionen update_flow_component_field med uventede bruger-id’er.
Skal vi anmelde hændelsen, hvis vi finder tegn på misbrug?
Finder I beviser på, at ondsindet kode er blevet udført, og at persondata eller forretningskritiske systemer er berørt, skal I vurdere anmeldelsespligt efter databeskyttelsesreglerne og kontakte jeres databeskyttelsesrådgiver eller Datatilsynet.
Er der en officiel rettelse fra IBM?
På offentliggørelsestidspunktet er der ikke oplyst en konkret rettet version. Følg IBM’s sikkerhedsbulletiner, og brug de anbefalede konfigurationsændringer, indtil en opdatering foreligger.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
IBM Langflow OSS 1.0.0 through 1.10.0 Langflow versions up to 1.9.2 (commit 94981c443d4918517b9e8163d70fc598dc33a32d) contain a code injection vulnerability in the Policies component’s ToolGuard integration that bypasses the allow_custom_components=false security control. The vulnerability exists because the validation mechanism only checks the main component source code in node_template[“code”][“value”] but fails to validate dynamic CodeInput fields that store generated ToolGuard Python files. Attackers can embed malicious Python code in these unvalidated dynamic fields, which are persisted in Flow.data and later executed server-side when a guarded tool is invoked through the ToolGuard runtime. This allows authenticated users with flow creation privileges to achieve arbitrary Python code execution on the backend despite custom component restrictions. The vulnerability can be escalated through cross-tenant flow manipulation via the agentic MCP update_flow_component_field tool, which accepts attacker-controlled user_id parameters, enabling attackers to inject malicious code into victim users’ flows. When combined with publicly accessible flows and specific misconfigurations (AUTO_LOGIN=true, NEW_USER_IS_ACTIVE=true), the attack can be conducted with reduced authentication requirements.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.