Na primavera (no hemisfério norte) de 2024, uma falha de vinte e quatro anos na biblioteca C do Linux mudou o nível de perigo de muitas aplicações PHP. A CVE-2024-2961 não afeta o WordPress diretamente, mas permite transformar uma simples leitura de arquivo em execução remota de código. Este artigo explica o mecanismo sem receita de exploração, quem é afetado e, sobretudo, como verificar e corrigir a sua hospedagem.
O que a CVE-2024-2961 corrige
A falha está na função iconv() da GNU C Library (glibc), usada para converter texto de um conjunto de caracteres para outro. Durante uma conversão para o conjunto ISO-2022-CN-EXT, a função pode gravar até 4 bytes além do buffer de saída que recebe. Esse estouro pode derrubar a aplicação ou sobrescrever uma variável vizinha na memória. Segundo o aviso oficial da glibc, o código defeituoso foi introduzido no ano 2000 e nunca havia sido notado.
O National Vulnerability Database atribui a ela uma pontuação CVSS 3.1 de 7,3. A falha foi descoberta por Charles Fol (Ambionics / Lexfo), relatada em 26 de março de 2024 e publicada em 17 de abril de 2024, junto com a correção.

Por que o PHP é o alvo mais exposto
O ponto-chave é o wrapper php://filter. O PHP permite aplicar conversões convert.iconv a qualquer fluxo lido. Um atacante que tenha um meio de fazer a aplicação ler um arquivo pode pedir que ela converta esse fluxo para ISO-2022-CN-EXT e, assim, disparar o bug da glibc. Segundo a análise do autor, todas as funções de leitura padrão do PHP são afetadas:
file_get_contents(),file(),readfile(),fgets()getimagesize()eSplFileObject- gravações como
file_put_contents()também são - por outro lado, as funções que apenas testam um arquivo (
file_exists(),is_file()) não disparam a conversão
A técnica foi demonstrada em versões do PHP da 7.0 à 8.3. Em outras palavras, atualizar o PHP não basta: é a glibc do servidor que precisa ser corrigida. O wrapper phar:// também não é o assunto aqui, ao contrário de outros ataques de desserialização.
O filtro não é a única porta de entrada. O autor cita várias formas de levar um fluxo até o iconv: uma injeção de SQL que explora LOAD DATA LOCAL INFILE, uma falha XXE, certas bibliotecas de processamento de imagens ou de tradução. O ponto em comum é sempre o mesmo: é preciso um meio de fazer a aplicação manipular um conteúdo que o atacante controla e, por baixo, uma glibc não corrigida. Por isso a correção acontece no nível do sistema, e não de um único plugin.
Um caso WordPress e uma exploração em massa
A primeira demonstração pública mirava um WordPress com o plugin BuddyForms 2.7.7, vulnerável à CVE-2023-26326 (desserialização sem autenticação). Essa falha de plugin fornecia a primitiva de leitura de arquivo necessária para chegar à glibc. É um bom lembrete: uma falha de plugin considerada média pode se tornar crítica quando encadeada com um defeito do sistema.
O perigo não ficou na teoria. A partir do meio de 2024, a campanha chamada CosmicSting encadeou a CVE-2024-34102 (uma falha XXE do Adobe Commerce / Magento) com a CVE-2024-2961 para obter execução de código. Segundo a Sansec, em dados divulgados pelo BleepingComputer em outubro de 2024, mais de 4.000 lojas (cerca de 5% da base de Adobe Commerce e Magento) foram comprometidas. Entre as vítimas citadas havia grandes marcas.

