Vulnérabilité dans pam-u2f permettant de contourner l'authentification basée sur un jeton matériel

Les développeurs du projet openSUSE ont découvert une vulnérabilité (CVE-2025-23013) dans le module PAM pam-u2f, utilisé pour l'authentification avec des jetons YubiKey, Yubico Security Key, YubiHSM et d'autres appareils FIDO prenant en charge le protocole U2F (Universal 2nd Factor). Cette vulnérabilité permet à un utilisateur ayant un accès local non privilégié au système, dans certaines configurations PAM, de s'authentifier sans insérer le jeton matériel. En pratique, le module pam-u2f est généralement utilisé pour l'authentification à deux facteurs ou sans mot de passe avec des jetons (par exemple, pour confirmer les autorisations d'exécution des commandes via les outils su et sudo).

La vulnérabilité est causée par un retour incorrect de la fonction pam_sm_authenticate() de la valeur PAM_IGNORE. Cette valeur est renvoyée en cas d'erreur lors des appels de gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv() ou resolve_authfile_path(), ainsi qu’en cas de problèmes d’allocation de mémoire dans strdup() ou calloc(). Le problème est que la bibliothèque libpam, ayant reçu du module PAM un résultat avec le code PAM_IGNORE, renverra le code final PAM_SUCCESS, indiquant que l'authentification a réussi, si dans la chaîne de vérifications un autre module PAM a renvoyé un résultat d'authentification réussi.

Lors de l'utilisation du module pam-u2f en association avec pam_unix pour l'authentification à deux facteurs, la vulnérabilité permet de réussir l'authentification lorsque le mot de passe est validé, sans confirmation du deuxième facteur. Pour l'authentification sans mot de passe via le jeton matériel, pam-u2f peut être utilisé en combinaison avec le module PAM pam_faillock, qui limite le nombre de tentatives d'authentification et renvoie PAM_SUCCESS si la limite n'est pas atteinte.

Un exemple d'attaque serait le contournement de la vérification du jeton lors de l'exécution de commandes privilégiées par un utilisateur local, en utilisant les outils sudo et su. Lors de l'exécution de ces commandes, l'attaquant peut créer des conditions pour que le module pam-u2f renvoie la valeur PAM_IGNORE, par exemple, en épuisant la mémoire disponible. Le problème a été résolu dans la version pam-u2f 1.3.1.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster