URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 102579
[ Назад ]

Исходное сообщение
"Уязвимость в утилите GNU sort "

Отправлено opennews , 15-Май-15 09:08 
В утилите sort, поставляемой в составе GNU Coreutils c используемым во многих дистрибутивах патчем i18n, выявлена (http://seclists.org/oss-sec/2015/q2/466) уязвимость (https://bugzilla.suse.com/show_bug.cgi?id=928749), которая может привести к переполнению буфера при обработке входных данных, содержащих UTF8-символы с большими кодами. Наличие проблемы подтверждено в openSUSE, RHEL и Fedora. Для устранения уязвимости подготовлен патч (https://github.com/pixelb/coreutils/commit/bea5e36c).


Протестировать подверженность дистрибутива проблеме можно при помощи команды:

<font color="#461b7e">
  printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f

  Error in `sort': free(): invalid next size (fast): 0x0000000000947ff0

</font>

URL: http://seclists.org/oss-sec/2015/q2/466
Новость: https://www.opennet.ru/opennews/art.shtml?num=42235


Содержание

Сообщения в этом обсуждении
"Уязвимость в утилите GNU sort "
Отправлено Xaionaro , 15-Май-15 09:08 
Debian Jessie (без обновления):

$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:35 
В убунтах 14.10 и 15.04 тоже не работает...

"Уязвимость в утилите GNU sort "
Отправлено anonymous , 15-Май-15 12:55 
14.04 тоже не подвержена

"Уязвимость в утилите GNU sort "
Отправлено Какаянахренразница , 15-Май-15 14:17 
12.04 тоже не подвержена

"Уязвимость в утилите GNU sort "
Отправлено GotF , 15-Май-15 17:34 
Там нет этого патча.

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 20:35 
Distributor ID: Debian
Description:    Debian GNU/Linux 7.8 (wheezy)
Release:        7.8
Codename:       wheezy


Всё пучком. Походу красношляпые проморгали чего то :)


"Уязвимость в утилите GNU sort "
Отправлено bircoph , 17-Май-15 10:59 
В Gentoo ~amd64 и ~x86 тоже:

$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a

Похоже, уязвимость только в сильно умных дистрах, лепящих сторонние патчи направо и налево.


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:12 
Debian Wheezy 7.8 backports
$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:17 
$   printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a
$ sort --version
sort (GNU coreutils) 8.23
Упакован Gentoo (8.23 (p1.0))
Copyright (C) 2014 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное ПО: вы можете изменять и распространять его.
Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.

Авторы программы -- Mike Haertel и Paul Eggert.


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:29 
Уязвимость RPM дистрибутивов, можем расходиться...

"Уязвимость в утилите GNU sort "
Отправлено Michael Shigorin , 15-Май-15 17:41 
> Уязвимость RPM дистрибутивов, можем расходиться...

Ох уж эти ламеры.

$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a
$ rpm -qf =sort
coreutils-8.22-alt1


"Уязвимость в утилите GNU sort "
Отправлено курлык , 15-Май-15 17:57 
Михаил, если будет варемя, ответьте п-ста на это https://www.opennet.ru/openforum/vsluhforumID3/102459.html#592

"Уязвимость в утилите GNU sort "
Отправлено Шкурка_от_головки , 15-Май-15 09:42 
Нужно чтоб все, прочитавшие новость, выложили свои выводы с шелла


~ > printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:50 
Gentoo stable, не работает:
> printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
> ɑ
> a

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:52 
archlinux:
printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:58 
Fedora 22:
$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
a
ɑ

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 09:59 
ХЗ работает или нет...
$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
*** glibc detected *** sort: free(): invalid pointer: 0x00000000008ee050 ***
ɑ
a

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 10:00 
CentOS 6.6

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 16:08 
> *** glibc detected *** sort: free(): invalid pointer: 0x00000000008ee050 ***

Поздравляю, Шарик, у тебя - работает. Уязвимость.


"Уязвимость в утилите GNU sort "
Отправлено Ананим1 , 15-Май-15 10:07 
Centos7
printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
*** Error in `sort': free(): invalid pointer: 0x00000000013d7050 ***
a
ɑ


"Уязвимость в утилите GNU sort "
Отправлено Zomby , 15-Май-15 10:14 
Mageia 5 RC:
printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
*** Error in `sort': free(): invalid pointer: 0x0000000002332050 ***
a
ɑ

"Уязвимость в утилите GNU sort "
Отправлено yet another anonymous , 15-Май-15 10:36 
Это еще раз демонстрирует проблему современных дистростроителей: вместо того, чтобы связываться с "авторами" при обнаружении проблемы, они таскают не-пойми-какие т.н. "стабильные версии" подпертые со всех сторон костылями.

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 11:49 
Иногда с авторами невозможно связаться, иногда принятие патча в апстрим занимает _годы_.

"Уязвимость в утилите GNU sort "
Отправлено yet another anonymous , 15-Май-15 13:21 
По моему опыту, попытка (!) связаться с авторами --- это скорее исключение из общего правила "нахреначить своих костылей в меру своего понимания проблемы и засунуть результат в пакет".

"Уязвимость в утилите GNU sort "
Отправлено GotF , 15-Май-15 17:36 
> Это еще раз демонстрирует проблему современных дистростроителей: вместо того, чтобы связываться
> с "авторами" при обнаружении проблемы, они таскают не-пойми-какие т.н. "стабильные версии"
> подпертые со всех сторон костылями.

Попробуй авторов GNU Coreutils убедить принять патч для полноценной поддержки UTF-8. Пока никому не удавалось.


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 16:09 
> никому не удавалось.

Зато редхату, блин, удалось. Повесить баг отсутствовавший в оригинале.


"Уязвимость в утилите GNU sort "
Отправлено GotF , 16-Май-15 17:29 
>> никому не удавалось.
> Зато редхату, блин, удалось. Повесить баг отсутствовавший в оригинале.

Баги есть везде. И их патч я хотел бы видеть в Debian, чтобы не приходилось привлекать утилиты из Plan 9 (9base) или Heirloom, когда мне нужна поддержка UTF-8 в tr.


"Уязвимость в утилите GNU sort "
Отправлено yet another anonymous , 18-Май-15 11:21 
Тот самый патч, который породил данную новость?

"Уязвимость в утилите GNU sort "
Отправлено GotF , 18-Май-15 16:37 
> Тот самый патч, который породил данную новость?

Ну что поделать, баги бывают везде.


"Уязвимость в утилите GNU sort "
Отправлено сис.админ_23rus , 15-Май-15 10:50 
ну и немного мамонта CentOS release 4.8 (Final)

printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
malloc: using debugging hooks
ɑ
a


"Уязвимость в утилите GNU sort "
Отправлено sdfgsdg , 15-Май-15 10:53 
Ждём уязвимостей в /bin/true и /bin/false.

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 11:50 
> Ждём уязвимостей в /bin/true и /bin/false.

Они не работают с данными.


"Уязвимость в утилите GNU sort "
Отправлено EuPhobos , 15-Май-15 13:27 
Ага, переполнение в /dev/null

"Уязвимость в утилите GNU sort "
Отправлено Случайный гость , 15-Май-15 16:59 
Не сочтите за троллинг, но всё же.

$ strace true
execve("/bin/true", ["true"], [/* 20 vars */]) = 0
brk(0)                                  = 0x93cc000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb774c000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=93781, ...}) = 0
mmap2(NULL, 93781, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7735000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240o\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1437864, ...}) = 0
mmap2(NULL, 1452408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb75d2000
mprotect(0xb772e000, 4096, PROT_NONE)   = 0
mmap2(0xb772f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15c) = 0xb772f000
mmap2(0xb7732000, 10616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7732000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75d1000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb75d18d0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb772f000, 8192, PROT_READ)   = 0
mprotect(0x804d000, 4096, PROT_READ)    = 0
mprotect(0xb776b000, 4096, PROT_READ)   = 0
munmap(0xb7735000, 93781)               = 0
exit_group(0)                           = ?

Думаю, тут можно притулить свой LD_PRELOAD


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 16:11 
> Думаю, тут можно притулить свой LD_PRELOAD

...и возвращать вместо TRUE FALSE? С ехидным бухтением про "счастливой отладки, сyки"? :)


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 11:25 
/tmp%  printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a
/tmp% uname -a
Linux nejdanchik 3.17.7-gentoo #3 SMP Tue Jan 20 10:39:51 MSK 2015 x86_64 Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz GenuineIntel GNU/Linux

С какими use-флагами собирать, чтобы уязвимость заработала?


"Уязвимость в утилите GNU sort "
Отправлено PnDx , 15-Май-15 12:02 
Сказано же: для внедрения уязвимости нужно пропатчить.
Шляпа и Сусь - пропатчили.

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 12:05 
$ uname -a
Linux comp-celeron-cpu-7ce4e6.localdomain 3.14.41-std-def-alt1 #1 SMP Thu May 7 12:49:34 UTC 2015 i686 GNU/Linux
[sb@comp-celeron-cpu-7ce4e6 ~]$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a

Alt Linux Simply 7.0.5


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 12:29 
printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a

P.S. grep NAME /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"

sort --version
sort (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное ПО: вы можете изменять и распространять его.
Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.

Авторы программы -- Mike Haertel и Paul Eggert.


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 13:10 
Linux Mint 17 - не работает.

"Уязвимость в утилите GNU sort "
Отправлено Есюки , 15-Май-15 13:24 
3.13.0-32-generic Ubuntu x86_64 GNU/Linux

printf '%s\n' a  | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
a


"Уязвимость в утилите GNU sort "
Отправлено Nicknnn , 15-Май-15 13:31 
Хоспате, даже скопапастить не могут уже!

"Уязвимость в утилите GNU sort "
Отправлено Ярослав , 15-Май-15 13:39 
Интерасно, почему данная проблема классифицирована как уязвимость, а не как ошибка?

"Уязвимость в утилите GNU sort "
Отправлено anonymous , 15-Май-15 18:29 
1. Переполнение буфера теоретически можно использовать для выполнения кода.
2. Из первого следует что sort file.txt
эквивалентно chmod +x ./file.txt ; ./file.txt

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 15:01 
Для коллекции =)
Debian Jessie, amd64

$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
a
ɑ


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 15:28 
OpenSUSE 13.2 x64

printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
*** Error in `sort': free(): invalid pointer: 0x0000000001c4b810 ***
a
ɑ


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 15:54 
elementary OS freya:

printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
ɑ
a


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 16:32 
Ещё не все пришли :D

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 16:28 
Еще не все)
Fedora 21:

printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
a
ɑ


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 17:31 
Fedora 20 x86_64 $ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
*** Error in `sort': free(): invalid pointer: 0x0000000001295050 ***
a
ɑ

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 16:55 
Сортируй меня, сортируй меня полностью!

"Уязвимость в утилите GNU sort "
Отправлено Ананумус , 15-Май-15 17:36 
Почему где-то
a
ɑ
А где-то
ɑ
a



"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 17:58 
По моему здесь не заданы условия.

KEYDEF  is  F[.C][OPTS][,F[.C][OPTS]]  for  start  and stop position, where F is a field number and C a character position in the field; both are origin 1, and the stop
       position defaults to the line's end.

Поэтому сортировки здесь никакой нет, просто показана возможность эксплуатировать уязвимость.


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 16:12 
> Сортируй меня, сортируй меня полностью!

Нифига себе сортир...


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 18:20 
Windows NT 10.0.10074 MSYS2

$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
a
ɑ


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 19:48 
Во, а кого-то тем временем уже в мозгу уязвимость расплодилась

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 16:14 
> Во, а кого-то тем временем уже в мозгу уязвимость расплодилась

Его микрософт уже поимел - если это десятка, бета, то она отсылает на сервера микрософта все, вплоть до нажатий клавиш. Ломать такую систему бесполезно - с пола упасть нельзя.


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 18:21 
$ uname -a
Darwin mars.Dlink 14.3.0 Darwin Kernel Version 14.3.0: Mon Mar 23 11:59:05 PDT 2015; root:xnu-2782.20.48~5/RELEASE_X86_64 x86_64
$ printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
a
ɑ

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 18:39 
Нужна фряха и соляра ещё :D

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 20:49 
Зачем? Там sort не гнутый ....

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 06:26 
Кто мешает поставить?

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 22:46 
> Нужна фряха и соляра ещё :D

Не в FreeBSD ни в Solaris GNU утилит уже давно нет, хотя я сомневаюсь что в Solaris они вообще были.


"Уязвимость в утилите GNU sort "
Отправлено anonymouse , 16-Май-15 01:17 
Откуда дровишки что в Solaris нет GNU утилит?

http://pkg.oracle.com/solaris/release/en/search.shtml?token=...


"Уязвимость в утилите GNU sort "
Отправлено Аноним , 15-Май-15 23:12 
Страшно жить, почему в калькуляторе винды не находят уязвимостей?

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 06:29 
Я почти уверен, что они там есть ;) Просто M$ за это мзду получает.

"Уязвимость в утилите GNU sort "
Отправлено Аноним , 16-Май-15 16:15 
> Страшно жить, почему в калькуляторе винды не находят уязвимостей?

Так микрософт в бетаверсии десятки просто отсылает себе все нажатия клавиш. Зачем им при этом уязвимости? Они и так при таком раскладе узнают что ты в калькуляторе считал, если им это станет интересно.


"Уязвимость в утилите GNU sort "
Отправлено aag , 20-Май-15 08:47 
I will never go out of business in this country. thanks to Microsoft. who would have thought that wincalcis vulnerable? I have not checked all systems yet, so this is my configuration: Windows 7 Ultimate SP1 x86-64, English.

1) run calc.exe;
2) press “Alt-2″ to go to “Scientistic” mode (“Programmer” mode works too);
3) type “1/255″ and press [ENTER] or [=]
4) press the button [F-E];

http://nezumi-lab.org/blog/?p=239


"Уязвимость в утилите GNU sort "
Отправлено Жырная Жопа , 17-Май-15 14:11 
В Мак0Си всё раб0тает:

MacBook-1:~ a1$  printf '%s\n' a ɑ | MALLOC_CHECK_=1 LC_ALL=en_US.utf8 sort -f
a
ɑ
MacBook-1:~ a1$


"Уязвимость в утилите GNU sort "
Отправлено Led , 19-Май-15 21:30 
> В Мак0Си
> Жырная Жопа

Ты сюда себя порекламировать пришёл, затейник?