Project

General

Profile

Actions

Feature #203

closed
CD

Mettre à jour jspdf@2.5.2 pour corriger 6 vulnérabilités HIGH (CVE-2025-57810 à CVE-2026-31898)

Feature #203: Mettre à jour jspdf@2.5.2 pour corriger 6 vulnérabilités HIGH (CVE-2025-57810 à CVE-2026-31898)

Added by Client Dashboard about 2 months ago. Updated about 1 month ago.

Status:
Shipped
Priority:
Normal
Assignee:
-
Start date:
06/15/2026
Due date:
% Done:

0%

Estimated time:
spec_ref:

## Spec — Mise à jour jspdf (frontend) pour corriger les CVE HIGH

### Portée RÉELLE (réduite après analyse code)
Le rendu PDF des contrats a migré côté serveur (Chromium/Playwright + Paged.js, #377). `src/lib/pdfUtils.js` n'utilise plus jsPDF (ancien chemin html2canvas/jsPDF supprimé ; n'expose plus que `downloadPdfDataUri`). Le SEUL usage frontend restant de jspdf est :
- `src/components/events/BudgetExcelExport.jsx` (`import { jsPDF } from 'jspdf'`, `new jsPDF()` ~l.240) — export PDF d'un budget.

Côté serveur, `server/package.json` est déjà sur jspdf@4.2.1 (non vulnérable). Le défaut résiduel est donc UNIQUEMENT `package.json` racine (frontend) bloqué sur jspdf@^2.5.2.

### Correctif proposé (frontend uniquement)
1. Bumper `jspdf` ^2.5.2 -> ^4.x dans le `package.json` racine (aligné sur le serveur, 4.2.1).
2. Adapter/vérifier `BudgetExcelExport.jsx` à l'API jsPDF v4 (le constructeur `new jsPDF()` et `autoTable`/`text`/`save` peuvent avoir changé entre v2 et v4 — vérifier `jspdf-autotable` si utilisé, et la compat ESM).
3. Vérifier visuellement un export PDF de budget (mise en page, tableaux, totaux).
4. Si `jspdf-autotable` est présent, aligner sa version sur jspdf v4.

### Critères d'acceptation
- jspdf racine en ^4.x (>= 4.2.1) ; `npm install` OK ; build Vite OK.
- Export PDF du budget fonctionne sans régression (tableaux, totaux, mise en page).
- lint + typecheck verts.
- (Les ~10 tickets SecOps CVE jspdf@2.5.2 #97-106 sont couverts par ce bump et pourront être clôturés ensuite.)

### Portée : un seul lot frontend (package.json racine + BudgetExcelExport.jsx + vérif). Route : frontend (Vite/React src/).

build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
deployed
preprod_url:
deployed_at:
06/23/2026
branch:
pr_url:
security_key:
severity:
paused:

Description

### Problème
La bibliothèque **** (utilisée pour la génération de PDF dans Scobby) présente **6 vulnérabilités HIGH** non corrigées, identifiées par Trivy. Ces vulnérabilités permettent des attaques critiques telles que :
- **Exécution de code arbitraire** (via des entrées non sanitizées dans `createAnnotation` ou le module AcroForm).
- **Injection de PDF** (exécution de JavaScript malveillant via des boutons radio).
- **Déni de service (DoS)** (via des images BMP/GIF malformées ou allocation mémoire excessive).

### Contexte
- **Version actuelle** : (obsolète et vulnérable).
- **Versions corrigées** : De 3.0.2 à 4.2.1 selon les CVE.
- **Impact** : Risque élevé pour la sécurité des contrats générés (ex : exécution de code malveillant lors de l’ouverture d’un PDF par un utilisateur).

### Comportement attendu
1. Mettre à jour jspdf vers la **version 4.2.1** (la plus récente couvrant toutes les CVE).
2. Vérifier la **compatibilité** avec les fonctionnalités existantes de génération de PDF (ex : insertion de balises, signatures, logos).
3. Tester les scénarios critiques :
- Génération de contrats avec balises dynamiques.
- Intégration de signatures électroniques.
- Insertion d’images (logos, signatures scannées).

## Acceptance criteria
- [ ] jspdf est mis à jour vers la version **4.2.1** dans les dépendances du projet.
- [ ] Tous les tests de génération de PDF passent (contrats avec balises, signatures, logos).
- [ ] Aucune régression n’est observée sur les fonctionnalités suivantes :
- Remplacement des balises (`{{nom_artiste}}`, etc.).
- Positionnement des signatures (expéditeur/destinataire).
- Insertion du logo et mise en page.
- [ ] Un scan Trivy post-mise à jour confirme l’absence des CVE mentionnées.
- [ ] La documentation technique est mise à jour avec la nouvelle version de jspdf.

## Classification
- bug

## Complexity
- 7/10 — La mise à jour d'une bibliothèque critique comme jspdf nécessite des tests approfondis pour éviter les régressions sur les fonctionnalités de génération de PDF.


Files

Actions

Also available in: PDF Atom