# Sobrescrevendo um chunk liberado {{#include ../../banners/hacktricks-training.md}} Várias das técnicas propostas de exploração de heap precisam ser capazes de sobrescrever ponteiros dentro de chunks liberados. O objetivo desta página é resumir as potenciais vulnerabilidades que poderiam conceder esse acesso: ### Uso Simples Após Liberação Se for possível para o atacante **escrever informações em um chunk livre**, ele poderia abusar disso para sobrescrever os ponteiros necessários. ### Liberação Dupla Se o atacante puder **`free` duas vezes o mesmo chunk** (liberando outros chunks entre potencialmente) e fazê-lo estar **2 vezes no mesmo bin**, seria possível para o usuário **alocar o chunk mais tarde**, **escrever os ponteiros necessários** e então **alocá-lo novamente**, acionando as ações do chunk sendo alocado (por exemplo, ataque de fast bin, ataque de tcache...) ### Overflow de Heap Pode ser possível **transbordar um chunk alocado tendo ao lado um chunk liberado** e modificar alguns cabeçalhos/ponteiros dele. ### Overflow de Um a Menos Neste caso, seria possível **modificar o tamanho** do chunk seguinte na memória. Um atacante poderia abusar disso para **fazer um chunk alocado ter um tamanho maior**, então **`free`**-lo, fazendo com que o chunk fosse **adicionado a um bin de um tamanho diferente** (maior), então alocar o **tamanho falso**, e o ataque terá acesso a um **chunk com um tamanho que é maior** do que realmente é, **concedendo assim uma situação de chunks sobrepostos**, que é explorável da mesma forma que um **overflow de heap** (ver seção anterior). {{#include ../../banners/hacktricks-training.md}}