Skip to content

fix(core): correction de sécurité sur le js des pictogrammes#1422

Open
keryanS wants to merge 2 commits intomainfrom
fix/injection-svg-security
Open

fix(core): correction de sécurité sur le js des pictogrammes#1422
keryanS wants to merge 2 commits intomainfrom
fix/injection-svg-security

Conversation

@keryanS
Copy link
Copy Markdown
Contributor

@keryanS keryanS commented Apr 28, 2026

Correction de sécurité — Chargement SVG inline (v1.14.x)

Suite à un signalement de vulnérabilité (DOM XSS), le mécanisme de remplacement d'images par des SVG inline a été renforcé :

Les SVG sont désormais sanitizés avant insertion dans le DOM (suppression des attributs d'événements, des balises non autorisées et des protocoles dangereux).
Le chargement est restreint à la même origine (same-origin) : tout SVG servi depuis un domaine externe ne sera plus injecté.
Le sélecteur CSS utilisé dans artwork.js.
Ce que cela peut impliquer pour vous

Si vos SVG sont hébergés sur un domaine ou un CDN tiers, ils ne seront plus chargés par ces composants. Il est nécessaire de les rapatrier sur la même origine que votre application, ou de les référencer en chemin relatif.

@keryanS keryanS requested a review from Copilot April 28, 2026 15:18
@keryanS keryanS self-assigned this Apr 28, 2026
@keryanS keryanS added correctif Quelque chose ne fonctionne pas maj 1.14.3 labels Apr 28, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Renforce la sécurité du mécanisme d’injection SVG inline (prévention DOM XSS) en ajoutant une sanitation du contenu SVG et en restreignant l’injection aux ressources same-origin.

Changes:

  • Ajout d’un utilitaire sanitize-svg pour nettoyer les SVG avant insertion DOM, et d’un helper isSameOrigin.
  • Application des contrôles same-origin + sanitation dans inject-svg.js (fetch) et artwork.js (XHR).
  • Durcissement du sélecteur dans artwork.js via CSS.escape lors de la recherche du <use> associé.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

File Description
src/dsfr/core/script/inject/inject-svg.js Bloque l’injection cross-origin et sanitize le <svg> chargé avant remplacement de l’<img>.
src/dsfr/core/script/artwork/artwork.js Bloque le chargement cross-origin, sanitize le contenu récupéré, et échappe svgName dans le sélecteur.
src/dsfr/core/script/api/utilities/sanitize-svg.js Nouveau module de sanitation SVG + helper same-origin.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/dsfr/core/script/artwork/artwork.js Outdated
Comment thread src/dsfr/core/script/artwork/artwork.js Outdated
Comment thread src/dsfr/core/script/api/utilities/sanitize-svg.js
Comment thread src/dsfr/core/script/api/utilities/sanitize-svg.js
Comment thread src/dsfr/core/script/api/utilities/sanitize-svg.js Outdated
@keryanS keryanS requested a review from Copilot April 28, 2026 15:58
@keryanS
Copy link
Copy Markdown
Contributor Author

keryanS commented Apr 28, 2026

TEST sur IE OK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

correctif Quelque chose ne fonctionne pas maj 1.14.3

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants