Double Free
O que é Double Free?
Double FreeBug de segurança de memória em que o mesmo chunk do heap é libertado duas vezes, corrompendo metadados do alocador e muitas vezes permitindo execução de código arbitrário.
Um double free ocorre quando free()/delete é chamado mais do que uma vez sobre o mesmo ponteiro. As listas livres ou bins do alocador ficam inconsistentes, permitindo ao atacante forçar que uma alocação subsequente devolva memória influenciada ou sobreposta a objetos vivos — uma primitiva que leva a escritas arbitrárias e execução de código. Classificado como CWE-415, surge frequentemente com use-after-free e double-fetch. Defesas: padrões de propriedade única (RAII, smart pointers), pôr ponteiros a NULL após libertar, alocadores endurecidos com deteção de double-free (proteção tcache do glibc, scudo), testes com AddressSanitizer e linguagens memory-safe.
● Exemplos
- 01
CVE-2015-1322: double-free no tcache do glibc, com corrupção de heap.
- 02
CVE-2019-19377: double-free no btrfs do Linux disparado por imagens malformadas.
● Perguntas frequentes
O que é Double Free?
Bug de segurança de memória em que o mesmo chunk do heap é libertado duas vezes, corrompendo metadados do alocador e muitas vezes permitindo execução de código arbitrário. Pertence à categoria Vulnerabilidades da cibersegurança.
O que significa Double Free?
Bug de segurança de memória em que o mesmo chunk do heap é libertado duas vezes, corrompendo metadados do alocador e muitas vezes permitindo execução de código arbitrário.
Como se defender contra Double Free?
As defesas contra Double Free costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Double Free?
Nomes alternativos comuns: Vulnerabilidade de double-free.