Skip to content
Rejoignez le forum de la communauté Censys : Se connecter, partager et prospérer ! | Commencez ici
Blogs

CVE-2022-1388 : Vulnérabilité REST de F5 BIG-IP iControl

Introduction

Le 4 mai 2022, F5 a publié un avis de sécurité concernant une vulnérabilité dans le système iControl REST de BIG-IP qui pourrait permettre à un attaquant de contourner l'authentification du logiciel et d'exécuter des commandes arbitraires. Cette vulnérabilité a été classée CVE-2022-1388 par le NIST.

Les versions vulnérables de ce dispositif sont les suivantes (et peuvent être trouvées sur le système de fichiers du dispositif dans "/etc/f5-release")

  • 16.1.0 - 16.1.2
  • 15.1.0 - 15.1.5
  • 14.1.0 - 14.1.4
  • 13.1.0 - 13.1.4
  • 12.1.0 - 12.1.6
  • 11.6.1 - 11.6.5

These potentially vulnerable devices can be found using a simple Censys search query: (services.http.response.html_title: “BIG-IP&reg;- Redirect”) or services.http.response.html_tags=`<meta name=”description” content=”F5 Networks Configuration Utility.”>`

À l'heure où nous écrivons ces lignes, la base de données Censys compte un peu plus de 3 000 services et un peu plus de 2 500 hôtes ou hôtes virtuels correspondant à cette empreinte. La majorité de ces hôtes résident en Asie, avec 38,8 % du total, tandis que l'Europe suit de près avec plus de 30 % du total.

Il a également été signalé que cette vulnérabilité est activement exploitée dans la nature, de sorte que les administrateurs doivent vérifier leurs actifs et les mettre à jour immédiatement.

Résumé technique

Plusieurs serveurs HTTP sont en cours d'exécution sur le serveur BIG-IP : Un serveur Apache pour les opérations frontales (écoutant sur une interface publique) et plusieurs serveurs web backend internes, y compris un serveur Jetty pour l'API REST iControl. Bien que les services backend ne soient pas accessibles au public, plusieurs chemins URI sont exposés sur le serveur frontend, qui sont mandatés en interne par le serveur Apache frontend avec mod_proxy.

Lorsqu'un utilisateur s'authentifie auprès du serveur Apache frontal, un module Apache personnalisé appelé mod_auth_pam est utilisé pour valider les informations d'identification entrantes. Mais si le client inclut un en-tête nommé "X-F5-Auth-Token", la validation des informations d'identification est reportée au service qui traite la requête et suppose que le service en aval fera ce qu'il faut (et rejettera les valeurs X-F5-Auth-Token invalides).

Mais le service de backend iControl présente un oubli logique assez intéressant. Lorsqu'une requête est envoyée directement au service via localhost, et que le "X-F5-Auth-Token" n' est pas présent, la requête est autorisée sans validation tant qu'un nom d'utilisateur valide est trouvé dans la section Authorization de la requête. L'idée (nous le supposons) est que toute requête locale devrait être intrinsèquement fiable, car il n'y avait aucun moyen pour un client externe d'exclure l'en-tête X-F5-Auth-Token (et de ne pas inclure les informations d'identification) sans être rejeté au niveau du frontend via mod_auth_pam.

Mais s'il existait un moyen de tromper mod_proxy pour qu'il supprime le "X-F5-Auth-Token" avant d'envoyer la requête au service local de backend ? Regardons la spécification HTTP/1.1, RFC7230, à la section 6.1 pour un indice :

Lorsqu'un champ d'en-tête autre que Connection est utilisé pour fournir des informations de contrôle pour ou sur la connexion en cours, l'expéditeur DOIT énumérer le nom du champ correspondant dans le champ d'en-tête Connection. Un proxy ou une passerelle DOIT analyser un champ d'en-tête Connection reçu avant qu'un message ne soit transmis et, pour chaque option de connexion dans ce champ, supprimer tout champ d'en-tête du message portant le même nom que l'option de connexion. 

Cette déclaration signifie que toute valeur de jeton non standard (close/keep-alive, etc.) trouvée dans cet en-tête est traitée comme un en-tête à supprimer lorsqu'on agit en tant que proxy. Ainsi, par exemple, si l'en-tête "Connection" d'un client contient la valeur "close,X-F5-Auth-Token", un serveur mandataire conforme à la RFC (comme Apache mod_proxy) supprimera l'en-tête X-F5-Auth-Token de la demande avant de l'envoyer au backend. C'est précisément de cette manière qu'un attaquant peut contourner les hypothèses initiales formulées par le service dorsal.

Une simple demande de test de vulnérabilité peut être faite à n'importe quel service BIG-IP en utilisant la commande curl suivante :

curl -H "Content-Type : application/json" \N -H "Host : localhost" -H "Content-Type : application/json" \N
  -H "Host : localhost" \N- -H "Connection : localhost" -H "Host : localhost" \N- -H
  -H "Connection : X-F5-Auth-Token, keep-alive" \N- H "X-F5-Auth-Token : 0" \N- H
  -H "X-F5-Auth-Token : 0" \N- -H
  -u admin : \
  https://$HOST/mgmt/tm/ltm/pool

Si la réponse est un statut HTTP 403, le dispositif n'est pas vulnérable. Dans le cas contraire, les administrateurs doivent immédiatement appliquer un correctif.

Que peut-on faire ?

  • Censys Lesclients d'ASM ont un risque activé sur leurs espaces de travail depuis le 4 mai 2022, date de la publication de la vulnérabilité.
  • Les utilisateurs de F5 BIG-IP doivent s'assurer qu'ils utilisent l'une des versions corrigées suivantes du logiciel :
    • v17.0.0
    • v16.1.2.2
    • v15.1.5.1
    • v14.1.4.6
    • V13.1.5
  • Consultez le site https://support.f5.com/csp/article/K23605346 pour plus d'informations sur les solutions de contournement et les correctifs.

Références

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1388
https://support.f5.com/csp/article/K23605346
https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/

A propos de l'auteur

Mark Ellzey
Chercheur principal en sécurité Tous les postes de Mark Ellzey
Mark Ellzey est chercheur principal en sécurité à l'adresse Censys. Avant d'occuper son poste actuel, Mark a travaillé pendant plus de 22 ans en tant qu'ingénieur en sécurité des réseaux et développeur de logiciels pour plusieurs fournisseurs de services Internet et institutions financières.
Solutions de gestion de la surface d'attaque
En savoir plus