Vulnerabilidade Mysql Mariadb Cve 2012 2122
O Problema se encontra na função memcmp, compara dois blocos memória retornando entre -127 e 127, no entanto, algumas plataformas permitem que esta função retorne valores fora deste range fazendo com que eventualmente o trecho do código que compara o token, retorne como válido mesmo quando a senha não é válida.Como o protocolo usa strings aleatórias a probabilidade de conseguir root utilizando este bug é 1/256.
Ou seja o problema ocorre porque os programadores do MySQL não consideraram um resultado não esperado da função memcmp na Linux/GLIBC (Otimizado). Levando a ao bypass no protocolo de autenticação.
Versões atigindas:
- Ubuntu Linux 64-bit(10.04, 10.10, 11.04, 11.10, 12.04)
- OpenSuSE 12.1 64-bit mySQL 5.5.23-log
- Debian Unstable 64-bit 5.5.23-2
- Fedora
- ArchLinux
(Segundo [1])
PoC: $ for i in ´seq 1 1000´; do mysql -u root –password=bad -h 127.0.0.1 2>dev/null; done; mysql>
Obviamente um exploit mais completo já existe, e foi disponibilizado no metasploit(msfupdate) =)
Testei em um OpenBSD 4.5 MySQL 5.0.23(só de 4fun) fazendo as devidas alterações (Troquei o SEQ pelo JOT) e não funcionou =(