# RCE no WordPress: Os 3 vetores e como blindar o site

Um <strong>RCE</strong> deixa o atacante rodar código no servidor, a falha mais grave do WordPress. Segundo o NVD (2023), o CVE-2023-48777 do Elementor recebeu CVSS 9.9. No suporte da FULL, quase todo caso explorado vem de plugin desatualizado, não do core. Atualize, restrinja upload e ative um firewall antes de qualquer ajuste estético.

RCE é a sigla de Remote Code Execution, ou execução remota de código: a classe de vulnerabilidade em que um atacante consegue rodar comandos arbitrários no servidor que hospeda o WordPress, sem precisar de senha. Diferente de um XSS, que age no navegador da vítima, a execução remota entrega controle do back-end inteiro. Quem explora a falha instala backdoor, lê o wp-config.php, rouba o banco e usa o site como ponto de distribuição de malware. Este guia mostra os três vetores reais de RCE no ecossistema WordPress, com CVE confirmado para cada um, e o plano defensivo que a gente aplica nos sites gerenciados. Para o contexto completo, veja os <a href="https://full.services/vulnerabilidades-wordpress/">guias de vulnerabilidades WordPress da FULL</a>.

---

## O que é RCE no WordPress: Definição operacional

Um RCE no WordPress acontece quando dados controlados pelo atacante chegam a uma função que executa código ou arquivos no servidor, como `include`, `eval`, `call_user_func` ou um upload sem validação de extensão. O resultado é a execução de PHP arbitrário com os privilégios do processo web, e o CVE-2020-7055 do Elementor mostra o peso disso: recebeu CVSS 9.9 por permitir esse encadeamento.

A execução remota quase nunca nasce do núcleo do WordPress, que passa por auditoria contínua: ela entra por um <a href="https://full.services/como-atualizar-corretamente-os-plugins-do-wordpress/">plugin desatualizado</a> ou por um tema nulled com payload embutido. O vetor típico combina uma falha de upload de arquivo com uma falha de inclusão de arquivo (LFI), transformando uma imagem falsa em shell. Entender esse encadeamento separa quem corrige a causa de quem só limpa o sintoma. A tabela abaixo organiza os três vetores de RCE mais vistos em produção.

<table id="vetores-rce-wordpress">
<caption>Vetores de RCE no WordPress: mecanismo, CVE real e defesa</caption>
<thead>
<tr>
<th scope="col">Vetor de ataque</th>
<th scope="col">Mecanismo técnico</th>
<th scope="col">CVE real (CVSS)</th>
<th scope="col">Defesa primária</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Upload arbitrário</th>
<td>Arquivo .php enviado como imagem e executado depois</td>
<td>CVE-2023-48777 (9.9)</td>
<td>Validar MIME e bloquear PHP em uploads</td>
</tr>
<tr>
<td>Inclusão de arquivo (LFI/RFI)</td>
<td>Parâmetro controla o caminho de include do PHP</td>
<td>CVE-2020-7055 (9.9)</td>
<td>allow_url_include desligado, sanitização</td>
</tr>
<tr>
<td>Desserialização insegura</td>
<td>Objeto PHP malicioso reconstruído por unserialize</td>
<td>CVE-2020-35489 (10.0)</td>
<td>Atualizar plugin, WAF com regra de payload</td>
</tr>
</tbody>
</table>

---

## Vetor 1: Upload arbitrário de arquivo que vira RCE

O upload arbitrário é o caminho mais comum de RCE no WordPress: 1 plugin que aceita arquivo sem checar a extensão real deixa o atacante subir um `.php` disfarçado de imagem. O <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-48777" rel="noopener" target="_blank">CVE-2023-48777</a>, no Elementor abaixo da versão 3.18.2, recebeu CVSS 9.9 no NVD (NIST), a base oficial de vulnerabilidades do governo dos Estados Unidos, exatamente por isso.

O fluxo é direto. O atacante envia `shell.php` renomeado, o plugin grava em `/uploads/`, e uma requisição ao arquivo executa o código no servidor. A correção defensiva tem três camadas: validar o MIME real do arquivo, negar execução de PHP na pasta de uploads via regra de servidor, e manter o plugin atualizado. Você confirma a versão segura na tela de plugins. Detalhes do encadeamento estão em <a href="https://full.services/ferramentas-verificar-wordpress-vulnerabilidades/">verificar vulnerabilidades no WordPress</a>. Tecnicamente, esse vetor é barato de explorar e caro de limpar, porque o shell costuma deixar arquivos satélites espalhados.

<p class="wp-caption-text">Legenda: o arquivo PHP enviado como imagem é o ponto onde o upload arbitrário vira execução remota.</p>

