Python - CVE-2026-3276
Date de publication :
Il s'agit d'une vulnérabilité dans la fonction unicodedata.normalize() du module standard unicodedata de CPython.
CPython est l'implémentation de référence du langage Python, sous licence libre. Il constitue l'interpréteur Python standard installé par défaut sur la majorité des systèmes Linux, macOS et Windows.
Cette fonction applique une normalisation Unicode (NFC, NFD, NFKC, NFKD) sur des chaînes de caractères. L'algorithme de tri canonique utilisé en interne est un tri par insertion dont la complexité est O(n²). Une entrée spécialement forgée contenant de longues séquences de caractères combinants dont les valeurs de Canonical Combining Class alternent, provoque une consommation excessive et non bornée de CPU. Toutes les formes de normalisation sont affectées.
Elle permet à un attaquant distant de provoquer un déni de service par épuisement CPU sur tout service Python exposé qui normalise des entrées utilisateur non filtrées.
Informations
La faille est activement exploitée : Non
Un correctif existe : Oui
Une mesure de contournement existe : Non
Déni de service (à distance)
Exploitation
CWE-407 : Inefficient Algorithmic Complexity
Détails sur l'exploitation
• Vecteur d'attaque : Réseau
• Complexité de l'attaque : Faible
• Privilèges nécessaires pour réaliser l'attaque : Aucun
• Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
• L'exploitation de la faille permet d'obtenir des droits privilégiés : Non
Preuve de concept
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.
Systèmes ou composants affectés
CPython toutes versions antérieures au correctif (toutes branches actives et EOL concernées, le module unicodedata étant présent depuis les premières versions)
Solutions ou recommandations
• Les versions corrigées pour les branches 3.13, 3.12 et antérieures ne sont pas encore officiellement publiées par la PSF au moment de la publication de cet avis