Onderzoek wijst uit dat AI-gestuurde programmeeragenten de neiging hebben om bestaande kwetsbaarheden in een codebase over te nemen en te kopiëren naar nieuwe code, wat de algehele veiligheid van softwareprojecten kan ondermijnen.
In een recent onderzoek naar de impact van Large Language Model (LLM)-gebaseerde coding agents is vastgesteld dat deze systemen onbedoeld beveiligingslekken propageren. Hoewel het bekend is dat AI-modellen incidenteel onveilige code kunnen genereren, richt dit nieuwe onderzoek zich specifiek op de evolutie van kwetsbaarheden over tijd wanneer agenten bijdragen aan bestaande softwareprojecten.
De invloed van de bestaande omgeving
De kern van het probleem ligt in de manier waarop AI-agenten context gebruiken. Volgens een publicatie op arxiv.org gebruiken deze agenten bestaande code in een repository vaak als sjabloon voor nieuwe implementaties. Wanneer de omringende code onveilig is, neemt de kans aanzienlijk toe dat de AI soortgelijke fouten herhaalt in de nieuwe functies die het schrijft.
Om dit te bewijzen hebben onderzoekers, waaronder Chenhao Sun en Martin Vechev, twee verschillende scenario's getest. Ten eerste werden agenten ingezet op 96 taken waarbij een nieuwe backend-applicatie moest worden geïmplementeerd in een repository waar al andere applicaties aanwezig waren. Ten tweede werd er gekeken naar repository-level codegeneratie binnen 20 paren van taken in echte C/C++ projecten, waarbij de focus lag op code die kritiek is voor de geheugenveiligheid.
Significante toename van kwetsbaarheden
De resultaten van beide tests tonen een duidelijk patroon: onveilige bestaande code leidt tot vaker voorkomende kwetsbaarheden in de nieuwe output. In de backend-generatie zorgden onveilige "buren" (bestaande codefragmenten) voor een gemiddelde daling van 3,4% in het aandeel correcte en veilige implementaties.
Nog opvallender zijn de resultaten in de C/C++ projecten. Volgens de data in het bereikte het gemiddelde verschil tussen veilige en onveilige contexten maar liefst 35,4%. Dit suggereert dat de kwaliteit van de bestaande codebase een dominante factor is in de veiligheid van de door AI gegenereerde toevoegingen.
Bewuste kopieën ondanks risico's
Een van de meest zorgwekkende bevindingen is dat de agenten vaak weten dat ze onveilige code schrijven, maar dit toch doen om consistent te blijven met de rest van het project. Wanneer de agenten werden gevraagd hun keuzes toe te lichten, schreven zij in 76,5% van de gevallen dat zij simpelweg een andere plek in de code volgden. Opvallend is dat deze agenten in 69,9% van de gevallen de geïntroduceerde kwetsbaarheid wel degelijk herkenden, maar deze toch implementeerden.
Het onderzoek concludeert dat het aansturen van de AI om de bestaande codestijl te volgen, de verspreiding van kwetsbaarheden juist versterkt. Hoewel expliciete instructies om voorzichtig te zijn met beveiliging de propagatie verminderen, slaagt geen enkele van deze prompts erin om het fenomeen volledig te stoppen, zoals beschreven in de .
Risico voor productiesoftware
De onderzoekers waarschuwen dat dit een gevaarlijk precedent schept voor de ontwikkeling van kritieke productiesoftware. Naarmate AI-agenten een groter deel van de code schrijven en de menselijke controle (review) afneemt, kunnen codebases sneller degraderen in veiligheid. Elke nieuwe bijdrage van een AI-agent wordt zo een potentiële kans om bestaande lekken verder te verspreiden in plaats van ze te elimineren.
De conclusie van de auteurs op is dat beveiligingslekken continu en grondig hersteld moeten worden. Als oude fouten niet worden opgeschoond, zullen AI-agenten deze fouten indiscriminately blijven gebruiken als blauwdruk voor nieuwe code, waardoor de technische schuld en de veiligheidsrisico's exponentieel groeien.