Security Lab

Удаленный отказ в обслуживании при обработке TCP опций в Linux kernel 2.6

Дата публикации:30.06.2004
Всего просмотров:1754
Опасность:
Средняя
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Отказ в обслуживании
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Linux Kernel 2.6.x
Уязвимые версии: Linux kernel 2.6.x

Описание: Уязвимость в Linux kernel 2.6 в обработке TCP опций позволяет удаленному пользователю вызвать отказ в обслуживвнии.

Уязвимость обнаружена в netfilter подсистеме, когда используются правила, соответствующие TCP опциям (т.е. --tcp-option). Удаленный пользователь может послать специально обработанный пакет к хосту жертвы, чтобы заставить ядро войти в бесконечный цикл со 100% использованием CPU. Пример пакета “смерти”:

0x0000:  4500 0030 1234 4000 ff06 e83f c0a8 0001
0x0010:  c0a8 0002 0400 1000 0000 0064 0000 0064
0x0020:  7000 0fa0 dc6a 0000 0204 05b4 0101 04fd

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

Решение:

--- net/ipv4/netfilter/ip_tables.c.orig 2004-04-04 05:36:47.000000000 +0200
+++ net/ipv4/netfilter/ip_tables.c      2004-06-24 21:24:26.000000000 +0200
@@ -1461,7 +1461,7 @@
                int *hotdrop)
 {
        /* tcp.doff is only 4 bits, ie. max 15 * 4 bytes */
-       char opt[60 - sizeof(struct tcphdr)];
+       u_int8_t opt[60 - sizeof(struct tcphdr)];
        unsigned int i;
 
        duprintf("tcp_match: finding option\n");
Ссылки: Remote DoS vulnerability in Linux kernel 2.6.x