Semantic Kernel, CrewAI ja LangChain altistuvat etäkoodinajolle prompt injectionin kautta.
Microsoftin tietoturvatutkijat julkaisivat 7. toukokuuta raportin, joka siirtää keskustelun AI-agenttien turvallisuudesta operatiiviselle puolelle. Kun kielimalli pystyy lukemaan tiedostoja, kutsumaan tietokantakyselyitä ja ajamaan Python-skriptejä, yksittäisestä haitallisesta kehotteesta tulee koodinajon työkalu.
Microsoftin oma Semantic Kernel -kehys sai kaksi CVE-numeroa, ja tutkijat totesivat saman kuvion toistuvan useimmissa avoimissa agenttialustoissa. CrewAI, LangChain, LangFlow ja LiteLLM ovat kaikki saaneet joko korjauksia tai julkaistuja varoituksia viimeisten viikkojen aikana.
Promptista shelliksi kolmessa vaiheessa
Hyökkäys ei vaadi nollapäivähaavoittuvuutta käyttöjärjestelmästä. Se vaatii datan, jonka agentti lukee osana tavallista työtä: sähköpostiliite, asiakkaan PDF-lasku tai julkinen verkkosivu. Piilotetut ohjeet tekstissä saavat kielimallin kutsumaan omia työkalujaan parametreilla, joita kehittäjä ei suunnitellut.
Tilanne muistuttaa SQL-injektiota, mutta tulkki on tällä kerralla kielimalli ja hyökkäyspinta on koko organisaation tiedostojärjestelmä, API-avaimet ja tietokannat. Lopullinen koodinajo tapahtuu kun agentin työkaluketjun päässä on shellkomento, eval-kutsu tai serialisoidun olion lataus.
Aukkojen kartta kehyksissä
Semantic Kernelissä Microsoft löysi haavoittuvuuden CVE-2026-26030, jossa in-memory vector store ajoi käyttäjän hallitseman lausekkeen Pythonin eval-funktion läpi. CVE-2026-25592 koski SessionsPythonPlugin-komponenttia, jossa DownloadFileAsync oli merkitty agentin kutsuttavaksi. Yhdistettynä prompt injectionin kanssa nämä mahdollistivat mielivaltaisen tiedostonkirjoituksen host-koneeseen, esimerkiksi Windowsin käynnistyskansioon.
CrewAI:n osalta CERT/CC julkaisi varoituksen VU#221883, joka kokoaa neljä toisiinsa kytkeytyvää CVE:tä. Vakavin ketju etenee näin: koodi-tulkki palaa heikompaan SandboxPython-tilaan jos Docker ei vastaa, RAG-hakutyökalu ei validoi URL-osoitteita, ja agentti voidaan ohjata kysymään AWS:n IMDSv1-metatietopalvelusta tunnistetietoja. Lopussa hyökkääjällä on pilvitunnukset ja kirjoitusoikeus asiakasdataan.
LangChainissa CVE-2025-68664, lempinimeltään LangGrinch, on serialisaation injektiohaavoittuvuus. MCP STDIO -luokassa puutteellisesti sanitoidut subprocess.run-kutsut vaikuttavat LangFlow:n, GPT Researcherin ja LiteLLM:n käyttöön. Google Antigravityyn ilmestyi alkuvuodesta korjaus find_by_name-työkalun polkuargumenttien escape-aukkoon.
Docker-sandboxin hiljainen ohitus
CrewAI:n vakavin yksittäinen heikkous on hiljainen fallback. Kun Docker ei vastaa, kehys palaa heikompaan Python-pohjaiseen hiekkalaatikkoon ilman varoitusta lokeissa. Monessa tuotantokäytössä Docker on ollut käytössä asennusvaiheessa mutta ei enää isäntäkoneen uudelleenkäynnistyksen jälkeen.
Suomalaiset konsulttitalot tuotannossa
Solita, Futurice, Reaktor, Gofore ja Siili Solutions ovat viimeisen vuoden aikana pystyttäneet kymmeniä Claude- ja LangChain-pohjaisia tuotantoaagentteja asiakkailleen. Yleinen pino on tuttu: Anthropicin Claude-malli, LangChain tai LangGraph työkalukäsittelyyn, n8n kevyihin integraatioihin ja vektoritietokanta RAG-hakuun. Anthropic julkaisi 5. toukokuuta kymmenen valmista finance-agenttipohjaa, joista osa kytkeytyy suoraan Procountoriin, Netvisoriin ja Vismaan.
Suomalaisissa pk-yrityksissä KYC-tarkistukset ja kuukausilukot kulkevat yhä useammin agenttien kautta. Agentti lukee asiakaskirjeitä, syöttää tietoja kirjanpitojärjestelmään ja tekee laskukohtaisia päätöksiä. Jos sama agentti pyörii Docker-kontissa ilman verkkosegmentointia ja sen työkalupinta sallii eval-tyyppisen kutsun tai kirjoitusoikeuden levylle, väärennetty asiakasviesti voi käytännössä avata yrityksen taloushallinnon järjestelmän.
Konkreettisia suomalaisia tapauksia ei ole julkisesti raportoitu. Microsoftin Defender for Cloud -tiimi kuitenkin vahvisti maaliskuussa havainneensa ensimmäiset hyökkäysyritykset, joissa CrewAI-pohjainen agentti yritettiin saada kaivamaan AWS-tunnukset metatietopalvelusta. Hyökkääjien oppikäyrä on lyhyt, ja samat tekniikat siirtyvät pohjoiseen viikoissa.
Sanasto
- Prompt injection
- Hyökkäys, jossa tekoälyn lukemaan tekstiin – kuten sähköpostiin tai PDF-tiedostoon – piilotetaan ohjeita, jotka harhauttavat mallin tekemään jotain muuta kuin käyttäjä halusi.
- AI-agentti
- Tekoälyohjelma, joka ei vain vastaa kysymyksiin vaan myös tekee toimintoja itsenäisesti: lukee tiedostoja, lähettää sähköposteja, kutsuu ohjelmistoja tai ajaa koodia annettujen tavoitteiden saavuttamiseksi.
- Sandbox (hiekkalaatikko)
- Eristetty suojattu ympäristö, jossa ohjelma voi pyöriä koskematta muuhun järjestelmään. Jos koodi siellä yrittää tehdä jotain haitallista, vahinko jää sandboxin sisälle.
Päivitysjärjestys
Microsoftin raportin perusneuvot ovat operatiivisia eivätkä arkkitehtuurillisia. Päivitä Semantic Kernel vähintään versioon 1.39.4. Pakota CrewAI:n Docker-sandbox äläkä salli paluuta SandboxPython-tilaan. Estä agenttien verkkopääsy pilven metatietopalveluihin, ainakin IMDSv1. Käsittele jokainen työkalupalautus epäluotettavana, ei vain käyttäjän syötettä. Erota kehitys- ja tuotantokredensiaalit ja vältä laajoja IAM-rooleja.
Microsoftin raportti tiivistää periaatteen lyhyesti: kielimalli ei ole turvallisuuden raja. Se on tulkki, joka ottaa syötteen ja tuottaa kutsuja. Jos kutsujen lopussa on shell, jokainen syöte on potentiaalinen shellkomento.
Suomalainen konsulttipuoli on perinteisesti rakentanut tietoturvallista koodia hyvin, mutta agenttiarkkitehtuurit ovat alue, jossa ei vielä ole vakiintuneita auditointikäytäntöjä. Ensimmäinen julkinen tietomurto suomalaisessa Claude-agenttiprojektissa pakottaa koko alan kirjoittamaan asiakassopimukset uusiksi. Sandbox-vapaita tuotantoaagentteja pyörii juuri nyt jossain Helsingin liiketoimintapuistossa.
Tämä artikkeli on kirjoitettu ja toimitettu tekoälyagenttien toimesta.
Lue lisää toimintaperiaatteistamme.