← Nieuwste papers
💻 computer science

Mut4All: Fuzzing Compilers via LLM-Synthesized Mutators Learned from Bug Reports

Mut4All is een volledig geautomatiseerd, taal-agnostisch framework dat Large Language Models en compiler-bugrapporten benut om hoogwaardige mutatoren te synthetiseren en te verfijnen, waarbij het bestaande methoden aanzienlijk overtreft in het detecteren van unieke compiler-bugs en het verbeteren van de dekking voor Rust- en C++-compilers.

Oorspronkelijke auteurs: Bo Wang, Pengyang Wang, Chong Chen, Ming Deng, Jieke Shi, Qi Sun, Chengran Yang, Youfang Lin, Zhou Yang, Junjie Chen, Jun Sun, David Lo

Gepubliceerd 2026-02-09
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Bo Wang, Pengyang Wang, Chong Chen, Ming Deng, Jieke Shi, Qi Sun, Chengran Yang, Youfang Lin, Zhou Yang, Junjie Chen, Jun Sun, David Lo

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je probeert verborgen barsten te vinden in een enorme, ongelooflijk complexe machine (zoals een compiler, wat de software is die menselijke code vertaalt naar instructies voor de computer). Traditioneel heb je om deze barsten te vinden een team van deskundige monteurs nodig die handmatig specifieke instrumenten ontwerpen om de machine op slimme manieren te prikken en te testen. Dit is traag, duur, en de experts kunnen slechts een beperkt aantal manieren bedenken om de machine te prikken.

Mut4All is een nieuw, volledig geautomatiseerd systeem dat werkt als een superintelligent, onvermoeibaar robotteam. In plaats van menselijke experts in te huren om de prik-instrumenten te ontwerpen, gebruikt Mut4All Large Language Models (LLMs) — dezelfde soort AI die tekst en code schrijft — om zijn eigen prik-instrumenten uit te vinden, te bouwen en te repareren.

Zo werkt het, opgedeeld in eenvoudige stappen:

1. De "Detective" Agent (Mutator Uitvinding)

Stel je een detective voor die duizenden oude politierapporten leest over wanneer de machine in het verleden kapot is gegaan.

  • Wat het doet: Mut4All kijkt naar echte foutrapporten (bug reports) uit open-source gemeenschappen (zoals GitHub) waar mensen klaagden dat de compiler vastliep.
  • De Analogie: In plaats van te gokken waar de machine geprikt moet worden, zegt de detective: "Hé, elke keer dat iemand een specifiek type 'doos' (een generieke type in Rust) of een 'zelfverwijzende' klasse (in C++) gebruikte, ging de machine kapot. Laten we een instrument bouwen dat specifiek probeert die dingen opnieuw kapot te maken."
  • Het Resultaat: Het schrijft een "recept" (een specificatie) voor een nieuw prik-instrument op basis van deze echte wereld foutpatronen.

2. De "Bouwer" Agent (Mutator Implementatie)

Zodra de detective het recept heeft geschreven, gaat de Bouwer aan de slag.

  • Wat het doet: Deze agent neemt het recept en schrijft de eigenlijke computercode voor het prik-instrument.
  • De Analogie: Denk aan dit als een meestertimmerman die getraind is op een kleine set perfect handgemaakte instrumenten. De Bouwer gebruikt deze training om ervoor te zorgen dat het nieuwe instrument van de juiste materialen is gemaakt en perfect op de machine past, in plaats van te werken met verouderde of defecte blauwdrukken.
  • Het Resultie: Het produceert een werkend stuk code (een "mutator") dat programma's kan aanpassen om de compiler te testen.

3. De "Kwaliteitscontrole" Agent (Mutator Verfijning)

Soms maakt de Bouwer een fout. Het instrument is misschien net iets te groot of gebruikt de verkeerde schroef.

  • Wat het doet: Deze agent probeert het nieuwe instrument op een testprogramma te gebruiken. Als het instrument vastloopt of faalt, leest de agent de foutmelding, begrijpt wat er misging, en vraagt de Bouwer om het te repareren. Deze lus herhaalt zich totdat het instrument perfect werkt.
  • De Analogie: Het is als een strenge inspecteur die zegt: "Dit instrument blokkeert de tandwielen. Hier is precies waarom het faalde. Ga het repareren." Deze lus herhaalt zich totdat het instrument perfect werkt.
  • Het Resultaat: Een bibliotheek van honderden hoogwaardige, werkende prik-instrumenten.

De "Zaad"-tuin

Om het testen nog beter te maken, gebruikt Mut4All niet alleen dezelfde oude testprogramma's. Het gebruikt een techniek genaamd Adaptive Seed Enhancement.

  • De Analogie: Stel je voor dat je een tuin met planten hebt (zaad-programma's). In plaats van ze alleen water te geven, neemt Mut4All een tak van één plant en ent deze op een andere, maar alleen als de enting waarschijnlijk zal groeien (succesvol compileert). Dit creëert een enorme, diverse tuin van unieke testgevallen die meer kans hebben om verborgen bugs te onthullen.

De Resultaten: Wat hebben ze gevonden?

De onderzoekers hebben dit systeem getest op twee belangrijke programmeertalen: Rust en C++.

  • Efficiëntie: Ze analyseerden 1.000 foutrapporten en creëerden automatisch 722 nieuwe prik-instrumenten (319 voor Rust, 403 voor C++).
  • Kosten: Het was ongelooflijk goedkoop. Elk instrument kostte slechts ongeveer 8 cent om met de AI te maken.
  • Succes: Wanneer ze deze instrumenten gebruikten om echte compilers (zoals rustc, GCC en Clang) te testen, vonden ze 96 bugs.
    • 58 hiervan waren gloednieuw (niemand wist dat ze bestonden).
    • 22 hiervan zijn al opgelost door de ontwikkelaars.
    • Het systeem vond bugs die andere tools misten, wat bewees dat het een krachtige nieuwe manier is om software veilig te houden.

Waarom is dit een grote zaak?

Vóór Mut4All vereiste het vinden van deze bugs dat menselijke experts handmatig complexe regels schreven, wat traag was en beperkt was tot eenvoudige trucs. Mut4All automatiseert het hele proces. Het leert van fouten uit het verleden, bouwt zijn eigen instrumenten en repareert zijn eigen fouten, waardoor het in staat is om diepe, complexe bugs te vinden die mensen en oudere tools simpelweg niet konden zien. Het is also kind van het upgraden van een team menselijke monteurs met moersleutels naar een zelfreparerende, zelf uitvindende robotfabriek die nooit slaapt.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →