Desreferenciação de ponteiro nulo
O que é Desreferenciação de ponteiro nulo?
Desreferenciação de ponteiro nuloBug em que um programa lê ou escreve através de um ponteiro cujo valor é nulo (ou inválido), normalmente causando uma falha do processo e por vezes permitindo exploração.
As desreferenciações de ponteiro nulo (CWE-476) ocorrem quando o código acede a um ponteiro nunca inicializado, posto a NULL após free, ou cuja função emissora falhou silenciosamente. Na maioria dos sistemas modernos isto causa um segmentation fault e a morte do processo, configurando uma negação de serviço. Em ambientes restritos — kernels antigos onde o endereço zero é mapeável, sistemas embebidos sem MMU, alguns compiladores JIT — as desreferenciações nulas podem ser transformadas em primitivas de corrupção de memória. Defesas: verificação estrita de nulos, características de linguagem (Optional/Maybe, referências não nulas), análise estática, testes com sanitizers e controlos do SO como mmap_min_addr que proíbem mapear endereços baixos.
● Exemplos
- 01
Servidor web que falha quando um cabeçalho opcional está ausente.
- 02
Bugs históricos de null-deref no kernel Linux exploráveis quando mmap_min_addr era 0.
● Perguntas frequentes
O que é Desreferenciação de ponteiro nulo?
Bug em que um programa lê ou escreve através de um ponteiro cujo valor é nulo (ou inválido), normalmente causando uma falha do processo e por vezes permitindo exploração. Pertence à categoria Vulnerabilidades da cibersegurança.
O que significa Desreferenciação de ponteiro nulo?
Bug em que um programa lê ou escreve através de um ponteiro cujo valor é nulo (ou inválido), normalmente causando uma falha do processo e por vezes permitindo exploração.
Como se defender contra Desreferenciação de ponteiro nulo?
As defesas contra Desreferenciação de ponteiro nulo costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Desreferenciação de ponteiro nulo?
Nomes alternativos comuns: Null deref.