CVE-2012-2122: MySQL bejelentkezés átjátszás (authentication bypass)
Leírás:
Pár hónapja találtak egy komoly biztonsági rést a MySQL legelterjettebb verzióiban, amelynek kihasználásával átjátszható a bejelentkezés. A bug az összes MySQL verziót érinti (egészen az 5.1.61, 5.2.11, 5.3.5, 5.5.22-es verziókig) + az összes MariaDB verziót.
A kihasználáshoz elegendô tudni egy létezô MySQL/MariaDB felhasználónevet (általában létezik root felhasználó). A sebezhetôség lényege , hogy bejelentkezéskor kigenerálódik egy token (titkosított jelszó + random karakterlánc) majd összehasonlítódik egy várt értékkel. Ez eddig biztonságosnak hallatszik, de az összehasonlítások során egyszer-egyszer a bejelentkezô rendszer elfogadja a tokent, még akkor is, ha a memcmp() függvény egy zérótól eltérô értéket ad vissza. Mivel a protokol random karakterláncot használ, a jogosulatlan bejelentkezés eséje 1:256.
Bash szkript:
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
Python szkript:
Védekezés:
Külsô bejelentkezések tiltása: nyisd meg notepaden keresztül a my.cnf fájlt, keresd meg a [mysqld] konfigurációkat, majd módosítsd (vagy szúrd be) a "bind-address" beállítás paramétetét "127.0.0.1"-re. A végén indítsd újra a MySQL-t, hogy a beállításod érvényesülhessen.