A agência norte-americana de cibersegurança (CISA) incluiu a vulnerabilidade Fragnesia (CVE-2026-46300), uma falha de escalada de privilégios no kernel Linux, no seu catálogo de vulnerabilidades exploradas ativamente. O motivo é concreto: a falha pode ser encadeada com a CVE-2026-109618 e a CVE-2026-109619 para implantar webshells PHP e executar comandos como root. Uma investigação da empresa Dream descreve uma campanha que usou exatamente essa combinação para controlar por completo 25 servidores, sobretudo firewalls, entre eles sistemas de uma organização ligada ao governo dos EUA.
Resposta rápida: A falha Fragnesia, que afeta o kernel Linux e foi corrigida em maio de 2026, está a ser usada em conjunto com as falhas PHP2Shell do PHP para obter acesso root sem credenciais. Atualize o kernel e o PHP (8.2.35, 8.3.36, 8.4.27 ou 8.5.12). Retire da Internet as interfaces de gestão de firewalls e outros equipamentos. Como a alteração maliciosa fica só na memória, faça a análise forense antes de reiniciar qualquer sistema suspeito.
O que a CISA decidiu e porquê
A 28 de outubro de 2026, a CISA acrescentou duas vulnerabilidades ao catálogo Known Exploited Vulnerabilities (KEV), com base em provas de exploração ativa. Uma delas é a CVE-2026-46300, que afeta o kernel Linux. Na entrada do catálogo KEV, a agência fixa o prazo de correção em 31 de outubro e exige triagem forense ao abrigo da diretiva BOD 26-04. Quanto ao uso em campanhas de ransomware, o estado é “desconhecido”.
A exigência de triagem forense tem uma razão. A BOD 26-04 define o que se espera das agências quando têm de verificar se o sistema foi comprometido antes de o patch ser aplicado. Por outras palavras, instalar a atualização não chega: é preciso confirmar se o atacante entrou antes disso.
Dois dias antes, as falhas do PHP já tinham passado pelo mesmo processo. A CISA acrescentou a CVE-2026-109618 e a CVE-2026-109619 ao catálogo KEV na segunda-feira, com prazo até 29 de outubro para as agências federais civis.
Fragnesia: uma falha antiga com um papel novo
A Fragnesia não é recente. Os mantenedores do kernel Linux corrigiram-na em maio, quando os investigadores publicaram também uma prova de conceito (PoC). Segundo a V12 Security, pertence à mesma classe de vulnerabilidades que a “Dirty Frag”. São afetadas todas as versões do kernel Linux anteriores a 13 de maio de 2026.
Em termos técnicos, a CISA explica que se trata de uma variável não inicializada que permite alterar dados guardados na page cache. Ao juntar buffers de socket, o kernel não preserva o marcador de fragmento partilhado, e o processamento ESP decifra esses fragmentos no próprio sítio. Na prática, um utilizador local sem privilégios consegue modificar em memória ficheiros que deviam ser só de leitura. O ataque altera apenas a versão em cache do ficheiro e deixa intacto o binário no disco.
Sozinha, a Fragnesia exige que o atacante já tenha alguma forma de executar código na máquina. É aqui que entra o PHP2Shell.
PHP2Shell: a porta de entrada remota
O nome PHP2Shell junta duas falhas no núcleo do PHP. A equipa de segurança do PHP atribui a ambas 9,2 na escala CVSS v4.0, ou seja, gravidade crítica. Nenhuma exige autenticação, e ambas afetam todas as versões anteriores ao PHP 8.2.35, 8.3.36, 8.4.27 e 8.5.12. A equipa do PHP publicou as correções a 21 de outubro. Antes disso já havia ataques: a Amazon Threat Intelligence detetou tentativas de exploração quatro dias antes de os patches saírem.
Explorar estas falhas de forma fiável não é fácil. Kfir Fleischer, da Dream, explicou que “o PHP2Shell é difícil de explorar de forma fiável, já que exige offsets de memória precisos e específicos de cada versão”. Por isso, o atacante teve de lhe juntar a Fragnesia para chegar a root.
| CVE | Componente | Natureza | Gravidade | Versões corrigidas |
|---|---|---|---|---|
CVE-2026-46300 (Fragnesia) | Kernel Linux (XFRM ESP-in-TCP) | Escalada local de privilégios | Elevada | Kernels publicados a partir de 13/05/2026; stable 7.0.10, 6.18.33, 6.12.91, 6.6.141, 6.1.174 e 5.15.208 |
CVE-2026-109618 | PHP | RCE por corrupção de memória em situação de falta de memória (OOM) | 9,2 (CVSS v4.0) | 8.2.35, 8.3.36, 8.4.27, 8.5.12 |
CVE-2026-109619 | PHP | RCE por estado global obsoleto | 9,2 (CVSS v4.0) | 8.2.35, 8.3.36, 8.4.27, 8.5.12 |
A lista de versões estáveis do kernel corrigidas vem de análises técnicas independentes. Confirme sempre nos avisos da sua distribuição. A correção corresponde ao commit f84eca581739 e já foi incorporada nos kernels das distribuições.
Como funcionou a campanha descrita pela Dream
Segundo o relatório da Dream, os investigadores encontraram a 25 de outubro artefactos do que parecia ser uma campanha chinesa assistida por IA, que tinha obtido root em 25 servidores, incluindo sistemas de um ambiente ligado ao governo dos EUA. Os equipamentos afetados correm versões específicas do software de firewall de um grande fabricante. A Dream não divulga o fabricante nem as versões, mas diz que o notificou. A mesma empresa ressalva que a operação não parece ter sido um ataque totalmente autónomo de um Estado. Note-se que estas conclusões ainda não foram confirmadas de forma independente.
O exploit do PHP2Shell recuperado era uma versão própria e não pública, que não copia nenhum exploit público conhecido. Visava o mecanismo session.upload_progress do servidor de gestão appweb. O sistema operativo do firewall usa o PHP 8.0.30, com um limite de memória elevado que facilita as fases de corrupção de memória do ataque. O PHP2Shell dava execução de comandos com a conta sem privilégios nobody. O último pedido do exploit lançava também a Fragnesia, que completava a passagem a root.
A escolha dos alvos foi sistemática. Os atacantes usaram o FOFA, um motor de pesquisa chinês de ativos expostos na Internet, para encontrar 19 000 firewalls de um fabricante, e exploraram 25 deles entre 23 e 24 de outubro. Depois de filtrar por país (EUA, Japão, Taiwan e Coreia do Sul) e por versão, ficaram 240 alvos possíveis.
No ambiente ligado ao governo dos EUA, o ataque foi mais longe. Para manter o acesso, os atacantes montaram um túnel SSH reverso e usaram-no para atacar, com a mesma cadeia, um servidor interno de gestão de firewalls. Assim obtiveram as configurações, credenciais e definições de todos os firewalls geridos pela organização. Seguiu-se a decifração da palavra-passe de uma conta de serviço LDAP, a enumeração do domínio, ataques de password spraying e tentativas de criar contas de backdoor no Active Directory.
Cronologia
| Data (2026) | Acontecimento |
|---|---|
| 13 de maio | A V12 divulga a Fragnesia com exploit público; sai a correção no kernel |
| Cerca de 17 de outubro | A Amazon deteta as primeiras tentativas de exploração do PHP2Shell |
| 21 de outubro | O PHP publica as versões corrigidas |
| 23 e 24 de outubro | Exploração da cadeia PHP2Shell + Fragnesia em 25 servidores |
| 25 de outubro | A Dream descobre os artefactos da campanha |
| 26 de outubro | A Dream publica o relatório; a CISA adiciona o PHP2Shell ao KEV |
| 28 de outubro | A CISA adiciona a CVE-2026-46300 ao KEV, com prazo até 31 de outubro |
Indicadores de comprometimento
| Indicador | Descrição |
|---|---|
/etc/pam.d/su alterado para pam_permit.so | Alteração na page cache que permite usar su sem palavra-passe |
| Webshells PHP a correr como root | Colocadas na interface de gestão web do equipamento |
| Túnel SSH reverso e proxy SOCKS5 | Ligações de saída a partir do firewall, que expõem serviços internos |
Serviço systemd e entrada em rc.local | Mecanismos de persistência após reinício |
| Atividade anómala da conta de serviço LDAP | Enumeração do domínio, password spraying e criação de contas no AD |
A Dream não publicou endereços IP nem hashes associados a esta campanha. Há ainda um pormenor importante para a investigação: como a alteração fica na page cache e não no disco, um reinício ou uma limpeza da cache apaga ao mesmo tempo a backdoor e as provas.
O que fazer agora
- Atualizar o kernel para uma versão com a correção da Fragnesia. A Ubuntu, por exemplo, indica os kernels
6.8.0-124.124(24.04 LTS) e5.15.0-181.191(22.04 LTS). - Se não puder atualizar já: a Fragnesia pode ser mitigada da mesma forma que a Dirty Frag, removendo temporariamente os módulos esp4, esp6 e rxrpc. Depois, limpe a page cache, mas só após a triagem forense.
- Atualizar o PHP para 8.2.35, 8.3.36, 8.4.27 ou 8.5.12. As versões 8.1 e anteriores já não têm suporte oficial.
- Isolar as interfaces de gestão de firewalls, VPN e outros equipamentos, deixando-as acessíveis apenas a partir de redes internas de confiança.
- Acompanhar os avisos dos fabricantes de equipamentos que incluem PHP. No aviso da Palo Alto Networks, o problema afeta exclusivamente a interface web de gestão, ou seja, a web UI HTTPS e o serviço XML API. O aviso indica também os hotfixes do PAN-OS que corrigem a falha.
- Procurar os indicadores da tabela acima e rever as credenciais guardadas em servidores de gestão de firewalls, sobretudo contas de serviço LDAP.
Porque é que isto importa em Portugal
O caso mostra como funciona hoje boa parte da exploração de vulnerabilidades. Uma falha local corrigida há meses, e por isso vista como pouco prioritária, ganha peso crítico quando aparece uma porta de entrada remota. Os equipamentos de rede são especialmente vulneráveis a isto, porque trazem componentes como o PHP que o administrador não consegue atualizar sozinho e ficam dependentes do calendário do fabricante.
Para as entidades abrangidas pelo Regime Jurídico da Cibersegurança (Decreto-Lei n.º 125/2025, que transpõe a NIS2), a gestão de vulnerabilidades e a segurança da cadeia de fornecimento fazem parte das obrigações. Um compromisso confirmado num firewall perimétrico pode ainda ter de ser notificado ao CNCS/CERT.PT. Se houver acesso a dados pessoais, como as credenciais do Active Directory referidas neste caso, entra também em jogo o RGPD, que obriga a avaliar a notificação à CNPD no prazo de 72 horas. As PME que usam firewalls com gestão remota ou alojamento web com PHP devem confirmar com os prestadores se as versões foram atualizadas.
Perguntas frequentes
O que é a vulnerabilidade Fragnesia?
É uma falha de escalada local de privilégios no kernel Linux (CVE-2026-46300), no subsistema XFRM ESP-in-TCP. Permite a um utilizador sem privilégios modificar em memória ficheiros só de leitura e obter acesso root. Afeta os kernels anteriores a 13 de maio de 2026.
Porque é que uma falha local se tornou tão perigosa?
Porque foi combinada com as falhas PHP2Shell, que dão execução remota de código sem autenticação. O PHP2Shell abre a porta com uma conta limitada e a Fragnesia eleva esse acesso a root, tudo num único pedido HTTP.
Reiniciar o servidor resolve o problema?
Não, e pode até piorar a situação. A alteração da Fragnesia fica na page cache, por isso um reinício apaga as provas sem eliminar a persistência criada por outros meios, como serviços systemd ou túneis SSH. Faça primeiro a recolha forense e só depois atualize.
Que versões do PHP corrigem o PHP2Shell?
As versões 8.2.35, 8.3.36, 8.4.27 e 8.5.12. Em equipamentos que trazem PHP embutido, como firewalls, a correção depende de uma atualização do fabricante.
Esta informação tem caráter noticioso e baseia-se em dados divulgados publicamente pela CISA (incluindo a entrada do catálogo KEV), pela Dream Research e pela Palo Alto Networks.

