CVE-2026-108097: como uma única linha na Field UI do Drupal se transforma em execução de código
Técnicas e Métodos de Ataque8h atrás
A pesquisa examina a vulnerabilidade crítica CVE-2026-108097 no módulo Field UI do núcleo do Drupal, corrigida na versão 11.4.10. O código vulnerável contém uma chamada de função perigosa, mas explorá-la exige um módulo que permita a um usuário externo controlar os dados passados a ela. Os autores reconstruíram toda a cadeia de exploração em um laboratório local — da divulgação de arquivos à execução remota de comandos.
A vulnerabilidade está localizada no Field UI, um módulo do núcleo do Drupal responsável pelas páginas administrativas de configuração de campos. A linha vulnerável está no arquivo
FieldUiTable.php (versões ≤ 11.4.9):php
$region_name = call_user_func_array($row['#region_callback'], [&$row]);```
Este código pega o valor do campo `#region_callback` e o executa como um callable PHP, passando a própria linha da tabela como argumento.
Duas metades do ataque
A vulnerabilidade em si é apenas um ponto de execução — o local onde os dados se tornam código. Para explorá-la, é necessária uma fonte de entrada: um mecanismo que permita a um usuário externo influenciar o campo `#region_callback` na linha da tabela.
• Ponto de execução: núcleo do Drupal — a mesma linha vulnerável está presente em toda instalação padrão da versão 11.4.9.
• Fonte de entrada: um módulo contribuído ou personalizado. O único `field_ui_table` do núcleo está em uma página administrativa que exige privilégios para acesso, e suas funções de callback são fixadas no momento da construção.
Limitação: o código vulnerável está presente em toda instalação afetada, mas a explorabilidade depende do ecossistema de módulos
Cadeia de exploração:
1. Execução arbitrária de callable. Definindo `#region_callback`, `print_r` faz com que a resposta do site inclua um dump da linha da tabela.
2. Divulgação de arquivos sensíveis. `PEAR System::cat` copia `settings.php` para o diretório público de arquivos, após o que uma requisição GET comum expõe o hash salt e as credenciais do banco de dados.
3. Execução remota de código. Para contornar a proteção do diretório `files` em um servidor Apache, os autores substituíram o `.htaccess` em vez de excluí-lo. A substituição usa `RewriteEngine On` e `php_flag engine on` para sobrescrever as regras de reescrita herdadas e reativar a execução de PHP. Três operações são realizadas em uma única requisição não autenticada: copiar um marcador enviado para `x.php`, excluir o `.htaccess` existente e copiar o `.htaccess` substituto.
Artigo: https://fortbridge.co.uk/research/cve-2026-108097-deep-dive-turning-a-drupal-field-ui-callback-into-rce/Vulnerabilidades
Fornecedor
Produto