Mise a jour des dependances vulnerables (CVE)

Core : Spring Boot 3.2.12 (EOL) -> 3.5.14 (Tomcat 10.1.54, Spring 6.2.18,
Security 6.5.10, Netty 4.1.132), nimbus-jose-jwt 9.40 -> 10.9.1
(CVE-2025-53864), tink 1.14.1 -> 1.21.0 (protobuf CVE-2024-7254),
bcprov 1.78.1 -> 1.84, minio 8.5.11 -> 8.6.0 (okhttp -> okhttp-jvm 5.1.0),
commons-lang3 force a 3.20.0 (CVE-2025-48924).

Brain : pin explicite starlette>=0.49.1 (CVE-2025-54121, CVE-2025-62727) —
fastapi n'exige que >=0.46, le commentaire precedent etait une fausse garantie.

Verifie : 507 tests verts + JaCoCo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 14:42:13 +02:00
parent 49a94bb73e
commit 04816ae9df
2 changed files with 39 additions and 10 deletions

View File

@@ -1,4 +1,8 @@
fastapi==0.115.*
fastapi==0.136.*
# Pin EXPLICITE : fastapi n'exige que starlette>=0.46.0 — sans ce pin, un
# environnement existant peut garder une starlette vulnérable.
# >= 0.49.1 : corrige CVE-2025-54121 et CVE-2025-62727.
starlette>=0.49.1,<1.0
uvicorn[standard]==0.32.*
httpx==0.27.*
pydantic-settings==2.6.*
@@ -20,4 +24,6 @@ tiktoken==0.8.*
# (le binaire tesseract-ocr est installe dans le Dockerfile, langues fra+eng)
pymupdf==1.24.*
pytesseract==0.3.*
Pillow==11.*
# 12.2+ : corrige 6 CVE de parsing d'images (surface critique : pages de PDF
# uploadés par l'utilisateur rasterisées puis passées à l'OCR).
Pillow==12.2.*

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.12</version>
<version>3.5.14</version>
<relativePath/>
</parent>
@@ -20,6 +20,10 @@
<properties>
<java.version>17</java.version>
<!-- Override de la transitive minio → commons-compress → commons-lang3 3.17.
>= 3.18 : corrige CVE-2025-48924 (recursion infinie ClassUtils.getClass).
Propriete reconnue par le BOM Spring Boot → s'applique partout. -->
<commons-lang3.version>3.20.0</commons-lang3.version>
</properties>
<dependencies>
@@ -77,33 +81,52 @@
<scope>test</scope>
</dependency>
<!-- MinIO — client S3-compatible pour le stockage d'images (Shared Kernel images). -->
<!-- MinIO — client S3-compatible pour le stockage d'images (Shared Kernel images).
8.6.x = derniere ligne 8.x (la 9.x change l'API) ; transitives a jour. -->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.11</version>
<version>8.6.0</version>
<exclusions>
<!-- OkHttp 5 : l'artefact `okhttp` est un alias multiplateforme dont la
resolution vers les classes JVM passe par les metadonnees Gradle —
que Maven ignore. On exclut l'alias et on declare `okhttp-jvm`
(les vraies classes) explicitement ci-dessous. -->
<exclusion>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp-jvm</artifactId>
<version>5.1.0</version>
</dependency>
<!-- Nimbus JOSE+JWT — verification des JWT Ed25519 (EdDSA) emis par le relais
Patreon. Supporte nativement les cles Ed25519 via BouncyCastle. -->
Patreon. Supporte nativement les cles Ed25519 via BouncyCastle.
>= 10.0.2 : corrige CVE-2025-53864 (DoS par JSON profondement imbrique
dans le claim set — surface critique : JWT colle par l'utilisateur). -->
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>9.40</version>
<version>10.9.1</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>1.78.1</version>
<version>1.84</version>
</dependency>
<!-- Google Tink : runtime requis par com.nimbusds.jose.crypto.Ed25519Verifier
(depuis Nimbus 9.x, la verification EdDSA delegue a Tink.subtle.Ed25519Verify).
Tink n'est PAS une dependance transitive de nimbus-jose-jwt → il faut
l'ajouter explicitement, sinon NoClassDefFoundError au premier verify(). -->
l'ajouter explicitement, sinon NoClassDefFoundError au premier verify().
>= 1.15 : embarque un protobuf-java corrige (CVE-2024-7254). -->
<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.14.1</version>
<version>1.21.0</version>
</dependency>
</dependencies>