fix: plancher pypdf >= 6.16.1 - deux DoS de ressources bloques le job security BUG-093
pip-audit bloquait sur PYSEC-2026-3910 (outlines) et PYSEC-2026-3911 (XForm), toutes deux atteignables via backend/pdf_reader.py. Le plancher pypdf>=4.0 ne protégeait rien : l'image Act du runner embarque 6.16.0 dans sa toolcache Python, donc pip répondait « already satisfied » sans jamais aligner. Au passage, le garde-fou TestSemgrepStep était en régression depuis la désactivation de semgrep (v2.39.9) et aurait rougi le job `test` : il vérifie désormais que l'étape n'exécute que son avertissement et que bandit et pip-audit restent bloquants. Nouveau TestDependencySecurityFloors pour verrouiller les planchers de sécurité (contre-preuve : pypdf remis à >=4.0). 🤖 Generated with Codebuff Co-Authored-By: Codebuff <[email protected]>
This commit is contained in:
+31
-1
@@ -6,7 +6,7 @@ Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
|
||||
et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
> **En cours de développement** : les changements à venir sont listés dans la section
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.39.9**.
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.39.10**.
|
||||
|
||||
---
|
||||
|
||||
@@ -14,6 +14,36 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
---
|
||||
|
||||
## [2.39.10] — 2026-09-29
|
||||
|
||||
### Sécurité
|
||||
|
||||
- **BUG-093 — deux DoS de ressources dans `pypdf` 6.16.0 (PYSEC-2026-3910,
|
||||
PYSEC-2026-3911) corrigés par le plancher `pypdf>=6.16.1`.**
|
||||
Un PDF peut provoquer un temps de calcul et une consommation mémoire
|
||||
arbitraires, soit via de nombreux contours (*outlines*), soit via une page
|
||||
portant beaucoup d'objets XForm réutilisés. ObsiGate est **directement
|
||||
exposé** : `backend/pdf_reader.py` extrait le texte et parcourt les contours
|
||||
de PDF fournis par l'utilisateur. Le plancher `pypdf>=4.0` ne protégeait
|
||||
rien en pratique — l'image du runner Act embarque 6.16.0 *préinstallé* dans
|
||||
sa toolcache Python, donc `pip` répondait « already satisfied » et
|
||||
n'alignait jamais la version. Tout plancher de sécurité doit désormais rester
|
||||
au-dessus de la version préinstallée.
|
||||
|
||||
### Correction
|
||||
|
||||
- **Le job CI `security` n'est plus rouge : la désactivation de semgrep
|
||||
fonctionne, et `pip-audit` est désormais réparé pour de bon.**
|
||||
Le garde-fou `tests/test_ci_workflow.py::TestSemgrepStep`, en régression
|
||||
depuis la désactivation (il exigeait encore l'exécution de semgrep),
|
||||
vérifie maintenant que l'étape n'exécute que son `::warning::` et que
|
||||
**bandit et pip-audit restent bloquants**. Nouveau garde-fou
|
||||
`TestDependencySecurityFloors` : les planchers de sécurité (`pypdf`,
|
||||
`pyjwt`) ne peuvent plus retomber sous leur correctif — contre-preuve
|
||||
vérifiée (plancher remis à `>=4.0` → test rouge).
|
||||
|
||||
---
|
||||
|
||||
## [2.39.9] — 2026-09-29
|
||||
|
||||
### Correction
|
||||
|
||||
Reference in New Issue
Block a user