L'ANSSI audite HAProxy : zéro vulnérabilité trouvée dans le code source

L'ANSSI audite HAProxy : zéro vulnérabilité trouvée dans le code source

Un audit dans le cadre de l’évaluation des logiciels open-source critiques

Cet audit s’inscrit dans le programme de l’ANSSI visant à évaluer la sécurité des composants open-source critiques utilisés dans les infrastructures françaises et européennes. HAProxy, utilisé par des millions de serveurs dans le monde pour le load balancing et le reverse proxy, était un candidat naturel.

L’audit a été réalisé par le cabinet Almond ITSEF, un prestataire accrédité par l’ANSSI. La version auditée est HAProxy 3.2.5, et les résultats ont été publiés le 10 février 2026.

Méthodologie : une batterie de tests exhaustive

L’audit ne s’est pas limité à un simple survol du code. Les auditeurs ont déployé une méthodologie rigoureuse couvrant plusieurs axes :

Revue de code

L’ensemble du code source de HAProxy a été passé au crible manuellement par des experts en sécurité. Cette phase, la plus chronophage, vise à identifier les vulnérabilités logiques, les erreurs de gestion mémoire, les conditions de course (race conditions) et les failles d’injection.

Analyse statique

Des outils d’analyse statique automatisée ont scanné le code à la recherche de patterns connus de vulnérabilités : buffer overflows, integer overflows, use-after-free, null pointer dereferences, etc.

Fuzzing intensif

C’est sans doute la phase la plus impressionnante. Le fuzzing consiste à bombarder le logiciel avec des données aléatoires ou malformées pour tenter de provoquer des crashs ou des comportements inattendus. Les sessions de fuzzing ont duré de plusieurs jours à 25 jours selon les composants testés.

Résultat du fuzzing : zéro crash. HAProxy a encaissé des millions de requêtes malformées sans broncher, démontrant une robustesse exceptionnelle.

Tests de stress réseau

Des tests de charge et de stress réseau ont été menés pour évaluer le comportement de HAProxy sous pression extrême : connexions simultanées massives, paquets fragmentés, tentatives de déni de service, etc.

Résultats : un code source irréprochable

Le verdict de l’audit est sans appel : zéro vulnérabilité identifiée dans le code source de HAProxy. C’est un résultat extrêmement rare dans le monde de la sécurité informatique, où même les logiciels les plus matures présentent généralement quelques failles mineures.

La seule vulnérabilité découverte concerne la bibliothèque tierce mjson, une dépendance utilisée pour le parsing JSON. Cette faille a été déjà corrigée dans les versions ultérieures de la bibliothèque.

Les forces architecturales de HAProxy

L’audit met en lumière plusieurs choix architecturaux qui expliquent cette robustesse exceptionnelle :

Isolation des processus

HAProxy utilise un modèle maître/worker avec séparation de privilèges. Le processus maître fonctionne avec des privilèges élevés (pour se lier aux ports réservés comme le 80 et le 443), tandis que les processus workers qui traitent le trafic fonctionnent avec des privilèges réduits (unprivileged). Si un worker était compromis, l’attaquant n’obtiendrait que des droits limités.

Gestion mémoire personnalisée

Plutôt que de s’appuyer entièrement sur les allocateurs mémoire standard (malloc/free), HAProxy implémente sa propre gestion mémoire avec des pools dédiés. Cette approche réduit considérablement les risques de fragmentation mémoire, de fuites mémoire et de vulnérabilités liées à la heap.

Trois recommandations formulées

Malgré l’absence de vulnérabilités, les auditeurs ont formulé trois recommandations pour renforcer encore la sécurité :

  1. Contournement d’ACL via encodage d’URL : dans certaines configurations, il est théoriquement possible de contourner les règles ACL (Access Control List) en utilisant des URL encodées de manière non standard. La recommandation est d’activer systématiquement la normalisation des URL dans la configuration HAProxy.
  2. Page de statistiques exposant la version : la page stats de HAProxy, si elle est accessible publiquement, affiche la version exacte du logiciel. Cette information pourrait aider un attaquant à cibler des vulnérabilités connues. La recommandation est de protéger cette page par TLS et/ou VPN.
  3. Erreurs de configuration provoquant des segfaults : certaines combinaisons de paramètres de configuration invalides pouvaient provoquer des erreurs de segmentation (segfaults) au démarrage. Ces cas ont été identifiés et corrigés par l’équipe HAProxy.

Un verdict sans appel

La conclusion de l’audit est formulée en termes clairs : HAProxy est un « produit mature et sécurisé, fiable pour un usage en production ». Venant de l’ANSSI, cette évaluation a une portée considérable, notamment pour les administrations et entreprises françaises soumises aux exigences de sécurité de l’agence.

Pour les équipes qui hésitaient encore entre HAProxy et des solutions commerciales de load balancing, cet audit constitue un argument de poids. Aucun load balancer commercial n’a jamais reçu un tel blanc-seing de la part de l’ANSSI.

Ce que cela signifie pour l’écosystème open-source

Au-delà de HAProxy, cet audit envoie un signal fort : les logiciels open-source critiques, quand ils sont développés avec rigueur, peuvent atteindre un niveau de sécurité égal voire supérieur à celui des solutions propriétaires. Le programme d’audit de l’ANSSI, en évaluant publiquement ces composants, renforce la confiance dans l’open-source et encourage les bonnes pratiques de développement sécurisé.

Ce qu’il faut retenir

L’audit commandé par l’ANSSI et réalisé par Almond ITSEF confirme ce que les administrateurs systèmes savaient intuitivement : HAProxy est un logiciel exceptionnellement fiable et sécurisé. Zéro vulnérabilité dans le code source, zéro crash après des semaines de fuzzing, une architecture exemplaire. Les trois recommandations mineures formulées relèvent davantage de bonnes pratiques de configuration que de failles intrinsèques. Un résultat remarquable qui fait honneur à la communauté open-source.