Security Lab

Целочисленное переполнение буфера во множестве реализаций функции calloc()

Дата публикации:08.08.2002
Всего просмотров:1146
Опасность:
Низкая
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: Запрос calloc() С библиотеки используется для динамического распределения памяти. Например, инициализация массива объектов в С++:

pointer = new SomeClass[n];

При вычислении выделяемого количества памяти, уязвимые выполнения функции calloc() не проверяют возможность целочисленного переполнения буфера. Если требуемое количество выделяемой памяти превышает самое большое значение, которое может быть представлено машинным словом, выделяемой памяти будет недостаточно для размещения всех данных. При этом процедура возвратит успешный ответ.

Эта уязвимость может затрагивать безопасность системы. Переполнение буфера может произойти, если приложение попытается записать вне границ выделенной памяти. При этом нападающий должен иметь полный или ограниченный контроль над аргументами к уязвимому действию.

Уязвимость обнаружена в

dietlibc dietlibc 0.18
GNU gcc 2.7.2
GNU gcc 2.95
GNU gcc 3.0
GNU gcc 3.1.1
GNU glibc 2.0
GNU glibc 2.0.1
GNU glibc 2.0.2
GNU glibc 2.0.3
GNU glibc 2.0.4
GNU glibc 2.0.5
GNU glibc 2.0.6
GNU glibc 2.1
GNU glibc 2.1.1 -6
GNU glibc 2.1.1
GNU glibc 2.1.2
GNU glibc 2.1.3 -10
GNU glibc 2.1.3
GNU glibc 2.1.9 and Greater
GNU glibc 2.2
GNU glibc 2.2.1
GNU glibc 2.2.2
GNU glibc 2.2.3
GNU glibc 2.2.4
GNU glibc 2.2.5
GNU glibc 2.3.10
GNU glibc2 2.3.10
GNU GNAT 3.14 b
Microsoft Visual C++ 4.0
Microsoft Visual C++ 6.0
Ссылки: Flaw in calloc and similar routines