A basic flaw in the password software used by MySQL and MariaDB allows a brute-force attack to bag the password and gain full root access in a few seconds, according to details published by security researchers.
MariaDB security coordinator Sergei Golubchik explained the flaw, which involves a casting error when passwords are checked using the memcmp function, giving a one-in-256 chance of access being allowed whatever the login.
"If one knows a user name to connect (and "root" almost always exists), she can connect using *any* password by repeating connection attempts. ~300 attempts takes only a fraction of second, so basically account password protection is as good as nonexistent," Golubchik said.
He assured that gcc built-in memcmp and BSD libc memcmp are safe, but Linux glibc sse-optimized memcmp is not where memcmp() can return an arbitrary integer outside of the -128..127 range. MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, and 5.5.22 should be considered at risk.
According to testing by MetaSploit creator HD Moore, 64-bit Ubuntu versions 10.04, 10.10, 11.04, 11.10, and 12.04 are all vulnerable, as is Fedora and OpenSUSE 12.1 64-bit MySQL 5.5.23. Debian and Gentoo's 64-bit Linux builds appear to be in the clear, as are official builds of MySQL and MariaDB (the latter released in April); Red Hat has confirmed its Enterprise Linux 4, 5, and 6 are secure.
Moore said that a quick scan of 1.74 million MySQL servers showed over 50 per cent (879,046 against 863,920) were vulnerable to the attack, and that security testers have already built software that could fully exploit the flaw.
Oracle has already dealt with this issue in its April security update, and there are separate patches for MariaDB and MySQL. Admins are advised to regard this as a priority, given the simplicity of the attack. ®