Опубликован работающий эксплойт, которому подвержены текущие редакции семейства calculate

Подробности здесь:
http://www.opennet.ru/opennews/art.shtml?num=36933

Проверил у себя - уязвимость успешно работает, надо бы обновить ядро.

yftul@calculate ~ $ whoami
yftul
yftul@calculate ~ $ ~/projects/exploit_test/exploit 
2.6.37-3.x x86_64
sd@fucksheep.org 2010
calculate ~ # whoami
root
calculate ~ #

yftul@calculate ~ $ uname -a
Linux calculate 3.8.4-calculate #1 SMP PREEMPT Thu Mar 21 10:26:14 MSK 2013 x86_64 Intel(R) Core(TM) i5 CPU M 450 @ 2.40GHz GenuineIntel GNU/Linux

Патч прикладываю. Проверил на 3.8.4 ядре. Уязвимости нет :slight_smile:

Накладываю его локальными шаблонами.

0day-kernel-perf.patch (354 Bytes)

Работает патч, подтверждаю

yftul@calculate ~ $ whoami 
yftul
yftul@calculate ~ $ ~/projects/exploit_test/exploit 
exploit: ./exploit.c:51: sheep: Assertion `!close(fd)' failed.
Аварийный останов
yftul@calculate ~ $ whoami
yftul
yftul@calculate ~ $

уязвимость не подтверждаю , система x86
$ uname -srvmo
Linux 3.3.8-calculate #1 SMP PREEMPT Tue Mar 12 06:56:12 UTC 2013 i686 GNU/Linux

судя по вашим комментариям и предложенному патчу, проблема в длине переменной.

<code class="diff">
--- kernel/events/core.c        2013-02-19 03:58:34.000000000 +04
+++ core.c      2013-05-15 14:03:03.709655894 +0400
@@ -5328,7 +5328,7 @@

 static int perf_swevent_init(struct perf_event *event)
 {
-       int event_id = event->attr.config;
+       u64 event_id = event->attr.config;

        if (event->attr.type != PERF_TYPE_SOFTWARE)
                return -ENOENT;
</code>

в связи с этим два вопроса:

# вы уверены, что на остальных архитектурах переменная должны быть той же длины?
# я в код не вникал, вы уверены, что необходим unsigned?

Скоро будет собрано ядро 3.9.
Как временное решение можно использовать:

sysctl -w kernel.perf_event_paranoid = 2

Михаил Гагауз wrote:

уязвимость “не подтверждаю”

да, на hardened-профиле эксплойт не работает
и не работает при CONFIG_PERF_EVENTS != y

судя по вашим комментариям и предложенному патчу, проблема в длине переменной.

официальный патч принятый ещё в апреле текущего года.
Запостил его сюда, вдруг кто не найдет :slight_smile:

Как я понял уязвимость только для x86_64, проверял на x686 не работает.