Page 3 of 6

Re: Уязвимости ядра

Posted: Tue Jan 12, 2021 10:32 pm
by turbocat
As I understand it, you did this: the application ignores the system call 69, 4. if launched without the debug flag?
This contradicts: All subfunctions except 4 and 5 apply only to processes / threads started from the current function 70 with the debug flag set. Debugging of multithreaded programs is not yet supported.

Re: Уязвимости ядра

Posted: Wed Jan 13, 2021 1:22 am
by Coldy
Exception for 69.4 is possibly wrong. What's problem use 70.7 before? What for use 69.4 and 69.5 directly?

Re: Уязвимости ядра

Posted: Tue Jan 26, 2021 3:59 am
by Kenshin
Критическая уязвимость ядра при запуске программ. Заключается в использовании неправильных значений в заголовке исполнимого файла формата MENUET0x:
1. Если в заголовке указать некорректные адреса для буферов, куда должны быть записаны командная строка и путь к исп. файлу, можно записывать произвольные данные во все участки памяти доступные ядру, а значит иметь полный доступ к системе и запускать код с привилегиями ядра.
2. Если в заголовке исполняемого файла указать некорректный размер требуемой приложением памяти (например больше 0x80000000), ядро упадёт, а при меньших размерах (меньших 0x80000000, но больших по всей видимости, чем доступная физическая память) упасть с undefined exception может либо само приложение, либо процесс, запускающий его, либо случайный процесс, либо несколько таких процессов.

Re: Уязвимости ядра

Posted: Tue Jan 26, 2021 12:33 pm
by Kenshin
Ещё одна уязвимость. Тоже критическая. Если в заголовке файла скина указать неправильные указатели params/buttons/bitmaps произойдёт kernel crash. В зависимости от адреса указателя ядро падает по-разному, но обычно с page fault. Если использовать правильные указатели можно читать память ядра и прочие системные данные.

Re: Уязвимости ядра

Posted: Sun Jan 31, 2021 7:58 am
by Kenshin
Уязвимость (серьёзная, к сожалению) ядра при работе с форматом KPCK:
  • Если в заголовке указать неправильный размер исходного файла (dword по смещению +4), произойдёт kernel crash
  • Если повредить содержимое файла (т.е. всё, что идёт после заголовка), ядро также упадёт

Re: Уязвимости ядра

Posted: Sun Jan 31, 2021 10:29 am
by turbocat
Kenshin wrote:Уязвимость (серьёзная, к сожалению) ядра при работе с форматом KPCK:
  • Если в заголовке указать неправильный размер исходного файла (dword по смещению +4), произойдёт kernel crash
  • Если повредить содержимое файла (т.е. всё, что идёт после заголовка), ядро также упадёт
Пожалуйста прикрепляйте файлы эксплуатирующие уязвимость. Так будет проще проверять исправлена ли она.

Re: Уязвимости ядра

Posted: Sun Jan 31, 2021 7:10 pm
by Kenshin
Ну вот, например, два эксплойта - сам kpack, запакованный самим собой, - в каждом из которых умышленно повреждён один (всего лишь) из байтов в начале файла (честно говоря, чёрт знает, где там кончается заголовок и начинаются данные, никакой документации по формату пока не попадалось):
kpack1.7z (9.72 KiB)
Downloaded 284 times
kpack2.7z (9.72 KiB)
Downloaded 279 times

Re: Уязвимости ядра

Posted: Sat Feb 13, 2021 12:26 am
by rgimad
Kenshin wrote:честно говоря, чёрт знает, где там кончается заголовок и начинаются данные, никакой документации по формату пока не попадалось
https://habr.com/ru/company/kolibrios/b ... nt_8793311

Re: Уязвимости ядра

Posted: Sat Feb 13, 2021 8:28 am
by Kenshin
Весьма полезная ссылка. Спасибо.

Re: Уязвимости ядра

Posted: Sun Feb 14, 2021 4:25 pm
by rgimad
Kenshin wrote:Критическая уязвимость ядра при запуске программ. Заключается в использовании неправильных значений в заголовке исполнимого файла формата MENUET0x:
1. Если в заголовке указать некорректные адреса для буферов, куда должны быть записаны командная строка и путь к исп. файлу, можно записывать произвольные данные во все участки памяти доступные ядру, а значит иметь полный доступ к системе и запускать код с привилегиями ядра.
Fixed in rev 8593

Re: Уязвимости ядра

Posted: Sun Feb 14, 2021 4:51 pm
by Kenshin
rgimad wrote:Fixed in rev 8593
Круто, отличная работа! Теперь система стала чуточку надёжнее :)

Re: Уязвимости ядра

Posted: Sun Feb 21, 2021 1:03 pm
by rgimad
rev 8598 : fixed vulnerabilities in sysfn 18.11 and 36, now user applications cannot corrupt kernel memory via invalid buffer address
rev 8599 : fixed same vulnerability in sysfn 48.3

Re: Уязвимости ядра

Posted: Tue Apr 20, 2021 2:07 am
by Doczom
уязвимость в 30 сисфункции подфункции 2
если указать вместо буфера адрес 0x80003000 ядро падает

часть кода вызвавшая проблему:
mov eax,30
mov ebx,2
mov ecx,0x80003000
mov edx,255
int 0x40

аналогичная уязвимость в 74 сисфункции

Re: Уязвимости ядра

Posted: Tue Apr 20, 2021 8:19 pm
by Doczom
нашёл уязвимости в сисфункциях:
30.5 перезапись системной области памяти с последующим падением ядра
70.0 перезапись системной области памяти с последующим падением ядра
70.5 перезапись системной области памяти с последующим падением ядра
//Везде вместо указателя на буфер ставил 0x80003000

70.3 чтение системной области памяти и запись этого в файл
70.2 тоже самое
//Везде вместо указателя на буфер ставил 0x80003000


70.1 программа начинает сильно грузить процессор(на 100%), после её отключения система зависает намертво

54.2 запись в буфер обмена данных по адресу 0x80003000
//но при попытке получить указатель на эти данные программа падала

все данные по этому в беседе вк "KolibriOS чат", поиск по #БАГИ

Re: Уязвимости ядра

Posted: Thu Apr 22, 2021 11:04 pm
by rgimad
#8675 fixed vulnerability (reading kernel memory from userspace) in sysfn25