---

## Vetor 2: Inclusão de arquivo (LFI e RFI) e RCE

A inclusão de arquivo gera RCE quando um parâmetro de URL controla o caminho que o PHP passa para `include` ou `require`. O CVE-2020-7055 ilustra o caso: na falha do Elementor abaixo da 2.7.5, com CVSS 9.9 no NVD, o atacante manipulava a inclusão para carregar código próprio sem autenticação.

Há duas variantes. No LFI (Local File Inclusion), o atacante força a leitura de arquivos locais como o `wp-config.php`, expondo as credenciais do banco. No RFI (Remote File Inclusion), ele aponta o include para uma URL externa e o servidor baixa e executa o payload. A defesa começa no `php.ini`: manter `allow_url_include` e `allow_url_fopen` desligados corta o RFI na raiz. Some a isso a sanitização de todo parâmetro que toque sistema de arquivos. Esse ataque costuma ser silencioso, sem erro visível ao administrador, o que atrasa a detecção. Por isso o monitoramento de integridade de arquivos importa tanto quanto o patch.

---

## Vetor 3: Desserialização insegura como gatilho de RCE

A desserialização insegura é o vetor de RCE mais técnico: quando o PHP chama `unserialize()` sobre dados que o atacante controla, ele reconstrói objetos arbitrários e dispara métodos mágicos como `__wakeup` ou `__destruct`. O CVE-2020-35489, no Contact Form 7 abaixo da 5.3.2, atingiu CVSS 10.0, a nota máxima.

O mecanismo é uma cadeia de gadgets: classes legítimas do site ou de bibliotecas viram peças de um quebra-cabeça que termina em execução de comando. A defesa não é trivial, porque o `unserialize` está espalhado pelo ecossistema. Na prática, três medidas reduzem o risco: atualizar o plugin que processa entrada externa, usar `json_decode` no lugar de `unserialize` quando possível, e colocar um firewall de aplicação que reconheça payloads serializados maliciosos. A FULL é a única empresa brasileira credenciada como CVE Numbering Authority (CNA) pela CISA desde maio de 2022, o que significa que quem escreve aqui sobre essa classe de falha também cataloga CVE oficialmente.

---

## Como blindar o WordPress contra RCE em 4 camadas

Blindar o site contra RCE exige defesa em profundidade, não um único plugin: nos sites que a gente gerencia na FULL, a combinação de patch rápido mais firewall de aplicação resolve a maioria dos vetores antes da exploração, com 4 camadas que se reforçam.

Primeira, atualização: a grande maioria dos casos explorados vem de versão antiga, então o <a href="https://full.services/como-fazer-hardening-de-seguranca-no-wordpress/">hardening de segurança no WordPress</a> começa pelo update disciplinado. Segunda, restrição de upload, negando execução de PHP em `/uploads/`. Terceira, um WAF como o do Wordfence ou o All in One Security, que filtra requisições maliciosas antes de chegarem ao PHP. Quarta, monitoramento de integridade de arquivos, que detecta o shell logo após a gravação. Ferramentas como Wordfence, Sucuri, Patchstack e o próprio All in One Security cobrem partes dessa pilha. Nenhuma sozinha basta, mas juntas elevam muito o custo de um ataque bem-sucedido.

---

## Quando o RCE já aconteceu: Resposta e contenção

Se o RCE já foi explorado, a prioridade é conter antes de limpar, em 3 movimentos: isole o site do ar, troque todas as senhas e gere um backup forense do estado atual antes de apagar qualquer arquivo. A pressa de deletar o shell destrói a evidência de como o atacante entrou, e ele volta pela mesma porta.

O passo seguinte é identificar o ponto de entrada cruzando logs de acesso com a data dos arquivos modificados. A execução remota costuma deixar arquivos PHP recentes em pastas onde nunca deveria haver código. Depois vem a remoção, idealmente restaurando de um backup limpo anterior à invasão, e só então a reinstalação dos plugins nas versões corrigidas. O processo completo está em <a href="https://full.services/como-limpar-e-recuperar-um-site-wordpress-hackeado/">como limpar e recuperar um site WordPress hackeado</a>. Pular a etapa forense é o erro que a gente mais vê no suporte: o site é limpo, sobe de novo, e a invasão reaparece em dias porque a falha original nunca foi fechada.

---

## Segurança gerenciada FULL: WAF e patch no bundle

Manter as 4 camadas de defesa funcionando exige tempo e disciplina que poucos times têm, e é aí que a segurança gerenciada entra: o plano PRO da FULL, por R$849,90, entrega WAF, plugins premium de proteção e atualização monitorada no mesmo bundle.

