
Projeto de pesquisa em segurança sobre fuzzing do libpng com OSS-Fuzz. Inclui análise do corpus de sementes, fuzzers personalizados de leitura/escrita e um exploit de prova de conceito para CVE-2014-9495.
Projeto de Pesquisa em Segurança em Grupo
Sobre Fuzzing: Fuzzing é uma técnica automatizada de teste de software que fornece dados inválidos, inesperados ou aleatórios como entradas para um programa, a fim de descobrir bugs e vulnerabilidades. O fuzzing guiado por cobertura usa feedback de cobertura de código para explorar inteligentemente diferentes caminhos de execução.
Sobre OSS-Fuzz: OSS-Fuzz é o serviço contínuo de fuzzing do Google para software de código aberto. Ele usa o LibFuzzer e outros motores de fuzzing para testar automaticamente projetos críticos de código aberto e relatar vulnerabilidades.
Este projeto demonstra fuzzing guiado por cobertura, análise de cobertura de código e exploração de vulnerabilidades usando a estrutura OSS-Fuzz do Google na biblioteca libpng.
Alvo: libpng v1.6.48 (fuzzing), v1.5.20 (exploração)
Para metodologia detalhada e relatório completo: Veja report.pdf
Para instruções completas: Veja Instructions.md

Melhoria 1 - Fuzzer de Leitura Aprimorado (submit_improve1)
pngread.c, +73 linhas em pngtrans.cMelhoria 2 - Fuzzer de Escrita (submit_improve2)

Exploração bem-sucedida de estouro de buffer heap no 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
Visualizar relatórios de cobertura:
firefox part1/report/w_corpus/linux/index.html
Este projeto de pesquisa em segurança foi concluído em colaboração por:
| Métrica | COM Corpus | SEM Corpus | Melhoria |
|---|
| Cobertura de Linha | 41.83% | 24.76% | +17.07% |
| Cobertura de Ramo | 35.49% | 21.03% | +14.46% |
| Cobertura de Função | 50.75% | 34.75% | +16.00% |