Куда я попал?
SECURITM это SGRC система, ? автоматизирующая процессы в службах информационной безопасности. SECURITM помогает построить и управлять ИСПДн, КИИ, ГИС, СМИБ/СУИБ, банковскими системами защиты.
А еще SECURITM это место для обмена опытом и наработками для служб безопасности.

BDU:2024-03781

CVSS: 8.6
06.04.2008

Уязвимость набора компиляторов для различных языков программирования GNU Compiler Collection (GCC), связанная с некорректной обработкой суммы указателя и целого числа, позволяющая нарушителю вызвать отказ в обслуживании или оказать иное воздействие

Уязвимость набора компиляторов для различных языков программирования GNU Compiler Collection (GCC) связана с некорректной обработкой суммы указателя и целого числа как большую или равную указателю без использования преобразований, что может привести к непреднамеренному удалению кода проверки длины. Эксплуатация уязвимости может позволить нарушителю, действующему удаленно, вызвать отказ в обслуживании или оказать иное воздействие
Статус уязвимости:
Подтверждена производителем
Уязвимость устранена
Дата выявления: 06.04.2008
Класс уязвимости: Уязвимость кода
Наличие эксплойта: Данные уточняются
Способ эксплуатации: Манипулирование структурами данных
Способ устранения: Нет данных
Меры по устранению: Установка обновлений из доверенных источников.
В связи со сложившейся обстановкой и введенными санкциями против Российской Федерации рекомендуется устанавливать обновления программного обеспечения только после оценки всех сопутствующих рисков.

Компенсирующие меры:
1. Использование предупреждений: Активация предупреждений с помощью опции -Wstrict-overflow=N (где N >= 3), что позволяет выявить потенциально уязвимые места в коде.

2. Настройка оптимизаций: Контроль оптимизаций с использованием опций -fstrict-overflow и -fno-strict-overflow для настройки поведения компилятора в отношении переполнения указателей. Опция -fstrict-overflow позволяет включить оптимизации переполнений на уровне -O1, что повышает производительность, но с риском возникновения ошибок. Опция -fno-strict-overflow, наоборот, отключает эти оптимизации для уровней -O2 и выше, что делает компиляцию более безопасной за счет отказа от рискованных оптимизаций.

3. Приведение объектов типа char* к uintptr_t перед сравнением.
Пример:
#include <stdint.h>
[...]
if((uintptr_t)buf + len < (uintptr_t)buf) {
[...]
}
Приведение указателей к целочисленному типу uintptr_t позволяет избежать некорректных сравнений, связанных с переполнением. Использование uintptr_t гарантирует, что сравнение будет корректным, даже если сумма указателя и длины приведет к переполнению.

4. Использование типа size_t на платформах, где uintptr_t недоступен.
#include <stddef.h>
[...]
if((size_t)buf + len < (size_t)buf) {
[...]
}
Тип size_t предназначен для представления размеров объектов. На платформах без поддержки uintptr_t, использование size_t позволяет избежать ошибок, связанных с переполнением указателей, обеспечивая корректное сравнение.

5. Следование правилам безопасного кодирования, описанным в руководстве CERT C Secure Coding, в частности, правилу ARR38-C.

Использование рекомендаций производителя:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26763

Идентификатор типа ошибки

Идентификатор, установленный в соответствии с общим перечнем ошибок CWE
Идентификатор Описание
CWE-119 The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
CWE-189 Numeric Error
CWE-733 The developer builds a security-critical protection mechanism into the software, but the compiler optimizes the program such that the mechanism is removed or modified.

Идентификаторы CVE уязвимостей

Идентификатор, базы данных общеизвестных уязвимостей информационной безопасности
Идентификатор Описание
CVE-2008-1685 gcc 4.2.0 through 4.3.0 in GNU Compiler Collection, when casts are not used, considers the sum of a pointer and an int to be...

CVSS

Система общей оценки уязвимостей
Оценка Severity Версия Базовый вектор
9 HIGH 2.0 AV:N/AC:L/Au:N/C:P/I:P/A:C
8.6 HIGH 3.0 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H

Идентификаторы других систем описаний уязвимостей

CVE-2008-1685 VU-162289
Вендор:
  • GNU General Public License
Тип ПО:
  • Прикладное ПО информационных систем
Наименование ПО:
  • GNU Compiler Collection
Версия ПО:
  • от 4.2.0 до 4.3.0 включительно (GNU Compiler Collection)
ОС и аппаратные платформы:
  • Linux (-)
  • Ubuntu (-)
  • Debian GNU/Linux (-)
Ссылки на источники:

Мы используем cookie-файлы, чтобы получить статистику, которая помогает нам улучшить сервис для вас с целью персонализации сервисов и предложений. Вы может прочитать подробнее о cookie-файлах или изменить настройки браузера. Продолжая пользоваться сайтом, вы даёте согласие на использование ваших cookie-файлов и соглашаетесь с Политикой обработки персональных данных.