Le middleware i18n de nginx-ignition accepte un en-tête HTTP Accept-Language non filtré. Des séparateurs « _ » contournent une protection existante du parseur et permettent une consommation CPU quadratique, conduisant à un déni de service distant non authentifié.
Analyse technique
Le middleware global i18n transmet l’en-tête Accept-Language brut à golang.org/x/text/language.ParseAcceptLanguage sans filtrage de taille ou de forme. Les séparateurs _ sont normalisés pendant l’analyse mais ne sont pas comptabilisés par la protection visant les caractères -. Des listes longues de balises malformées déclenchent alors un chemin de traitement quadratique avant l’exécution de chaque route HTTP.
Impact, versions et correctif
Détection / vérification
Rechercher dans les journaux HTTP des en-têtes Accept-Language exceptionnellement longs, contenant de nombreuses séquences avec _, et corréler ces requêtes à des pics de latence ou de CPU du processus nginx-ignition.
Action recommandée
Mettre en place une limitation au reverse proxy ou à l'application sur Accept-Language, déployer le correctif de l'éditeur lorsqu'il est disponible et surveiller les accès HTTP anormaux.
Sources
Priorisation DFS : P3 · confiance de recoupement standard · 1 source(s).