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

Risques

Déni de service (à distance)

Exploitation

La vulnérabilité exploitée est du type
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

•   CPython version 3.14.5 et supérieures (correctif confirmé via gh-149079)
•   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