Старый 21.02.2015, 12:51   #31
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

В 3.20 убирают restart_block из struct thread_info, которая находится сразу под стеком ядра в памяти (см. первый пост) и может быть перезаписана при переполнении самого стека. Такая перезапись использовалось пару раз в публичных эксплойтах.

commit: all arches, signal: move restart_block to struct task_struct

Цитата:
If an attacker can cause a controlled kernel stack overflow, overwriting the restart block is a very juicy exploit target. This is because the restart_block is held in the same memory allocation as the kernel stack. Moving the restart block to struct task_struct prevents this exploit by making the restart_block harder to locate. Note that there are other fields in thread_info that are also easy targets, at least on some architectures.
Код:
struct thread_info {
    struct task_struct  *task;
    struct exec_domain  *exec_domain;
    __u32                flags;
    __u32                status;
    __u32                cpu;
    int                  preempt_count;
    mm_segment_t         addr_limit;
    struct restart_block restart_block;
    void __user         *sysenter_return;
#ifdef CONFIG_X86_32
    unsigned long        previous_esp;
    __u8                 supervisor_stack[0];
#endif
    int                  uaccess_err;
};
SynQ вне форума   Ответить с цитированием
Старый 18.03.2015, 11:21   #32
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

По следам rowhammer в ядре 4.1 закроют доступ к физическим адресам в /proc/PID/pagemap.
commit

Код:
 static int pagemap_open(struct inode *inode, struct file *file)
{
+ /* do not disclose physical addresses: attack vector */
+ if (!capable(CAP_SYS_ADMIN))
+ return -EPERM;
SynQ вне форума   Ответить с цитированием
Старый 05.06.2015, 11:13   #33
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

Не про ядро.
В Ubuntu теперь не будет работать баг в суидниках, когда делают system/popen("some-file") и подкладывание some-file в текущую диру.
https://bugs.launchpad.net/ubuntu/+s...660/comments/6
SynQ вне форума   Ответить с цитированием
Старый 17.11.2015, 12:37   #34
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

CSAW CTF 2015 Kernel Exploitation Challenge
http://poppopret.org/2015/11/16/csaw...ion-challenge/
http://itszn.com/blog/?p=21

Последний раз редактировалось SynQ; 21.11.2015 в 12:53..
SynQ вне форума   Ответить с цитированием
Старый 07.03.2016, 12:38   #35
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

Недавно был интересный пост про обход kASLR через наблюдение за временем выполнения процессорной инструкции prefetch.
Теперь же подоспел PoC для линукса:
http://dreamsofastone.blogspot.ru/20...hitecture.html
https://github.com/xairy/kaslr-bypass-via-prefetch
SynQ вне форума   Ответить с цитированием
Старый 14.05.2016, 13:10   #36
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

Цитата:
Artem Shishkin @honorary_bot
CR4.UMIP (User-Mode Instruction Prevention) for KASLR, nice
Красивый UaF в ядре 4.4-4.5 структуры fd (открываем writable fd, освобождаем его, открываем read-only fd до /etc/crontab и можем писать в него):
https://bugs.chromium.org/p/project-.../detail?id=808

Коммит SLAB freelist randomization:
http://git.kernel.org/cgit/linux/ker...f9996e9675e25f

Цитата:
Сообщение от Kees Cook
As for security features I've been tracking in 4.6:
- KASLR on arm64 (though requires the bootloader to provide entropy)
- Kernel memory protection by default on ARMv7+
- Kernel memory protection by default on arm64
- Kernel memory protection mandatory on x86
- __ro_after_init markings for write-once data

For 4.7, I think it's likely we'll see:
- split of physical/virtual text base address randomization for x86 KASLR
- KASLR on MIPS
- LoadPin LSM to control kernel module and firmware origins

For 4.8, I'm hoping we'll see:
- randomization of base addresses for page tables, vmalloc, and other memory regions for x86 KASLR
- gcc plugin infrastructure
- per-build structure layout randomization
SynQ вне форума   Ответить с цитированием
Старый 07.08.2016, 15:45   #37
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

mm: SLAB freelist randomization в апстриме:
https://git.kernel.org/cgit/linux/ke...da21cee801ec2b

Также в планах перелопатить thread_info (и кое-где вообще ее убрать), самое главное - хотят переместить addr_limit в task_struct. А значит, прощай легкий способ обхода SMEP. Раньше было достаточно любого infoleak с адресом стека ядра и сразу знали адрес, по которому нужно перезаписать addr_limit.
Если закоммитят, нужен будет infoleak по выбранному адресу, т.к. лимит будет в thread_info.task->thread.addr_limit.

[PATCH v4 18/29] x86: Move addr_limit to thread_struct:
https://lkml.org/lkml/2016/6/26/299

PS update - приземлили в 4.9, также в 4.10 для arm64.

Последний раз редактировалось SynQ; 28.02.2017 в 17:40..
SynQ вне форума   Ответить с цитированием
Старый 18.12.2016, 12:13   #38
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

Спасибо rebel за эксплойт для СVE-2016-8655 Linux af_packet.c race condition, теперь хотят закрыть удобный и лежавший на поверхности способ обхода smap.

[RFC 0/4] make call_usermodehelper a bit more "safe"
[RFC 4/4] Introduce CONFIG_READONLY_USERMODEHELPER
SynQ вне форума   Ответить с цитированием
Старый 31.01.2017, 10:28   #39
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

Большая подборка:
https://github.com/idl3r/linux-kernel-exploitation
SynQ вне форума   Ответить с цитированием
Старый 05.01.2018, 10:14   #40
SynQ
 
Регистрация: 11.07.2010
Сообщений: 952
Репутация: 352
По умолчанию

Побочный эффект meltdown и specter - во всех ядрах с активированной KPTI (Kernel Page Table Isolation CONFIG_PAGE_TABLE_ISOLATION) теперь будет SMEP, даже если процессор не поддерживает ее.
https://outflux.net/blog/archives/20...lation-in-pti/

И похоже скоро вообще перестанут мапить userspace, когда работает ядро.
SynQ вне форума   Ответить с цитированием
Ответ

Метки
exploit, exploitdev, kernel, linux

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot