Хакер #305. Многошаговые SQL-инъекции
Программа: Linux kernel 2.4 – 2.4.28, 2.6 – 2.6.9
Обнаружено несколько уязвимостей в реализации IGMP протокола в ядре Linux. Удаленный атакующий может вызвать отказ в обслуживании. Локальный атакующий может повысить свои привилегии на системе.
1. Уязвимость существует в функции ip_mc_source(), которая может быть вызвана с помощью пользовательского API (IP_(UN)BLOCK_SOURCE, IP_ADD/DROP_SOURCE_MEMBERSHIP равно как и MCAST_(UN)BLOCK_SOURCE и MCAST_JOIN/LEAVE_SOURCE_GROUP уровня сокета SOL_IP). Существует возможность уменьшись значение 'sl_count' счетчика структуры 'ip_sf_socklist' до 0xffffffff (т.е. -1 для целочисленных), что приведет к зацикливанию вызова функции и вызовет зависание системы на несколько минут (в зависимости от скорости обработки данных на системе). Эти действия приведут к тому, что вся память ядра, которая следует за kmalloc буфером, будет смещена на 4 байта, что должно привести к немедленной перезагрузке системы в обычных условиях и позволить локальному атакующему повысить свои привилегии на системе.
2. Из-за уязвимости описанной выше, возможно прочитать большое количество памяти ядра с помощью функций ip_mc_msfget() и ip_mc_gsfget().
3. Уязвимость Функции igmp_marksources() из модуля network (которая вызывается в контексте группы запросов IGMP, полученных из сети) существует из-за недостаточной проверки длины полученных параметров IGMP сообщений. Эта уязвимость реализуема только на мультикаст системах, где приложение создает многоадресный сокет.
Удаленный атакующий может вызвать отказ в обслуживании системы.