Skip to content

v4.0.3 — Correctifs de sécurité

Choose a tag to compare

@oli217 oli217 released this 15 Aug 07:54
· 1 commit to main since this release

Correctifs de sécurité

🟠 XSS potentiel dans headertext (via attributs HTML)

strip_tags() ne supprime pas les attributs à l'intérieur des balises autorisées (<span onmouseover="..."> survivait). Remplacé par wp_kses() avec une allowlist stricte sur les tags et leurs attributs :

  • headertext / headertext_* : b, strong, i, em, span[style] — aucun attribut événementiel possible
  • footer / footer_* : wp_kses_post() — plus robuste que strip_tags() sur les attributs
  • headerimg_notice : <a> limité à href, title, rel, target

Ajout de wp_kses_post() au point de rendu pour le cas just_text de get_header().

🟡 Whitelist des clés dans validate_theme_options()

Les données POST pouvaient contenir des clés arbitraires stockées après sanitisation. Ajout d'un array_filter() en tête de validate_theme_options() : seules les clés de get_default_theme_options() et les suffixes de traduction connus (footer_*, headertext_*) sont conservées.

🟠 Mail Builder CPT : capacités restreintes à manage_options

Le custom post type wphtmlmail_mail utilisait capability_type => 'post' (accessible aux editor et author). Ajout d'un tableau capabilities mappant toutes les opérations CPT sur manage_options. La vérification dans save_post est passée de edit_posts à manage_options.