CyberGlossary

Vulnerabilidades

Vulnerabilidade de string de formato

Também conhecido como: Bug de formato printf

Definição

Falha causada por passar entrada controlada pelo utilizador como string de formato em funções tipo printf, permitindo leitura ou escrita arbitrária de memória.

Os bugs de string de formato surgem quando um programador escreve printf(input_utilizador) em vez de printf("%s", input_utilizador). Especificadores como %x revelam memória da pilha, %s desreferencia ponteiros arbitrários e %n escreve o número de bytes já impressos num endereço de memória — produzindo primitivas arbitrárias de leitura/escrita. A exploração clássica visa entradas GOT/PLT, ponteiros de função ou canários de pilha. As toolchains modernas avisam (-Wformat-security, FORTIFY_SOURCE) e muitas linguagens proíbem o padrão, mas o bug ainda surge em C legado, firmware embebido e shells. A defesa é mecânica: nunca passar entradas não confiáveis como string de formato e preferir formatadores tipados como fmtlib, println! do Rust ou fmt do Go com verbos explícitos.

Exemplos

  • CVE-2000-0573 (wu-ftpd): string de formato em site exec, root remoto.
  • Routers embebidos que registam diretamente em syslog campos controlados pelo atacante.

Termos relacionados