Skip to content

fix: pin PHP 8.5.12 security release - #780

Merged
rondinelisaad merged 1 commit into
codex/php8-rocky9-migration-pushablefrom
codex/php-8.5.12-security
Oct 22, 2026
Merged

rondinelisaad merged 1 commit into
codex/php8-rocky9-migration-pushablefrom
codex/php-8.5.12-security

Conversation

@rondinelisaad

Copy link
Copy Markdown
Member

O que esse PR faz?

Atualiza e fixa a imagem da aplicação no PHP 8.5.12, versão de segurança que corrige as vulnerabilidades críticas CVE-2026-109618 e CVE-2026-109619, relacionadas à execução remota de código sem autenticação.

O PR também:

  • Compila o PHP a partir do código-fonte oficial.
  • Valida o pacote pelo SHA-256 publicado pelo PHP.
  • Verifica a versão e as extensões obrigatórias durante o build.
  • Impede a inicialização do contêiner caso a versão instalada não seja exatamente 8.5.12.
  • Adiciona PHP-FPM e sua integração com o Apache.
  • Faz o pipeline de release falhar se a imagem não contiver PHP 8.5.12.
  • Substitui no Docker Compose a antiga imagem infrascielo/metodologia:v7.1-qa, que não garantia a versão corrigida.
  • Documenta o procedimento de reconstrução e validação.

Onde a revisão poderia começar?

A revisão pode começar pelo arquivo:

docker/rocky9/Dockerfile

Ele contém a definição da versão do PHP, o checksum oficial, a compilação, as extensões habilitadas e as verificações executadas durante o build.

Depois, recomenda-se revisar:

docker/rocky9/entrypoint.sh
docker/rocky9/httpd-scielo.conf
docker-compose.yml
.github/workflows/release.yml

Como este poderia ser testado manualmente?

  1. Reconstruir a imagem sem utilizar cache:
docker compose build --no-cache scielo-web
  1. Confirmar a versão instalada:
docker compose run --rm --entrypoint php scielo-web -v

Resultado esperado:

PHP 8.5.12
Zend OPcache v8.5.12
  1. Verificar as extensões obrigatórias:
docker compose run --rm --entrypoint php scielo-web -r '
$required = [
    "curl", "dom", "gd", "libxml", "mbstring",
    "mysqli", "pdo_mysql", "simplexml", "xsl", "Zend OPcache"
];

foreach ($required as $extension) {
    if (!extension_loaded($extension)) {
        fwrite(STDERR, "Extensão ausente: {$extension}\n");
        exit(1);
    }
}

echo "Extensões validadas\n";
'
  1. Validar as configurações dos serviços:
docker compose run --rm --entrypoint php-fpm scielo-web -t
docker compose run --rm --entrypoint /usr/sbin/httpd scielo-web -t
  1. Executar os testes de regressão de segurança:
docker compose run --rm --entrypoint php scielo-web tests/security_regression.php
  1. Recriar e iniciar o serviço:
docker compose up -d --force-recreate
  1. Confirmar a versão no contêiner em execução:
docker compose exec scielo-web php -v

Algum cenário de contexto que queira dar?

Em 21 de outubro de 2026, o projeto PHP publicou atualizações emergenciais para duas vulnerabilidades críticas que permitem execução remota de código sem autenticação.

Segundo o comunicado oficial, instalações que atendem requisições web estão expostas, incluindo PHP-FPM e Apache com PHP. Não existem mitigações completas; a atualização é considerada a única correção segura.

A aplicação utilizava uma imagem Docker previamente publicada, sem garantia explícita da versão corrigida. Este PR torna a versão reproduzível e verificável durante o build, a inicialização do contêiner e o pipeline de release.

Screenshots

Não se aplica. A alteração afeta a imagem Docker, a infraestrutura de execução e o pipeline de release, sem modificações na interface gráfica.

Quais são tickets relevantes?

Não foi informado um ticket interno para esta alteração.

Referências de segurança relacionadas:

  • CVE-2026-109618
  • CVE-2026-109619

Referências

@rondinelisaad
rondinelisaad merged commit 19bcc8b into codex/php8-rocky9-migration-pushable Oct 22, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant