Situação atual: PHP2Shell. Duas vulnerabilidades críticas do PHP (CVSS 9,2) permitem executar código malicioso sem autenticação. Patches disponíveis desde 21/10/2026.O que fazer agora →

Segurança Moodle após o PHP2Shell: como proteger corretamente as plataformas de aprendizagem

O Moodle gere dados de participantes, notas e entregas de provas, muitas vezes de menores. Após o PHP2Shell contam o patch do PHP, o reinício de web e cron, um moodledata protegido e plugins verificados.

Atualizado em 5 min de leituraPlataformas

Em resumo: após o PHP2Shell, a segurança do Moodle depende do PHP do servidor, não do Moodle. Como as plataformas de aprendizagem tratam dados de alunos, estudantes e colaboradores, é importante agir depressa. Aplique o patch ao PHP para web e cron, reinicie todos os processos e verifique config.php, moodledata, plugins e contas de admin.

O que o PHP2Shell significa para os operadores de Moodle

O Moodle é difundido em escolas, universidades, formação contínua e formações internas em empresas. A plataforma gere nomes, endereços de e-mail, inscrições em cursos, notas, entregas de provas e contributos em fóruns, nas escolas muitas vezes de menores. Segundo a equipa do PHP, as vulnerabilidades PHP CVE-2026-109618 e CVE-2026-109619 permitem executar código malicioso remotamente sem autenticação.

Os servidores Moodle são quase sempre acessíveis a partir da Internet, porque os alunos trabalham em casa. O BSI (Gabinete Federal Alemão para a Segurança da Informação) recomenda, com o nível de alerta 3, a atualização imediata e, se isso não for possível, retirar temporariamente os servidores web da rede. Para escolas e entidades de formação isto é difícil do ponto de vista organizativo, mas planeável. Indicações específicas do setor encontra-as em Segurança informática para escolas e entidades de formação.

Segurança do Moodle: verificar a versão do PHP para web e cron

Em Administração do site > Servidor > Ambiente, o Moodle verifica a versão do PHP e outros requisitos. Em Servidor > Informação do PHP, os administradores veem além disso os dados completos do PHP. Ambos descrevem o PHP web.

O Moodle precisa também de uma tarefa cron que execute regularmente admin/cli/cron.php através do PHP da linha de comandos. Esta versão pode divergir e também tem de ter o patch aplicado. As versões upstream corrigidas são 8.5.12, 8.4.27, 8.3.36 e 8.2.35; os backports têm muitas vezes números mais antigos. Quais as versões do PHP que a sua versão do Moodle suporta, verifique-o nos requisitos de sistema da documentação em moodle.org. Como reiniciar depois todos os processos de forma limpa, está em Reiniciar o PHP-FPM e todos os workers.

Pastas e configuração no Moodle

Local Conteúdo Ponto de verificação
config.php Acesso à base de dados, wwwroot, caminho para moodledata Código inserido, alterar a palavra-passe em caso de suspeita
moodledata/ Armazenamento de ficheiros, entregas, sessões, caches Fora da raiz de documentos, sem ficheiros PHP
mod/, blocks/, local/, theme/ Atividades, blocos, extensões locais, designs Plugins desconhecidos ou alterados
admin/cli/ Scripts de linha de comandos Utilizáveis apenas por CLI

O Moodle oferece uma definição que impede a alteração de caminhos de programas através da interface web. Pertence ao config.php e dificulta chamar programas no servidor através de uma conta de admin sequestrada:

$CFG->preventexecpath = true;

Verificações inofensivas na linha de comandos, como utilizador do servidor web:

# Mostrar as verificações de estado e de segurança do próprio Moodle
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Procurar ficheiros PHP no diretório de dados (adaptar o caminho)
find /pfad/zu/moodledata -type f -name "*.php"
Importante

