Uma falha de segurança recém-descoberta no MySQL permite que usuários mal-intencionados obtenham acesso a um servidor de banco de dados, inclusive como root, mesmo utilizando uma senha inválida. O problema afeta servidores com várias distribuições Linux e a vulnerabilidade também pode ser explorada no MariaDB, uma variante desenvolvida pela comunidade.
Além de armazenar apenas o hash das senhas dos usuários, o MySQL também adiciona uma sequência de caracteres aleatórios para dificultar ataques de dicionário ou por força bruta. A senha que o usuário digitou para se conectar ao banco é criptografada e então comparada com o código secreto armazenado no banco de dados. Em determinadas situações, a senha digitada e o valor esperado são considerados iguais mesmo quando não são, permitindo o acesso.

Alguém está acessando um banco de dados sem autorização neste exato momento.
Com a falha na autenticação, qualquer pessoa que saiba algum nome de usuário registrado no servidor pode obter acesso, inclusive como root, com privilégios de exclusão dos bancos de dados. A probabilidade do acesso ser concedido sem autorização é de uma entre 256 tentativas, uma porcentagem relativamente baixa, graças ao sistema de caracteres aleatórios do MySQL. O problema é que centenas de tentativas de acesso podem ser feitas numa fração de segundo com um código simples em Shell Script, então o bug pode trazer grandes dores de cabeça para administradores de sistema.
A vulnerabilidade está presente nas versões 5.1.61, 5.2.11, 5.3.5, 5.5.22 e anteriores do MySQL e do MariaDB. Servidores de 64 bits com as distribuições Ubuntu, Arch Linux, openSUSE 12.1 e Fedora 16 contêm versões vulneráveis. A falha de segurança já foi corrigida em versões mais novas. Um desenvolvedor da Accuvant Labs desenvolveu um pequeno script para testar se o seu servidor é vulnerável, disponível neste link.
Com informações: Softpedia.







Assine pelo iTunes
Assine pelo Feed
Eita fail…
Isso só pode ser brincadeira.
Como eu disse no twitter quando vi essa falha, depois que o site do Mysql foi invadido via Sql Injection, não duvido de mais nada…
Que lindo.
(só que não)
Que coisa heim..
Duvida, como que testo esse script em meu site?
Você precisa ter acesso SSH e permissão para utilizar os compiladores.
Se tiver, salve o código (http://pastie.org/pastes/4064638/download) e compile com o comando:
gcc pastie-4064638.cpp -o pastie-4064638
Depois é só executar com o comando ./pastie-4064638
A falha está na função memcmp() que tem uma especificação meio vaga, e algumas implementações diferem na faixa de valores que podem ser retornados. O erro foi dos programadores que usaram um detalhe de implementação (algo implementado, mas não especificado pelo ‘contrato’ da função).
Só estão afetado os que compilarem versões próprias, e usarem a função memcmp() da glibc (que tem o problema).
Meus servidores estão seguros
No meu caso, instalei pelo apt-get Ubuntu Server e está vunerável, vou analisar os logs para ver se foi explorada no meu servidor.
No meu PC e notebook eu uso a versão 6.0.11 do mysql, mas depois que eu sair da cama vou testar…
O foda é que o server da maioria das hospedagem é 5.5 ou inferior, o que fica comprometido.
Ainda bem que eu não tenho dados intrisicos nos bancos.
Complementando:
=============
Don’t worry!!
Se você usa cpanel execute no terminal: /scripts/mysqlup ou ainda no whm siga o caminho: WHM: Main >> Software >> MySQL Upgrade
Obs: isso serve apenas para root!
Ao executar /scripts/mysqlup você atualizará para a versão MySQL-server-5.1.63-0.cloud (não vulnerável segundo a http://seclists.org)
http://seclists.org/oss-sec/2012/q2/493
MySQL e segurança nunca se entenderam.
Baseado em?
Fatos reais!
Exemplos?
Os DBA pira!
Como dizem no facebook: TENSO !
vish
Pra conseguir rodar o script de teste tive que adicionar três includes, pois tava dando erro na compilação:
pastie-4064638.cpp:14: error: ‘time’ was not declared in this scope
pastie-4064638.cpp:17: error: ‘getpid’ was not declared in this scope
pastie-4064638.cpp:21: error: ‘memcmp’ was not declared in this scope
Adicionei as três linhas:
#include
#include
#include
E foi necessário mudar a extensão do arquivo de .cpp para .c:
mv pastie-4064638.cpp pastie-4064638.c
Depois compilar conforme o @lamas disse:
gcc pastie-4064638.c -o pastie-4064638
Opa, falhou ali os caracteres:
#include time.h
#include string.h
#include unistd.h
Ou pode executar pelo g++, que ai não precisa mudar a extensão. A extensão cpp é de C++, por isso dá galho no gcc.
Mas os três includes precisam sim! Valeu ae pela dica.
Usem o mongodb
Pois é, meus servidores são CentOS 6.2 e estão sempre atualizados. Também uso as regras abaixo nos meus projetos.
http://informatica.com.br/profiles/blogs/usando-o-htaccess-parte-2-seguranca