Versões da glibc afetadas e corrigidas
A falha afeta a glibc 2.39 e todas as versões anteriores. Ela foi corrigida na versão 2.40 e levada por backport aos ramos de manutenção. Em um servidor, o que conta quase sempre é o pacote da sua distribuição, não a versão do projeto original.
| Origem | Situação | Detalhe |
|---|---|---|
| glibc original < 2.40 | Vulnerável | Código defeituoso presente desde o ramo 2.1.93 |
| glibc 2.40 | Corrigido | Correção de referência, abril de 2024 |
| Ramos 2.32 a 2.39 | Corrigido por backport | Via pacotes da distribuição |
| Debian 12 (bookworm) | Corrigido | 2.36-9+deb12u6 e superior |
| Debian 13 (trixie) | Corrigido | 2.37-18 e superior |
Os números de pacote vêm do rastreamento do Debian e do aviso da glibc; confirme a situação exata nos boletins da sua própria distribuição (Red Hat, Ubuntu, AlmaLinux…).
Como saber se você é afetado
Em uma hospedagem compartilhada, nem sempre é você quem gerencia a glibc, mas muitas vezes dá para verificar e alertar o suporte. Se você tem acesso SSH:
- Liste os conjuntos de caracteres ativos:
iconv -l | grep -E 'CN-?EXT'. Uma saída contendoISO-2022-CN-EXTindica que o módulo vulnerável está presente. - Compare a versão do pacote glibc (
ldd --version) com a correção anunciada pela sua distribuição. - Pergunte à hospedagem a data em que a correção da glibc foi aplicada nos seus servidores.
Segundo a Zend, uma aplicação não fica exposta por esse caminho se uma destas condições for verdadeira: ela não usa a extensão iconv, a glibc está atualizada, o conjunto ISO-2022-CN-EXT foi removido da configuração, ou a aplicação só passa ao iconv conjuntos de caracteres explicitamente autorizados.
Corrigir e reduzir o risco
A única correção de verdade é atualizar a glibc. Como lembram a Zend e a Red Hat, nenhuma correção do PHP será publicada, já que o defeito está na biblioteca do sistema. Enquanto a atualização não chega, a Red Hat e o Rocky Linux documentam uma medida temporária: remover o conjunto ISO-2022-CN-EXT comentando as três linhas correspondentes em gconv-modules-extra.conf e regenerando o cache com iconvconfig. Isso deve ser feito por um administrador, depois de testes, porque pode quebrar aplicações que realmente usam esse conjunto.
Além disso, dois reflexos limitam o alcance desse tipo de cadeia. Primeiro, reduzir o número de plugins capazes de ler um arquivo a partir de um parâmetro: são eles que fornecem a primitiva inicial. Depois, monitorar nos seus logs as tentativas de leitura de arquivos sensíveis, que muitas vezes indicam uma fase de reconhecimento antes de um ataque encadeado. Uma falha de sistema corrigida rapidamente vale sempre mais do que uma detecção depois do fato.
Para lembrar
- A CVE-2024-2961 é um estouro na glibc (iconv, conjunto ISO-2022-CN-EXT), não no PHP: atualizar só o PHP não protege.
- Uma leitura de arquivo por meio de uma falha de plugin pode, encadeada a esse bug, levar à execução de código.
- A glibc 2.39 e anteriores são afetadas; a correção está na 2.40 e nos pacotes com backport.
- Verifique a versão da glibc da sua hospedagem e a data da correção; mantenha o PHP e os seus plugins atualizados.
O papel do WP Masquerade
Sejamos claros: o WP Masquerade não corrige uma falha da glibc, do PHP, de um tema ou de um plugin. O papel dele é reduzir a superfície e o ruído e complementar uma manutenção saudável, nunca substituí-la. Três contribuições são pertinentes aqui. Primeiro, o endurecimento e o mascaramento das assinaturas públicas atrasam o reconhecimento automatizado que muitas vezes precede a exploração. Depois, as armadilhas para robôs contam as requisições a endereços sensíveis (/.env, backups .sql, caminhos de outros softwares), o que dá um sinal precoce de reconhecimento. Por fim, a verificação de integridade do núcleo (Pro) ajuda a detectar uma modificação depois de um comprometimento. A proteção de fundo continua sendo a atualização da glibc, do PHP e dos plugins, com backups testados.
Vídeos para se aprofundar
Fontes
- NVD - CVE-2024-2961 (abre em uma nova aba)
- Aviso da glibc GLIBC-SA-2024-0004 (oss-security) (abre em uma nova aba)
- Red Hat - CVE-2024-2961 e medida de mitigação (abre em uma nova aba)
- NVD - CVE-2023-26326 (BuddyForms) (abre em uma nova aba)
Outras fontes consultadas: documentação oficial, páginas oficiais dos fornecedores, publicações de pesquisadores de segurança e artigos da imprensa especializada.