Perante uma suspeita de fuga de dados numa escola ou universidade, ficam rapidamente envolvidas várias entidades: direção da escola, entidade titular, encarregados de proteção de dados e, eventualmente, a autoridade de controlo. Guarde os registos a partir de 20/10/2026 e documente cada medida com a hora.

Plugins, contas de admin e uploads

Uma indicação prática para o planeamento: as atualizações do PHP e os reinícios não devem coincidir com períodos de exames ou testes online em curso. O Moodle tem um modo de manutenção que informa previamente os utilizadores. Contra o PHP2Shell, porém, não protege, pois também a página de manutenção é entregue pelo PHP.

O Moodle vive de plugins: atividades, ferramentas de avaliação, ligações a videoconferências e à gestão escolar. Cada plugin é código PHP adicional e tem de ser compatível com a versão do Moodle. Em Administração do site, o Moodle mostra as atualizações disponíveis para o núcleo e para os plugins. Remova por completo os plugins que já ninguém usa.

Verifique a lista dos administradores do site e as funções globais com direitos abrangentes. Os professores e os criadores de cursos normalmente não precisam de direitos globais. Ative a autenticação de dois fatores pelo menos para os administradores. Os tipos de ficheiro permitidos para uploads devem ser tão restritos quanto possível; indicações sobre isso oferece Implementar uploads de ficheiros em PHP em segurança.

O que uma atualização do Moodle consegue e o que não consegue

Uma atualização do Moodle corrige falhas no Moodle e permite muitas vezes versões mais recentes do PHP. Não aplica patch ao PHP, não reinicia nem processos web nem de cron e não remove ficheiros alheios de moodledata, administradores adicionais nem plugins alterados. Também se, no período anterior ao patch, houve fuga de dados, é algo que uma atualização não responde.

O Moodle regista os inícios de sessão e as ações também em registos próprios, que os administradores consultam em Administração do site > Relatórios. Procure aí especificamente inícios de sessão invulgares de administradores, novas contas com funções globais e instalações de plugins desde 17/10/2026. Exporte estas entradas antes que limpezas automáticas apaguem dados mais antigos. Os relatórios complementam os registos do servidor web, mas não os substituem.

Como ajuda concretamente a PHP SOS?

  • Esclarecemos a responsabilidade pelo PHP e fazemos confirmar o estado do patch e o reinício de web e cron.
  • Guardamos registos, base de dados e moodledata antes de qualquer alteração.
  • Verificamos configuração, plugins, administradores, funções e uploads.
  • Se pretender, acompanhamos a plataforma de forma permanente no contrato de manutenção de segurança, articulado com o ano letivo e os períodos de exames.

Perguntas frequentes

O Moodle é afetado pelo PHP2Shell?

O Moodle em si não tem uma nova vulnerabilidade, mas corre em PHP. Se o PHP do servidor não tiver patch, um atacante pode, segundo a equipa do PHP, executar código sem autenticação. Uma atualização do Moodle não altera isso.

Onde vejo a versão do PHP no Moodle?

Em Administração do site > Servidor > Ambiente, o Moodle verifica a versão do PHP em relação aos seus requisitos. O Moodle não mostra se foi aplicado um backport; isso é confirmado pelo operador do servidor.

Porque tem o moodledata de ficar fora do diretório web?

Aí ficam os ficheiros carregados, as entregas, as sessões e as caches. Se o diretório for acessível pela web, os conteúdos podem eventualmente ser obtidos diretamente. O Moodle exige, por isso, um local fora da raiz de documentos.

Quem é responsável pela atualização do PHP nas escolas?

Varia: a entidade titular da escola, um organismo estadual, um centro de dados municipal ou um prestador de serviços. Esclareça a responsabilidade por escrito e faça-se confirmar o estado do patch e o reinício.

Fontes

Contacto imediato

Cada hora conta. Escreva-nos agora.

Descreva brevemente o sistema, a versão do PHP e o que observou. Entramos em contacto consigo, esclarecemos a situação e trabalhamos remotamente até o incidente estar concluído e documentado.

Ajuda imediata