En bref

  • CVE-2026-40575 (CVSS 9,1) : contournement d'authentification dans OAuth2 Proxy via spoofing du header X-Forwarded-Uri.
  • Versions affectées : OAuth2 Proxy 7.5.0 à 7.15.1 lorsque --reverse-proxy est activé avec --skip-auth-regex ou --skip-auth-route.
  • Mettre à jour vers OAuth2 Proxy v7.15.2 et configurer le nouveau flag --trusted-proxy-ip.

Les faits

Le 22 avril 2026, le projet OAuth2 Proxy a publié un advisory de sécurité pour la CVE-2026-40575, une vulnérabilité critique de contournement d'authentification avec un score CVSS 3.1 de 9,1. OAuth2 Proxy est un composant très largement déployé pour ajouter une couche d'authentification OAuth2/OIDC devant des applications internes, des dashboards ou des APIs, et il est utilisé comme brique de sécurité par de nombreuses stacks Kubernetes, des plateformes d'observabilité (Grafana, Prometheus) et des outils internes d'entreprise. La faille permet à un attaquant distant non authentifié de contourner complètement l'authentification et d'accéder à des routes protégées en manipulant un simple en-tête HTTP. Le correctif est disponible dans la version 7.15.2 publiée simultanément avec l'advisory.

Le problème provient du fait qu'OAuth2 Proxy, lorsqu'il est exécuté avec le flag --reverse-proxy et dispose de règles --skip-auth-regex ou --skip-auth-route configurées, fait confiance sans vérification à l'en-tête X-Forwarded-Uri fourni par le client. Un attaquant peut alors forger cet en-tête pour faire évaluer les règles de bypass d'authentification sur un chemin différent de celui réellement envoyé à l'application amont. Concrètement, un attaquant peut envoyer une requête vers un endpoint sensible comme /admin/users tout en indiquant via X-Forwarded-Uri: /public/health que la règle de skip-auth s'applique, ce qui provoque le relais de la requête à l'application sans session valide.

Le problème est aggravé par le fait que de nombreuses configurations par défaut et des tutoriels publics recommandent l'utilisation de --skip-auth-regex pour exempter les endpoints de health check, de métriques ou de webhooks. Ces configurations deviennent toutes exploitables dès lors qu'OAuth2 Proxy fait confiance aux en-têtes du client sans filtrage au niveau du reverse proxy amont. Le maintainer a introduit un nouveau flag --trusted-proxy-ip dans la v7.15.2 qui restreint l'acceptation des en-têtes X-Forwarded-* aux seules adresses IP listées.

Impact et exposition

Toute organisation utilisant OAuth2 Proxy entre 7.5.0 et 7.15.1 avec la combinaison --reverse-proxy et règles de skip-auth est potentiellement exposée. Les conséquences directes vont de la lecture non autorisée de données métier à la prise de contrôle de consoles d'administration, en passant par le vol de tokens de session et le pivot vers d'autres systèmes internes. Les stacks Kubernetes utilisant OAuth2 Proxy comme oauth2-proxy-ingress-nginx, ou en sidecar devant des dashboards Kiali, Argo CD, Grafana, Prometheus, Jaeger sont typiquement concernées. Cette faille rappelle des contournements d'authentification similaires comme CVE-2025-32975 sur Quest KACE SMA ou CVE-2026-24061 sur GNU telnetd.

L'exploitation est triviale : un simple curl avec un en-tête HTTP forgé suffit. Aucune authentification préalable, aucun PoC complexe, aucune condition particulière en dehors de la configuration vulnérable ne sont requis. Des scans automatisés à l'échelle d'internet sont attendus dans les jours qui suivent la publication de l'advisory. Cette classe de vulnérabilité s'apparente à celles récemment découvertes dans d'autres briques d'infrastructure comme CVE-2026-22564 sur Ubiquiti UniFi Play ou CVE-2026-3055 sur Citrix NetScaler.

Recommandations immédiates

  • Mettre à jour OAuth2 Proxy vers la version 7.15.2 ou supérieure et configurer le flag --trusted-proxy-ip avec les IP ou CIDR de vos reverse proxies légitimes.
  • Strip systématiquement l'en-tête X-Forwarded-Uri au niveau du reverse proxy amont (nginx, HAProxy, Traefik, Envoy) avant transmission à OAuth2 Proxy.
  • Réécrire explicitement X-Forwarded-Uri avec la véritable URI de la requête côté reverse proxy avant forwarding.
  • Restreindre l'accès direct à OAuth2 Proxy : ne l'exposer que derrière un reverse proxy de confiance, jamais directement accessible sur internet.
  • Supprimer ou réduire au strict minimum les règles --skip-auth-route et --skip-auth-regex : privilégier des allowlists d'IP ou d'autres mécanismes d'authentification.

⚠️ Urgence

Exploitation triviale via un en-tête HTTP forgé, CVSS 9,1 et aucune authentification requise. Les endpoints exposés derrière OAuth2 Proxy avec configuration vulnérable doivent être considérés comme publiquement accessibles jusqu'à l'application du correctif. Des scans automatisés à grande échelle sont à prévoir dans les 72 heures suivant la publication de l'advisory du 22 avril 2026.

Comment vérifier si ma configuration est vulnérable ?

Inspecter la ligne de commande ou la configuration de votre OAuth2 Proxy avec oauth2-proxy --version et rechercher les flags --reverse-proxy, --skip-auth-regex et --skip-auth-route. Si ces flags coexistent sur une version entre 7.5.0 et 7.15.1, la configuration est exploitable. Tester en envoyant une requête curl -H "X-Forwarded-Uri: /public/health" https://app.example.com/admin/protected : si la réponse contient du contenu protégé, la faille est exploitable.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

Demander un audit