First published: Fri Nov 03 2017(Updated: )
It was discovered that the MySQL's sha256_password authentication plugin did not restrict the length password received from authenticating client before passing it to the my_crypt_genhash() function. This function implements SHA256 crypt password hashing algorithm that can also be used for hashing passwords in /etc/shadow on Linux systems. The algorithm is computationally intensive, and an excessively long passwords cause mysqld thread handling specific connection to consume all available CPU time. Additionally, the algorithm implementation in MySQL uses alloca() for memory allocation, which does not protect against stack overflow, possibly leading to memory corruption, process crash, and potentially code execution. Note that this issue affects deployments where non-default sha256_password authentication is configured for some or all database users.
Credit: secalert_us@oracle.com secalert_us@oracle.com
Affected Software | Affected Version | How to fix |
---|---|---|
redhat/mysql | <5.6.39 | 5.6.39 |
redhat/mysql | <5.7.21 | 5.7.21 |
debian/mysql-5.5 | ||
debian/mysql-5.7 | ||
MySQL | >=5.6.0<=5.6.38 | |
MySQL | >=5.7.0<=5.7.20 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2018-2696 is considered a critical vulnerability due to the potential for unauthorized access through inadequate password length restriction.
To fix CVE-2018-2696, upgrade your MySQL to version 5.6.39 or 5.7.21 or later versions.
CVE-2018-2696 affects MySQL versions lower than 5.6.39 and 5.7.21.
CVE-2018-2696 can lead to a potential denial-of-service condition or unauthorized access due to improper handling of password lengths.
There is no known workaround for CVE-2018-2696, thus upgrading is the recommended action.