Spaces:
Running
fix(docker): patch Debian + setuptools/wheel CVEs (Trivy CI remediation)
Browse filesTrivy v0.36.0 a remontΓ© 26 vulnΓ©rabilitΓ©s HIGH/CRITICAL sur l'image
docker construite depuis ``python:3.11.13-slim`` :
- 20 CVE OS-level (libc6, libssl3t64, openssl, openssl-provider-legacy)
- 6 CVE Python (setuptools 65.5.0/65.5.1, wheel 0.45.1)
Correctifs appliquΓ©s au Dockerfile (builder + runtime) :
1. ``apt-get upgrade -y`` AVANT ``apt-get install`` pour rΓ©cupΓ©rer les
patches Debian disponibles dans le repo stable (libssl3t64, libc6,
opensslβ¦). La base ``python:3.11.13-slim`` n'embarque pas ces
patches par dΓ©faut.
2. Upgrade explicite de la copie système de ``pip``, ``setuptools`` et
``wheel`` (en dehors du venv) β Trivy scanne aussi
``/usr/local/lib/python3.11/site-packages`` indΓ©pendamment du venv :
- pip>=24.2
- setuptools>=78.1.1 (CVE-2022-40897, CVE-2024-6345, CVE-2025-47273)
- wheel>=0.46.2 (CVE-2026-24049)
3. Idem dans le venv créé par ``pip install -e``.
Note SPECS.md : remontΓ©e d'une rΓ©gression du test
``test_specs_addendum_present`` (test attend le mot ``Addendum`` avec
majuscule, le SPECS v2 le portait en minuscule depuis A14).
``addendum`` β ``Addendum`` Γ la ligne unique de la Β§12 ``Migration v1
β v2``.
Refs:
- Audit institutional-readiness-2026-05 (sprint A14)
- Trivy CI run prΓ©cΓ©dent (26 CVE remontΓ©es)
https://claude.ai/code/session_013YP6f4LxfLKTZgmY1tucX7
- Dockerfile +49 -26
- SPECS.md +1 -1
|
@@ -43,24 +43,36 @@ FROM ${PYTHON_BASE_IMAGE} AS builder
|
|
| 43 |
|
| 44 |
WORKDIR /app
|
| 45 |
|
| 46 |
-
#
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
# Copier les fichiers de configuration du package
|
| 53 |
COPY pyproject.toml .
|
| 54 |
COPY README.md .
|
| 55 |
COPY picarones/ picarones/
|
| 56 |
|
| 57 |
-
# CrΓ©er un venv isolΓ© et installer Picarones avec les extras web
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
|
|
|
|
|
|
| 61 |
pip install -e ".[web,llm]" && \
|
| 62 |
pip cache purge
|
| 63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 65 |
# Γtape 2 : runtime β image finale lΓ©gΓ¨re avec Tesseract
|
| 66 |
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
@@ -78,23 +90,34 @@ LABEL org.opencontainers.image.licenses="Apache-2.0"
|
|
| 78 |
WORKDIR /app
|
| 79 |
|
| 80 |
# ββ DΓ©pendances systΓ¨me βββββββββββββββββββββββββββββββββββββββββ
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
|
| 99 |
# ββ Venv Python depuis le builder ββββββββββββββββββββββββββββββ
|
| 100 |
COPY --from=builder /opt/venv /opt/venv
|
|
|
|
| 43 |
|
| 44 |
WORKDIR /app
|
| 45 |
|
| 46 |
+
# Sprint A14 (correctif suite scan Trivy CI) β applique en prioritΓ© les
|
| 47 |
+
# patches Debian disponibles AVANT d'installer build-essential/git, pour
|
| 48 |
+
# Γ©viter d'embarquer les CVE de la base image (libssl3t64, libc6, etc.).
|
| 49 |
+
RUN apt-get update && \
|
| 50 |
+
apt-get upgrade -y && \
|
| 51 |
+
apt-get install -y --no-install-recommends \
|
| 52 |
+
build-essential \
|
| 53 |
+
git && \
|
| 54 |
+
apt-get clean && \
|
| 55 |
+
rm -rf /var/lib/apt/lists/*
|
| 56 |
|
| 57 |
# Copier les fichiers de configuration du package
|
| 58 |
COPY pyproject.toml .
|
| 59 |
COPY README.md .
|
| 60 |
COPY picarones/ picarones/
|
| 61 |
|
| 62 |
+
# CrΓ©er un venv isolΓ© et installer Picarones avec les extras web.
|
| 63 |
+
# Sprint A14 (correctif Trivy) : upgrade explicite de setuptools et wheel
|
| 64 |
+
# (CVE-2022-40897, CVE-2024-6345, CVE-2025-47273, CVE-2026-24049) avant
|
| 65 |
+
# l'install du package, sinon les versions hΓ©ritΓ©es de la base image
|
| 66 |
+
# Python (65.5.1 / 0.45.1) restent vulnΓ©rables.
|
| 67 |
+
RUN pip install --upgrade pip setuptools wheel && \
|
| 68 |
pip install -e ".[web,llm]" && \
|
| 69 |
pip cache purge
|
| 70 |
|
| 71 |
+
# Patch également la copie système de pip/setuptools/wheel (en dehors du
|
| 72 |
+
# venv) que Trivy dΓ©tecte via /usr/local/lib/python3.11/site-packages.
|
| 73 |
+
RUN /usr/local/bin/pip install --upgrade --no-cache-dir \
|
| 74 |
+
"pip>=24.2" "setuptools>=78.1.1" "wheel>=0.46.2"
|
| 75 |
+
|
| 76 |
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 77 |
# Γtape 2 : runtime β image finale lΓ©gΓ¨re avec Tesseract
|
| 78 |
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
|
|
| 90 |
WORKDIR /app
|
| 91 |
|
| 92 |
# ββ DΓ©pendances systΓ¨me βββββββββββββββββββββββββββββββββββββββββ
|
| 93 |
+
# Sprint A14 (correctif Trivy) : ``apt-get upgrade -y`` avant install
|
| 94 |
+
# pour rΓ©cupΓ©rer les patches de sΓ©curitΓ© Debian (libssl3t64, libc6,
|
| 95 |
+
# openssl, etc.) β la base image Python ne les inclut pas par dΓ©faut.
|
| 96 |
+
RUN apt-get update && \
|
| 97 |
+
apt-get upgrade -y && \
|
| 98 |
+
apt-get install -y --no-install-recommends \
|
| 99 |
+
# Tesseract OCR 5 et modèles de langues
|
| 100 |
+
tesseract-ocr \
|
| 101 |
+
tesseract-ocr-fra \
|
| 102 |
+
tesseract-ocr-lat \
|
| 103 |
+
tesseract-ocr-eng \
|
| 104 |
+
tesseract-ocr-deu \
|
| 105 |
+
tesseract-ocr-ita \
|
| 106 |
+
tesseract-ocr-spa \
|
| 107 |
+
# Bibliothèques image pour Pillow
|
| 108 |
+
libpng16-16 \
|
| 109 |
+
libjpeg62-turbo \
|
| 110 |
+
libtiff6 \
|
| 111 |
+
libwebp7 \
|
| 112 |
+
# Utilitaires
|
| 113 |
+
curl && \
|
| 114 |
+
apt-get clean && \
|
| 115 |
+
rm -rf /var/lib/apt/lists/*
|
| 116 |
+
|
| 117 |
+
# Patch pip/setuptools/wheel système du runtime (en dehors du venv).
|
| 118 |
+
# Trivy scanne /usr/local/lib/python3.11/site-packages indΓ©pendamment.
|
| 119 |
+
RUN /usr/local/bin/pip install --upgrade --no-cache-dir \
|
| 120 |
+
"pip>=24.2" "setuptools>=78.1.1" "wheel>=0.46.2"
|
| 121 |
|
| 122 |
# ββ Venv Python depuis le builder ββββββββββββββββββββββββββββββ
|
| 123 |
COPY --from=builder /opt/venv /opt/venv
|
|
@@ -809,7 +809,7 @@ L'**Γ©tat du plan institutionnel** au 2 mai 2026 :
|
|
| 809 |
## 12. Migration v1 β v2 β annexe historique
|
| 810 |
|
| 811 |
Pour les lecteurs qui avaient pris connaissance de SPECS v1.0
|
| 812 |
-
(mars 2025) ou de l'
|
| 813 |
migration des promesses changΓ©es :
|
| 814 |
|
| 815 |
| SPECS v1 disait | SPECS v2 documente | Raison |
|
|
|
|
| 809 |
## 12. Migration v1 β v2 β annexe historique
|
| 810 |
|
| 811 |
Pour les lecteurs qui avaient pris connaissance de SPECS v1.0
|
| 812 |
+
(mars 2025) ou de l'Addendum Sprints 16-30, voici la table de
|
| 813 |
migration des promesses changΓ©es :
|
| 814 |
|
| 815 |
| SPECS v1 disait | SPECS v2 documente | Raison |
|