Дата публикации: | 01.12.2003 |
Дата изменения: | 17.10.2006 |
Всего просмотров: | 1280 |
Опасность: | Низкая |
Наличие исправления: | Нет |
Количество уязвимостей: | 1 |
CVE ID: | Нет данных |
Вектор эксплуатации: | Локальная |
Воздействие: | Повышение привилегий |
CWE ID: | Нет данных |
Наличие эксплоита: | Нет данных |
Уязвимые продукты: |
GNU Screen 3.x
GNU Screen 4.x |
Уязвимые версии: GNU Screen 4.0.1, 3.9.15 и более ранние версии
Описание: Уязвимость обнаружена в GNU Screen. Локальный пользователь может выполнить произвольный код, чтобы получить поднятые привилегии на целевой ситеме. Локальный пользователь может послать от 2 до 3 гигабайт данных к экрану целевого пользователя, чтобы вызвать целочисленное переполнение в параметре 'w_NumArgs' в 'ansi.c' и выполнить произвольный код с set user id (setuid) root привилегиями или (setgid) utmp group привилегиями, в зависимости от инсталляции программы. URL производителя: http://www.gnu.org/software/screen/screen.html Решение: Установите следующее неофициальное исправление: --- ansi.c.old 2003-11-15 18:04:12.000000000 +0200 +++ ansi.c 2003-11-15 18:04:51.000000000 +0200 @@ -559,7 +559,7 @@ { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': - if (curr->w_NumArgs < MAXARGS) + if (curr->w_NumArgs >=3D 0 && curr->w_NumArgs < MAXARGS) { if (curr->w_args[curr->w_NumArgs] < 100000000) curr->w_args[curr->w_NumArgs] =3D --- resize.c.old 2003-11-27 02:55:07.000000000 +0200 +++ resize.c 2003-11-27 02:58:33.000000000 +0200 @@ -682,6 +682,17 @@ if (wi =3D=3D 0) he =3D hi =3D 0; =20 + if (wi > 1000) + { + Msg(0, "Window width too large, truncated"); + wi =3D 1000; + } + if (he > 1000) + { + Msg(0, "Window height too large, truncated"); + he =3D 1000; + } if (p->w_width =3D=3D wi && p->w_height =3D=3D he && p->w_histheight =3D= =3D hi) { debug("ChangeWindowSize: No change.\n"); |
|
Ссылки: | GNU screen buffer overflow |