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"
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
moodledataantes 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.