Détournement des sessions TCP dans les tunnels VPN

Une vulnérabilité permettant de détourner les connexions VPN sur des systèmes *NIX et d'injecter des données arbitraires dans les flux TCP IPv4 et IPv6 a été découverte. 

CVE-2019-14899 [Score CVSS v3 : 7.4] : Cette vulnérabilité affecte la plupart des distributions Linux et des systèmes d'exploitation Unix comme FreeBSD, OpenBSD, macOS, iOS, et Android et permet à un attaquant présent dans le réseau local de déterminer si un autre utilisateur est connecté à un VPN, l'adresse IP virtuelle qui lui a été attribuée par le serveur VPN, et s'il y a ou non une connexion active à un site Web donné. 
De plus, l’attaquant pourrait déterminer les numéros des séquences et d'acquittements des sessions TCP en comptant les paquets chiffrés et/ou en examinant leur taille. Cela lui permet d'injecter des données dans le flux TCP et de voler ces sessions. 

Ces vulnérabilités concernet OpenVPN, WireGuard et IKEv2/IPSec, mais potentiellement aussi sur d'autres technologies VPN. 

Aucun exploit public n'a été publié, mais les détails techniques pour reproduire cette vulnérabilité sont disponibles. 

Informations
+

Risques

  • Atteinte à la confidentialité des données.
  • Usurpation d'identité. 

Criticité

  • Score CVSS : 7.4

Existence d’un code d’exploitation de la vulnérabilité

  • Il n'existe pas de code d'exploitation de la vulnérabilité. 

Composants & versions vulnérables

Les systèmes suivants ont été identifiés comme vulnérables :

  • Ubuntu 19.10
  • Fedora
  • Debian 10.2
  • Arch 2019.05 
  • Manjaro 18.1.1
  • Devuan 
  • MX Linux 19 
  • Void Linux
  • Slackware 14.2
  • Deepin 
  • FreeBSD
  • OpenBSD 
  • Tous les systèmes utilisant la configuration par défaut de systemd qui est sorti après le 28 novembre 2018. 

CVE

  • CVE-2019-14899 

Recommandations
+

Mise en place de correctif de sécurité

  • Appliquer les mises à jour de sécurité dès qu'elles sont disponibles.

Solution de contournement

  • La solution de contournement possible est l’activation du filtrage par chemin inverse (rp_filter) au niveau de la configuration du système. Le filtrage de chemin inverse est un mécanisme adopté par le noyau Linux, ainsi que par la plupart des périphériques réseau pour vérifier si une adresse source de paquet de réception est routable.