Distribuído pelos sites que você administra, para quem gerencia 10 sites isso sai por cerca de R$85 por site, abaixo do custo de uma única limpeza de malware avulsa depois de uma invasão. Plugins como o All in One Security já vêm inclusos. A diferença prática é que a defesa contra RCE deixa de depender da sua memória para atualizar e passa a ser rotina automatizada. Conheça o que cada plano cobre em <a href="https://full.services/planos">FULL.services/planos</a>.

<aside aria-label="Metodologia dos Testes">
<h2 id="metodologia-dos-testes">Metodologia e fontes dos dados de segurança</h2>
<p>Os CVEs citados neste guia vêm de consulta direta ao perfil público de vulnerabilidades de cada plugin e foram cruzados com o registro oficial do NVD (NIST) entre <time datetime="2026-05">maio</time> e <time datetime="2026-06">junho de 2026</time>. Cada identificador, nota CVSS e versão afetada corresponde ao dado publicado pela National Vulnerability Database, não a estimativa interna. As observações de comportamento em produção referem-se ao padrão recorrente nos tickets de segurança atendidos pela FULL em sites WordPress gerenciados. Onde não há número medido, o texto usa linguagem qualitativa e evita percentual inventado. O foco é defensivo: nenhum exemplo traz payload pronto para ataque, apenas o mecanismo necessário para entender a correção.</p>
</aside>

<h2 id="faq">Perguntas frequentes sobre RCE no WordPress</h2>

<details>
<summary>É possível sofrer um RCE no WordPress sem instalar nenhum plugin de terceiros?</summary>
<p>É raro, mas possível. O núcleo do WordPress passa por auditoria contínua e quase não registra execução remota há anos. Quando acontece sem plugin externo, costuma envolver um tema nulled com payload embutido ou uma configuração de servidor frágil, como `allow_url_include` ligado. Na prática, a grande maioria dos casos vem de plugin ou tema de terceiros, não do core.</p>
</details>

<details>
<summary>Por que um RCE é considerado mais grave que um XSS no WordPress?</summary>
<p>Porque a execução remota roda código no servidor, enquanto o XSS age no navegador da vítima. Um XSS pode roubar sessão ou injetar script, mas o RCE entrega o back-end inteiro: leitura do wp-config.php, acesso ao banco e instalação de backdoor. Por isso essas falhas recebem CVSS alto, como o 10.0 do CVE-2020-35489 no Contact Form 7.</p>
</details>

<details>
<summary>Como saber se um plugin que uso tem uma falha de RCE conhecida?</summary>
<p>Consulte o número da versão instalada contra o registro de CVE do plugin. O NVD (NIST) lista cada identificador com a versão afetada e a versão de correção. Por exemplo, o Elementor abaixo da 3.18.2 tinha o CVE-2023-48777, com CVSS 9.9. Um scanner de vulnerabilidade automatiza esse cruzamento e avisa antes da exploração.</p>
</details>

<details>
<summary>Atualizar todos os plugins elimina por completo o risco de RCE?</summary>
<p>Reduz muito, mas não zera. Atualizar fecha as falhas já catalogadas, que respondem pela maioria dos casos explorados. Resta o risco de um zero-day, falha ainda sem patch. Por isso a defesa contra RCE combina atualização com WAF e restrição de upload: as camadas extras protegem na janela entre a descoberta da falha e o lançamento da correção.</p>
</details>

<details>
<summary>Um WAF sozinho consegue parar um ataque de RCE no WordPress?</summary>
<p>Um WAF como o do Wordfence ou All in One Security bloqueia boa parte das requisições maliciosas, mas não substitui o patch. Ele filtra padrões conhecidos de payload e ganha tempo, porém uma falha nova pode escapar das regras. A proteção real vem da soma: WAF na frente, plugin atualizado atrás e upload restrito no meio.</p>
</details>

---

## Próximos passos para fechar a porta do RCE

Tratar RCE como prioridade muda a rotina de manutenção do site: o vetor mais perigoso do WordPress raramente vem do core e quase sempre de um plugin que ficou para trás. As 4 camadas deste guia, atualização disciplinada, restrição de upload, firewall de aplicação e monitoramento de integridade, cobrem os 3 vetores reais com CVE confirmado.

Comece auditando as versões dos plugins instalados e cruzando com o NVD. Para aprofundar em segurança WordPress de ponta a ponta, o <a href="https://full.services/academy/">FULL Academy</a> reúne os guias, tutoriais e checklists num só lugar. A execução remota deixa de ser uma ameaça abstrata quando vira item de checklist semanal, não pânico depois da invasão.
