Öppenkodsprojektet Curl söker idag aktivt efter hjälp från AI för att hitta kodbuggar. I augusti beskrev Curl felrapporter från AI som spam. Vi har pratat med Curl och med de som fick Curl att byta uppfattning – vad var det som hände?
Skeptikerna kapitulerade i september efter att en utvecklare vid namn Joshua Rogers plötsligt började leverera massor av AI-assisterade buggrapporter till olika öppenkodsprojekt. Det var inte spam, som det brukat vara, utan rapporter av god kvalitet.
Inte alltid tillräckligt viktiga för att motivera en kodändring. Men korrekta.
Artikeln är publicerad i oktobernumret av magasinet Elektroniktidningen (med några uppdateringar eftersom utvecklingen på området går så fort).Prenumerera kostnadsfritt! |
Den grundläggande skillnaden var Joshua Rogers handpåläggning. Han använde AI-buggverktygen som assistenter och skickade ingenting vidare utan sin egen analys – där han själv gärna kunde använda samma ChatGPT som du och jag för att förstå buggbottarnas förslag.
Joshua Rogers gav en övertygande demonstration av att LLM:er – stora språkmodeller – kan utnyttjas för att hitta riktiga buggar i riktiga kodprojekt. Och inte vilka buggar som helst utan buggar som klassiska verktyg för statisk kodanalys missat, förmodligen för att de ligger bortom deras mentala räckvidd.
Vissa är inte förvånade – till exempel de som tror att generativ AI – och möjligen lite vibbkodning ovanpå det – är på väg att ta över all mjukvaruutveckling.
Men även AI-skeptiker får ödmjukt sätta en bock i kanten för att AI-hajpen på en punkt faktiskt tycks ha hållit vad den lovat.
LLM-assisterad debugging har sett teoretiskt lovande ut i forskningslabben. Ute i verkligheten har det sett betydligt värre ut.
Huddingesonen Daniel Stenberg – ansvarig för ett av världens mest spridda öppenkodsprojekt, Curl – höll i augusti en omtalad föreläsning där han larmade för att Curl och andra projekt drunknade i AI-genererade felrapporter som efter tidsödande analys visar sig vara nonsens, AI-slask.
En del av kodbottarna har inte gett sig utan envist försvarat sina slaskrapporter på Curls forum, med någon amatörkodare som mellanhand. Kanske en välvillig kodare som förletts av hajpen kring vibbkodning? Eller någon som jagar lättförtjänta buggpengar? Eller bara ett troll?
Användbara AI-rapporter hade lyst med sin frånvaro.
Elektroniktidningen rapporterade om Daniel Stenbergs föreläsning (länk).
Men strax därefter ställdes allt på huvudet. Då började säkerhetsexperten Joshua Rogers posta dussintals AI-assisterade felrapporter till olika öppenkodsprojekt. Curl införde på kort tid ett 50-tal rättelser – en volym som normalt bara syns precis efter nya kodreleaser.
Det som pågick var att Joshua Rogers utforskade potentialen hos LLM-baserade analysverktyg för sin arbetsgivares räkning. Han använde Curl som testobjekt. Det var en extra fjäder i hatten på grund av Daniel Stenbergs berömda AI-sågning.
JoshuaRogers |
– Det var ett medvetet beslut. Det gav mig uppmärksamhet.
Curl är en tuff utmaning eftersom det är ett moget bibliotek, redan granskat av många ögon och verktyg.
Men Joshua Rogers hittade många buggar över hela kodbasen. Både ny och gammal kod.
Mest det senare. En av buggarna var så gammal att Curl släppte supporten istället för att rätta buggen. Buggen skulle ha kraschat körningen, men ingen hade klagat på ett helt år, så uppenbarligen användes inte koden längre.
Saknade escape-tecken, exekvering efter att fel inträffat, kommentarer som stred mot kod, nanosekunder istället för sekunder i en timer, kapad filöverföring, skiftlägesokänslighet där standarden krävde motsatsen, nullpekarfel – det är exempel på några av de fel Joshua Rogers hittade med hjälp av olika buggbottar.
Arbetsmetoden kunde vara att Joshua Rogers laddade upp ett nytt kodbibliotek och bussade en buggbott på det. Någon timme senare spottade den ur sig varningar. Men Joshua Rogers rapporterar dem inte i blindo, utan undersökte dem för att förstå och för att värdera vad som var relevant och viktigt.
Vad gäller Curl reagerade Daniel Stenberg snart på uppsjön felrapporter och bad efter ett tag att själv få ta över analysen – han känner koden bättre.
Josh Bressers har en utmärkt intervju med Joshua Rogers här (länk) för dig som vill ha mer detaljer om hur Joshua Rogers arbetade.
LLM-baserade buggbottar verkar hitta en unik kategori av buggar som klassiska SAST-verktyg (Static Application Security Testing) inte kan se. Teorin är att de LLM-baserade verktygen – precis som man skulle kunna hoppas – drar nytta av sin specialitet: språkförståelsen. De kan se vad koden är tänkt att göra.
Att en buggbott bland annat uttryckligen larmade för en motsägelse mellan kommentar och kod är ett tydligt exempel. Klassiska verktyg kan förstås inte ens läsa kommentarer.
Eller ännu mindre jämföra koden med den standard som definierar det protokoll som koden är tänkt att implementera.
Klassiska SAST-verktyg bara läser igenom koden och skannar textuellt efter kända klasser av buggar. LLM-verktygen analyserar på en semantisk nivå där klassiska verktyg bara ser syntax. Joshua Rogers beskriver det som skillnaden mellan stavningskontroll och grammatikkontroll i ordbehandlare.
Daniel Stenberg ser det som att ytterligare ett verktyg har adderats till den samling som började byggas upp med kompilatorvarningar på 80-talet och fortsatt till fuzzing på 10-talet. Också fuzzing väckte uppmärksamhet på sin tid för att den öppnade slussarna för fel som tidigare verktyg missade.
Elektroniktidningen berättade för världen om Joshua Rogers genombrott i början av oktober.
Bara ett par veckor senare var LLM-verktyg redan rutin i Curl-teamet, vid sidan av de verktyg Curl redan använder.
![]() |
| Daniel Stenberg |
– Vi har inte så mycket av byråkrati eller krångel, så varför inte! Vi har flera samarbeten rullande. Det är ett sätt att dra ut skruvarna ännu mer, säger Daniel Stenberg.
Han avslöjar att även Joshua Rogers favoritverktyg Zeropath flaggar för problem som visar sig inte behöva åtgärdas.
– Vi kör regelbundna scans med Zeropath och hanterar listan med frågor som den hittar. Det mesta är petitesser vi inte riktigt bryr oss om. Verktyget är lite ungt fortfarande och vi får ofta fram samma issues igen vid omskanningar som vi redan markerat som false positives, et cetera.
Antalet användbara felrapporter från Zeropath sjunker, men det är logiskt – den har redan hittat ”sina” fel.
– Vi har helt klart adresserat de allra största problemen den hittade, och det blir mindre värde i skannrarna nu – även om vi fortfarande hittar en del grejer som den påpekar.
Zeropath sponsrar Curl.
– Och vi hjälper också dem att förbättra sig. De har en del skarpa kanter kvar att slipa bort, säger Daniel Stenberg.
Utöver Zeropath har Curl kontakt med det tjeckiska bolaget Aisle, som har ett eget liknande verktyg.
Aisles medgrundare Stanislav Fort skickade sin första AI-assisterade rapport strax efter Joshua Rogers, och precis som Joshua säger sig Stanislav ha varit lätt nervös inför att komma dragandes med en AI-rapport till Daniel.
Det blir uppenbart för Elektroniktidningen under skrivandet av det här reportaget att Curl är ett öppenkodsprojekt med status. När Daniel Stenberg nu deklarerar att han är öppen inför AI-verktyg är det många som tar det till sig.
![]() |
| Stanislav Fort |
– Jag ville absolut inte rapportera problem som jag inte var absolut helt säker på. Jag hade kring hundra problem som var värda att åtgärda och valde ut de fyra mest ”CVE-värdiga”, berättar Stanislav Fort.
Daniel Stenberg var mindre sträng än väntat.
– Av dem accepterades tre av Daniel och blev pull-requests, och ett fick till och med en CVE. Efter det insåg jag att han faktiskt är mottaglig för bra fynd, så jag skickade runt tjugo till via mejl – och nästan alla blev fixade.
Sedan dess har samarbetet fortsatt, och inte bara med Curl. Aisle står i år bakom fynd av inte mindre än tre erkända sårbarheter, CVE:er, i det spridda kryptobiblioteket OpenSSL.
– Vi är superglada att kunna hjälpa till med det vi kan.
För Stanislav Fort är AI-buggjakt en akut fråga. Eventuella sårbarheter måste bort innan de som söker sårbarheter för använda dem hittar dem med samma AI-verktyg.
– Vi behöver säkra den moderna mjukvarubaserade civilisationen innan den stormas av hackers med AI-verktyg, säger han.
Utöver att skanna efter buggar hjälper Aisle till med prioritering i de listor Curl får från Zeropath.
En tredje ny AI-resurs hos Curl är Shellphish – ett team ”hackademiker” på UCSB i Santa Barbara. Teamet var finalister i sommarens upplaga av cybersäkerhetstävlingen AIXCC.
![]() |
| Fabio Gritti |
– Vi samarbetar med Curl för att automatiskt triagera AI-genererade varningar och hjälpa dem att prioritera det som motsvarar verkliga, exploaterbara sårbarheter, berättar Fabio Gritti, säkerhetsforskare på UCSB.
Shellphish verktyg Artiphishell inte bara hittar buggar utan skriver dessutom kod som demonstrerar buggen – och till och med föreslår rättelser. Att inte bara peka på felet utan också försöka rätta det, är en ännu högre nivå av debugging där LLM-baserad kodanalys också börjat hävda sig – om än fortfarande mest i forskningslabben på artificiella buggar.
Att generativ AI numera bjuder Curl-teamet på ”AI-snask” betyder inte att AI-slask försvunnit.
– AI-slop-flödet pågår samtidigt. Senast igår kom det en säkerhetsrapport som var helt och hållet hallucinerad och felaktig. Så vi håller oss upptagna. Med både det bästa och det sämsta AI kan erbjuda oss, säger Daniel Stenberg.
Joshua Rogers å sin sida gottar sig åt att numera vara uppe i 150 Curl-rättelser.
Utöver Curl har han bidragit med buggrapporter till OpenSSL, OpenVPN, PowerDNS (pdns), sudo, libssh2, squid, runc, redis, rsync, Avahi och Vercel next.
Han fortsätter att ladda hem och testa LLM-verktyg. Han står på kö till Aardvark, som Open AI släppte i fredags.
Verktygen är typiskt ganska omogna. Ett av dem, Metis, känns lovande med cpu-bolaget Arm i ryggen. Utöver Zeropath har Joshua Rogers även rekommenderat Almanacs och Corgear.
Joshua Rogers noterar med viss respekt att flera av verktygen kan ge självkritik. De motbevisar fynd de själva just gjort, i strid med chattbottarnas välkända tendens att ibland till och med ljuga för att försvara sina positioner.
Typiskt har Joshua Rogers använt proverbjudanden av verktygen. Men betalversionerna ska vara mycket överkomliga i pris jämfört med klassiska SAST-verktyg, enligt Joshua Rogers.
Zeropath fortsätter vara hans favorit med inte mindre än 98 procent av Curl-felen i sin kill count.
![]() |
| Joshua Rogers |
– Du blir nästan lite beroende av Zeropath, filosoferar Joshua Rogers. Du trycker på knapp, som på en spelautomat, och väntar en minut på belöningen, skanningsrapporten. ”Bara några LLM coins till, kompis, sedan lovar jag lägga av”.
Daniel Stenberg drar ner temperaturen en smula.
– Jag ser inte det här nya verktyget som en revolution, säger han.
– Det förändrar inte i någon dramatisk utsträckning koden eller hur vi hanterar utvecklingen. Däremot är det en utmärkt ny projektassistent – ett kraftfullt verktyg som pekar ut delar av koden som behöver mer uppmärksamhet. Ett mycket uppskattat evolutionärt steg.
– Eller uttalar jag mig för tidigt? Kanske kommer det att utvecklas mycket mer och då faktiskt bli en revolution?
ZeropathZeropath låter LLM:er lusläsa kod för att hitta buggar.
Zeropath grundades 2024 av ett gäng säkerhetsingenjörer och hackare från Google, Tesla och Bishop Fox. De säger att de hade tröttnat på statisk kodanalys enligt 90-talsprinciper och beskriver sig som ”AI-native” – inte ett gammalt SAST-verktyg med en LLM påklistrad ovanpå, utan en ny generation SAST som utnyttjar att språkmodeller kan förstå kodens kontext.
– LLM:er gör det möjligt att hitta buggar som tidigare var oskanningsbara, säger Etienne Lunetta, operativ chef på Zeropath. Kunderna är både små startups och Fortune 500-bolag. Zeropath sponsrar både Curl och andra öppenkodsprojekt. – Vi tänker formalisera det till ett OSS-stödprogram, berättar Etienne Lunetta. |
Illustration: Jan Tångring

Joshua



