An attack using invalid scalar/element values is possible against the EAP-pwd server since hostapd and wpa_supplicant did not validate these values in the received EAP-pwd-Commit messages. When processing an EAP-pwd Commit frame, the peer's scalar and element (elliptic curve point) were not validated. This allowed an adversary to bypass authentication, and impersonate any user if the crypto implementation did not verify the validity of the EC point. The vulnerability is only exploitable if OpenSSL version 1.0.2 or lower is used, or if LibreSSL or wolfssl is used. Newer versions of OpenSSL (and also BoringSSL) implicitly validate the elliptic curve point in EC_POINT_set_affine_coordinates_GFp(), preventing the attack. References: https://w1.fi/security/2019-4/eap-pwd-missing-commit-validation.txt https://wpa3.mathyvanhoef.com/ Upstream Patch: https://w1.fi/cgit/hostap/commit/?id=16d4f1069118aa19bfce013493e1ac5783f92f1d https://w1.fi/cgit/hostap/commit/?id=70ff850e89fbc8bc7da515321b4d15b5eef70581
Statement: This issue did not affect the versions of wpa_supplicant as shipped with Red Hat Enterprise Linux 5, 6 as they did not include support for EAP-pwd. This issue did not affect the versions of wpa_supplicant as shipped with Red Hat Enterprise Linux 7 as they are not compiled with EAP-pwd enabled. In particular, the CONFIG_EAP_PWD=y option is not set at compile time.
Acknowledgments: Name: Mathy Vanhoef (NYUAD), Eyal Ronen (Tel Aviv University & KU Leuven)
External References: https://w1.fi/security/2019-4/eap-pwd-missing-commit-validation.txt https://www.kb.cert.org/vuls/id/871675/