
Proyecto de investigación en seguridad sobre fuzzing de libpng con OSS-Fuzz. Incluye análisis del corpus de semillas, fuzzers personalizados de lectura/escritura y un exploit de prueba de concepto para CVE-2014-9495.
Proyecto de Investigación en Seguridad Grupal
Acerca del Fuzzing: El fuzzing es una técnica automatizada de pruebas de software que proporciona datos inválidos, inesperados o aleatorios como entrada a un programa para descubrir errores y vulnerabilidades. El fuzzing guiado por cobertura utiliza la retroalimentación de cobertura de código para explorar inteligentemente diferentes caminos de ejecución.
Acerca de OSS-Fuzz: OSS-Fuzz es el servicio continuo de fuzzing de Google para software de código abierto. Utiliza LibFuzzer y otros motores de fuzzing para probar automáticamente proyectos críticos de código abierto e informar vulnerabilidades.
Este proyecto demuestra fuzzing guiado por cobertura, análisis de cobertura de código y explotación de vulnerabilidades utilizando el marco OSS-Fuzz de Google en la librería libpng.
Objetivo: libpng v1.6.48 (fuzzing), v1.5.20 (explotación)
Para metodología detallada e informe completo: Ver report.pdf
Para instrucciones completas: Ver Instructions.md

Mejora 1 - Fuzzer de Lectura Mejorado (submit_improve1)
pngread.c, +73 líneas en pngtrans.cMejora 2 - Fuzzer de Escritura (submit_improve2)

Se explotó con éxito un desbordamiento de búfer en el heap en libpng v1.5.20:
part4/run.poc.sh├── part1/ # Seed corpus impact analysis
│ ├── run.w_corpus.sh # Run with seed corpus
│ ├── run.w_o_corpus.sh # Run without seed corpus
│ └── report/ # Coverage reports
├── part3/ # Custom fuzzer improvements
│ ├── improve1/ # Enhanced read fuzzer
│ └── improve2/ # New write fuzzer
└── part4/ # CVE-2014-9495 exploitation
├── run.poc.sh # Run exploit
└── write_exploit.c # PoC code
# Part 1: Fuzzing experiments (4 hours each)
cd part1
./run.w_corpus.sh # or ./run.w_o_corpus.sh
# Part 3: Test improvements (4 hours each)
cd part3/improve1 && ./run.improve1.sh
cd part3/improve2 && ./run.improve2.sh
# Part 4: Exploit CVE
cd part4 && ./run.poc.sh
Ver informes de cobertura:
firefox part1/report/w_corpus/linux/index.html
Este proyecto de investigación en seguridad fue completado en colaboración por:
| Métrica | CON Corpus | SIN Corpus | Mejora |
|---|
| Cobertura de Líneas | 41.83% | 24.76% | +17.07% |
| Cobertura de Ramas | 35.49% | 21.03% | +14.46% |
| Cobertura de Funciones | 50.75% | 34.75% | +16.00% |