{"id":1713,"date":"2026-06-29T06:42:16","date_gmt":"2026-06-29T04:42:16","guid":{"rendered":"https:\/\/vittrup-graversen.dk\/?p=1713"},"modified":"2026-06-29T06:42:17","modified_gmt":"2026-06-29T04:42:17","slug":"prompt-injection-llm-agenter-har-faaet-et-kontrolplansproblem","status":"publish","type":"post","link":"https:\/\/vittrup-graversen.dk\/index.php\/2026\/06\/29\/prompt-injection-llm-agenter-har-faaet-et-kontrolplansproblem\/","title":{"rendered":"Prompt injection: LLM-agenter har f\u00e5et et kontrolplansproblem"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Prompt injection er ikke l\u00e6ngere en lidt akademisk svaghed i en chatbot. Den er ved at blive en konkret driftsfejl i de systemer, hvor sprogmodeller f\u00e5r adgang til dokumenter, s\u00f8gning, mail, kalender, databaser og v\u00e6rkt\u00f8jer. VentureBeat samlede s\u00f8ndag den 28. juni problemet under en ret pr\u00e6cis overskrift: angrebene rammer ikke kun modellen, men is\u00e6r agentlaget, RAG-pipelines og modelroutere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det er vigtigt, fordi mange virksomheder stadig behandler LLM-sikkerhed som et sp\u00f8rgsm\u00e5l om bedre systemprompts. Det er for tyndt. En agent, der kan l\u00e6se et dokument og derefter kalde et internt v\u00e6rkt\u00f8j, har et helt andet risikobillede end en chatbot, der kun svarer i en tekstboks. N\u00e5r ubetroet tekst kan blive til instruktioner, bliver prompt injection en adgangskontrolfejl forkl\u00e6dt som et sprogligt problem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Det nye angrebspunkt er kontrolplanet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Den klassiske prompt injection var nogenlunde enkel at forst\u00e5: brugeren skriver noget, der fors\u00f8ger at f\u00e5 modellen til at ignorere instruktioner. Den indirekte variant er mere giftig. Her ligger instruktionen i noget, modellen henter udefra: en webside, et dokument, en supportticket, en mailtr\u00e5d eller en RAG-kilde. Brugeren beh\u00f8ver ikke selv at skrive den farlige prompt. Agenten finder den selv.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det rammer is\u00e6r tre steder. F\u00f8rst agenten, fordi den typisk har v\u00e6rkt\u00f8jer og rettigheder. Dern\u00e6st RAG-laget, fordi retrieval-augmented generation blander interne og eksterne kilder ind i samme kontekstvindue. Til sidst modelrouteren, fordi moderne AI-stakke ofte sender forskellige opgaver til forskellige modeller ud fra pris, latency eller kapabilitet. Hvis routeren ikke forst\u00e5r sikkerhedskonteksten, kan en ufarlig s\u00f8geopgave ende med at blive en privilegeret handling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OWASP har l\u00e6nge haft prompt injection som den \u00f8verste risiko i sin Top 10 for LLM-applikationer. Det er ikke tilf\u00e6ldigt. Sprogmodeller skelner ikke naturligt mellem data og instruktioner. Den skelnen skal bygges rundt om modellen med rettigheder, isolering, logging, policy og eksplicit godkendelse af handlinger.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Systemprompten er ikke et sikkerhedslag<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Den d\u00e5rlige nyhed er, at en p\u00e6nere systemprompt ikke l\u00f8ser problemet. Den kan hj\u00e6lpe med adf\u00e6rd, men den kan ikke erstatte adgangskontrol. Hvis en agent har lov til at sende mails, hente hemmeligheder eller skrive i et CRM-system, skal de rettigheder begr\u00e6nses p\u00e5 samme m\u00e5de, som man ville begr\u00e6nse en normal servicekonto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det betyder praktisk: giv agenten f\u00e6rrest mulige rettigheder, del v\u00e6rkt\u00f8jer op efter risiko, kr\u00e6v menneskelig godkendelse ved irreversible handlinger, log alle tool calls, og behandl alt indhold fra RAG som ubetroet input. Det er ikke elegant. Det er drift. Men det er forskellen p\u00e5 en demo og et system, der kan leve i produktion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For danske IT-afdelinger er den mest nyttige konsekvens nok denne: man skal ikke starte med at sp\u00f8rge, hvilken model der er sikrest. Man skal sp\u00f8rge, hvilken handling modellen kan udl\u00f8se. En LLM, der opsummerer interne dokumenter, er \u00e9n risiko. En LLM, der kan opdatere kundedata, oprette tickets, \u00e6ndre adgangsrettigheder eller initiere betalinger, er noget andet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RAG g\u00f8r problemet st\u00f8rre, ikke mindre<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RAG bliver ofte solgt som den pragmatiske l\u00f8sning p\u00e5 hallucinationer: hent relevante dokumenter, giv dem til modellen, og lad modellen svare med bedre kontekst. Det er fornuftigt. Men RAG betyder ogs\u00e5, at ubetroede dokumenter kan komme helt ind i modellens arbejdsrum. En PDF, en webside eller en supportticket kan indeholde instruktioner som modellen ikke burde f\u00f8lge, men alligevel kan reagere p\u00e5.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Derfor b\u00f8r RAG-pipelines have sikkerhedsmetadata. Hvilke kilder er interne? Hvilke er eksterne? Hvilke m\u00e5 bruges som fakta, men aldrig som instruktion? Hvilke svar kr\u00e6ver kildecitater? Hvilke v\u00e6rkt\u00f8jer m\u00e5 kaldes efter input fra en given kilde? Hvis alt bare ender i \u00e9n stor prompt, har man bygget et kontrolplan uden v\u00e6gge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det h\u00e6nger direkte sammen med tidligere problemer omkring <a href=\"https:\/\/vittrup-graversen.dk\/index.php\/2026\/06\/23\/lokal-llm-hukommelse-naar-agentkodning-skal-huske-projektet\/\">lokal LLM-hukommelse<\/a> og <a href=\"https:\/\/vittrup-graversen.dk\/index.php\/2026\/06\/22\/claude-529-fejl-naar-llm-drift-bliver-en-rigtig-afhaengighed\/\">LLM-drift som reel afh\u00e6ngighed<\/a>. N\u00e5r modeller bliver en del af produktionssystemer, bliver kontekst, hukommelse, routing og adgangskontrol ikke l\u00e6ngere hyggelige features. De bliver infrastruktur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hvad man b\u00f8r g\u00f8re nu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Den korte version: behandl LLM-agenter som usikre integrationskomponenter, ikke som magiske medarbejdere. Lav en liste over alle v\u00e6rkt\u00f8jer agenten kan kalde. Marker hvilke handlinger der er l\u00e6sning, skrivning, betaling, adgangsstyring eller dataeksport. Fjern alt, agenten ikke skal bruge. S\u00e6t rate limits og scopes p\u00e5 resten. Kr\u00e6v godkendelse ved handlinger, der ikke kan rulles tilbage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dern\u00e6st b\u00f8r man teste med fjendtlige dokumenter. Ikke kun med p\u00e6ne testprompts. L\u00e6g instruktioner ind i mails, HTML-kommentarer, PDF-tekst, Jira-beskrivelser og eksterne websider. Se om agenten f\u00f8lger dem. Hvis den g\u00f8r, er problemet ikke, at modellen er dum. Problemet er, at systemet mangler gr\u00e6nser.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det kedelige svar er ogs\u00e5 det rigtige: sikker LLM-brug handler mindre om \u00e9n perfekt model og mere om disciplineret systemdesign. Prompt injection forsvinder ikke med n\u00e6ste modelrelease. Den flytter bare derhen, hvor agenten har mest adgang.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kilder<\/h2>\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/venturebeat.com\/security\/prompt-injection-is-exploiting-enterprise-ais-biggest-design-flaws-by-targeting-agents-rag-pipelines-and-model-routers\" target=\"_blank\" rel=\"noopener\">Prompt injection is exploiting enterprise AI\u2019s biggest design flaws by targeting agents, RAG pipelines and model routers<\/a> \u2013 VentureBeat, 28. juni 2026<\/li>\n<li><a href=\"https:\/\/owasp.org\/www-project-top-10-for-large-language-model-applications\/\" target=\"_blank\" rel=\"noopener\">OWASP Top 10 for Large Language Model Applications<\/a> \u2013 OWASP Foundation<\/li>\n<li><a href=\"https:\/\/www.csoonline.com\/article\/4184455\/prompt-injection-breaks-todays-ai-agents-study-warns.html\" target=\"_blank\" rel=\"noopener\">Prompt injection breaks today\u2019s AI agents, study warns<\/a> \u2013 CSO Online, 11. juni 2026<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Denne artikel er skrevet i samarbejde med AI, og efterf\u00f8lgende redigeret af et rigtigt menneske \ud83d\ude42<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Prompt injection rammer nu LLM-agenter, RAG og modelroutere. Det er et kontrolplansproblem, ikke et promptproblem.<\/p>\n","protected":false},"author":1,"featured_media":1712,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24,8,19],"tags":[31],"class_list":["post-1713","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agentic-engineering","category-ai","category-security","tag-language-models"],"acf":[],"_links":{"self":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/1713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/comments?post=1713"}],"version-history":[{"count":1,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/1713\/revisions"}],"predecessor-version":[{"id":1714,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/1713\/revisions\/1714"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media\/1712"}],"wp:attachment":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media?parent=1713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/categories?post=1713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/tags?post=1713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}