Security Lab

Целочисленное переполнение буфера в OpenBSD + эксплоит

Дата публикации:11.09.2003
Всего просмотров:1299
Опасность:
Высокая
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:

Уязвимые версии: OpenBSD kernel 3.x

Описание: Целочисленное переполнение буфера обнаружено в OpenBSD. Локальный пользователь может выполнить произвольный код на системе с root привилегиями независимо от securelevel(7).

Целочисленное переполнение буфера обнаружено в системном вызове semget(2).

Пример/Эксплоит: См. ниже

URL производителя: http://www.openbsd.org

Решение:

Обновите к –current или установите следующую заплату:
RCS file: /usr/OpenBSD/cvs/src/sys/kern/sysv_sem.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
- --- src/sys/kern/sysv_sem.c 2003/08/20 18:02:20 1.20
+++ src/sys/kern/sysv_sem.c 2003/09/09 18:57:36 1.21
@@ -1,4 +1,4 @@
- -/* $OpenBSD: sysv_sem.c,v 1.20 2003/08/20 18:02:20 millert Exp $ */
+/* $OpenBSD: sysv_sem.c,v 1.21 2003/09/09 18:57:36 tedu Exp $ */
 /* $NetBSD: sysv_sem.c,v 1.26 1996/02/09 19:00:25 christos Exp $ */

 /*
@@ -884,7 +884,7 @@
  if ((error = sysctl_int(oldp, oldlenp, newp, newlen, &val)) ||
      val == seminfo.semmns)
  return (error);
- - if (val < seminfo.semmns)
+ if (val < seminfo.semmns || val > 0xffff)
  return (EINVAL); /* can't decrease semmns */
  seminfo.semmns = val;
  return (0);
@@ -902,7 +902,7 @@
  if ((error = sysctl_int(oldp, oldlenp, newp, newlen, &val)) ||
      val == seminfo.semmsl)
  return (error);
- - if (val < seminfo.semmsl)
+ if (val < seminfo.semmsl || val > 0xffff)
  return (EINVAL); /* can't decrease semmsl */
  seminfo.semmsl = val;
  return (0);
Ссылки: Integer overflow in OpenBSD kernel

http://www.securitylab.ru/_tools/root.tgz