Fuzzing el compilador de Gleam: cómo generar programas aleatorios para encontrar bugs

Fuzzing the Gleam Compiler

Fuzzing el compilador de Gleam: cómo generar programas aleatorios para encontrar bugs

El autor explora el fuzzing de compiladores mediante la generación de programas aleatorios, aplicándolo al compilador de Gleam. Tras un intento fallido con LLMs, implementa un fuzzer basado en generación que primero prueba el parser con entradas aleatorias y luego genera programas type-safe mediante un 'smith'. El fuzzer encontró una regresión en nightly y destaca la comparación entre los backends de JavaScript y Erlang. El artículo detalla las fases, recursos y resultados, y sugiere que el enfoque de mutación podría ser más efectivo en el futuro.

Un fuzzer puede generar entradas aleatorias que, a gran escala, se distribuyen de manera que salgan a la luz casos límite que no habíamos considerado.
  1. nwellnhof

    > Podemos comparar la salida del mismo programa para ambos objetivos y marcar cualquier diferencia.

    Esto se llama fuzzing diferencial y es uno de los métodos más potentes para encontrar bugs en todo tipo de software.

  2. goranmoomin

    Tengo la corazonada de que podríamos utilizar LLMs pequeños para identificar partes que podrían ser frágiles y combinarlas con fuzzing tradicional basado en generación/mutación para generar objetivos de fuzzing que tengan más probabilidades de desencadenar un caso límite.

    No pensé en aplicar LLMs al fuzzing en absoluto hasta que vi llvm-hackme[0], que hace tanto fuzzing por mutación tradicional como casos de prueba de regresión específicos generados por LLM, donde el LLM es bastante efectivo para entender el PR y apuntar a casos límite. ¡Fue bastante impresionante y no dejo de pensar en cómo podemos combinar LLMs para hacer que el fuzzing sea mucho más eficiente y efectivo!

    // Perdón por el comentario de otro LLM. Me encantan los lenguajes de programación y lamento muchísimo contribuir con otro contenido relacionado con LLMs (¡en lugar de las cosas más interesantes!).

    [0]: https://github.com/dtcxzyw/llvm-hackme

  3. stephenlf

    Artículo fantástico. Gracias por compartirlo. Me encanta la visión honesta sobre el fuzzing basado en LLM. Es exactamente algo que yo haría con un problema similar.

Más de este día

2026-08-25