fix: aplica patches de segurança do SO na imagem do backend #72

Merged
jhony75 merged 1 commit from fix/backend-image-security-patches into develop 2026-09-17 05:49:14 -03:00
Owner

O último push em develop (merge da PR #71) falhou no job "Build e publicação de imagens", no step de scan de vulnerabilidades (Trivy) -- não tinha relação com o conteúdo da PR (só docs).

Causa raiz: 3 CVEs CRITICAL recém-publicadas em perl-base (CVE-2026-13221, CVE-2026-42496, CVE-2026-8376), todas já com correção no repositório do Debian (5.40.1-6 → 5.40.1-6+deb13u1). A imagem base python:3.12-slim do backend/Dockerfile nunca roda apt-get upgrade, então fica congelada no patch-level de quando essa camada foi baixada pela última vez -- não pega correções de segurança do SO automaticamente, mesmo sem nenhuma mudança de código nossa.

Fix: RUN apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/* logo após o FROM, antes de qualquer outra camada -- padrão comum pra esse tipo de problema.

Por que só o backend: frontend e docs (Dockerfile.docs) têm estágio final em nginx:alpine (não Debian) -- só o backend publica uma imagem final Debian-based, então só ele está exposto a esse tipo de CVE de pacote do SO.

Verificação: não foi possível buildar localmente (Docker Desktop não está rodando neste ambiente) -- a própria CI (build real + scan Trivy) é quem confirma que o fix funciona.

O último push em `develop` (merge da PR #71) falhou no job "Build e publicação de imagens", no step de scan de vulnerabilidades (Trivy) -- não tinha relação com o conteúdo da PR (só docs). **Causa raiz**: 3 CVEs `CRITICAL` recém-publicadas em `perl-base` (`CVE-2026-13221`, `CVE-2026-42496`, `CVE-2026-8376`), todas já com correção no repositório do Debian (`5.40.1-6` → `5.40.1-6+deb13u1`). A imagem base `python:3.12-slim` do `backend/Dockerfile` nunca roda `apt-get upgrade`, então fica congelada no patch-level de quando essa camada foi baixada pela última vez -- não pega correções de segurança do SO automaticamente, mesmo sem nenhuma mudança de código nossa. **Fix**: `RUN apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/*` logo após o `FROM`, antes de qualquer outra camada -- padrão comum pra esse tipo de problema. **Por que só o backend**: frontend e docs (`Dockerfile.docs`) têm estágio final em `nginx:alpine` (não Debian) -- só o backend publica uma imagem final Debian-based, então só ele está exposto a esse tipo de CVE de pacote do SO. **Verificação**: não foi possível buildar localmente (Docker Desktop não está rodando neste ambiente) -- a própria CI (build real + scan Trivy) é quem confirma que o fix funciona.
fix: aplica patches de seguranca do SO na imagem do backend
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 9s
EEG QA CI / Frontend (pull_request) Has been skipped
EEG QA CI / Backend (pull_request) Successful in 1m38s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 2m18s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
3c4c6c2c9e
O ultimo push em develop (merge da PR #71) falhou no scan de vulnerabilidades
(Trivy) do job "Build e publicacao de imagens" -- 3 CVEs CRITICAL recem-
publicadas em perl-base (2026-13221, 2026-42496, 2026-8376), todas ja com
correcao no repositorio do Debian. Nao tem relacao com o conteudo da PR (so
docs) -- e a imagem base python:3.12-slim que fica congelada no patch-level
de quando essa camada foi baixada pela ultima vez, sem nunca rodar apt-get
upgrade.

Fix padrao: roda apt-get update && apt-get upgrade -y logo apos o FROM, antes
de qualquer outra camada. Frontend/docs nao precisam do mesmo fix -- os dois
tem estagio final em nginx:alpine (nao Debian), so o backend publica uma
imagem final Debian-based.

Nao foi possivel validar a build localmente (Docker Desktop nao esta
rodando neste ambiente) -- a propria CI (build + scan Trivy) e quem confirma.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jhony75 merged commit 286e8765a9 into develop 2026-09-17 05:49:14 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!72
No description provided.