V
Сканер-ВС
ГлавнаяКаталогИсточникиCWECAPECATT&CKМеры защитыПродуктыВендорыДокументация
CVE-2025-8746
CVE
Низкий

В GNU libopts до версии 27.6 обнаружена уязвимость, классифицированная как проблематичная. Затронута функция __strstr_sse2. Манипуляция при…

CVSS
1.9
Низкий
EPSS
0.00
p9
Опубликовано
2025-01-01
Обновлено
2025-01-01
Описание

В GNU libopts до версии 27.6 обнаружена уязвимость, классифицированная как проблематичная. Затронута функция __strstr_sse2. Манипуляция приводит к повреждению памяти. Для осуществления этой атаки требуется локальный доступ. Эксплойт был раскрыт общественности и может быть использован [1]. Эта проблема изначально была сообщена проекту tcpreplay, но сопровождающий код объясняет, что «эта ошибка, по-видимому, находится в libopts, которая является внешней библиотекой». Эта уязвимость затрагивает только продукты, которые больше не поддерживаются сопровождающим. ## Подробности уязвимости Во время тестирования на наличие ошибок была обнаружена критическая уязвимость, связанная с ошибкой сегментации, в утилите tcpliveplay из пакета tcpreplay. Уязвимость возникает в функции `__strstr_sse2` внутри библиотеки обработки строк GNU libc, запускаемой при обработке поврежденных файлов конфигурации через параметр командной строки `--load-opts`. Это приводит к нарушениям доступа к памяти и завершению работы программы. ### Технические подробности - **Тип уязвимости**: Ошибка сегментации / Переполнение буфера - **Затронутая функция**: `__strstr_sse2` - **Файл**: `strstr.c` - **Номер строки**: 84:31 - **Сигнал**: SIGABRT (6) - **Доступ к памяти**: Чтение по адресу 0xffffffffffffffe0 ## Механизм и основная причина уязвимости Эта уязвимость вызвана неправильной проверкой входных данных и проверкой границ памяти в логике обработки файлов конфигурации библиотеки libopts. Коренная причина лежит в функции `remove_settings`, где строковые операции выполняются над поврежденными или созданными входными данными. Шаги, приводящие к уязвимости: 1. Параметр `--load-opts` указывает на поврежденный файл конфигурации. 2. Функция `optionProcess` инициирует обработку файла конфигурации в `autoopts.c:367`. 3. Управление передается `optionSaveFile` в `save.c:828` для операций с файлами. 4. Функция `open_sv_file` в `save.c:564` пытается обработать файл. 5. Функция `remove_settings` в `save.c:499` выполняет операции поиска строки с помощью `strstr`. 6. Реализация `__strstr_sse2` обнаруживает недопустимые адреса памяти (0xffffffffffffffe0). Это создает классическое условие переполнения буфера, при котором программа пытается получить доступ к памяти за пределами допустимых границ во время операций сопоставления строк. Недопустимый адрес `0xffffffffffffffe0` указывает на попытку чтения из места вблизи конца виртуального адресного пространства, что предполагает переполнение или повреждение арифметики указателей. ### Отчет AddressSanitizer ``` AddressSanitizer:DEADLYSIGNAL ... ``` ## Эксплуатация и шаги воспроизведения 1. Скомпилируйте tcpliveplay с AddressSanitizer. 2. Выполните: `tcpliveplay --load-opts POC_tcpliveplay_segmentation_fault_strstr_sse2`. 3. Программа завершится с ошибкой сегментации. ## Затронутые версии tcpreplay версии 6fcbf03 (последний мастер в https://github.com/appneta/tcpreplay). **Благодарность** - Xudong Cao (UCAS) - Yuqing Zhang (UCAS, Zhongguancun Laboratory) Источники: - [1] https://vuldb.com/?id.319242 - [2] https://vuldb.com/?ctiid.319242 - [3] https://vuldb.com/?submit.623632 - [4] https://github.com/appneta/tcpreplay/issues/957 - [5] https://github.com/appneta/tcpreplay/issues/957#issuecomment-3124774393

Теги · CWE
CWE-119
CAPEC-8
CAPEC-9
CAPEC-10
CAPEC-14
CAPEC-24
CAPEC-42
CAPEC-44
CAPEC-45
CAPEC-46
CAPEC-47
CAPEC-100
CAPEC-123
Затронутые продукты
Libopts ≤ 27.6
Вектор CVSS
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Хронология
2025-01-01
Опубликована
2025-01-01
Обновлена
Разбор CVSS 3.1
Вектор атаки
AV: L
Локальная (L)
Сложность атаки
AC: L
Низкая (L)
Требования к атаке
AT: N
None
Требуемые привилегии
PR: L
Низкие (L)
Взаимодействие с пользователем
UI: N
Отсутствует (N)
Конфиденциальность уязвимой системы
VC: N
Отсутствует (N)
Целостность уязвимой системы
VI: N
Отсутствует (N)
Доступность уязвимой системы
VA: L
Низкое (L)
Конфиденциальность последующей системы
SC: N
Отсутствует (N)
Целостность последующей системы
SI: N
Отсутствует (N)
Доступность последующей системы
SA: N
Отсутствует (N)
Зрелость эксплойт-кода
E: P
Proof-of-Concept
Требование конфиденциальности
CR: X
Not Defined
Требование целостности
IR: X
Not Defined
Требование доступности
AR: X
Not Defined
Модифицированный вектор атаки
MAV: X
Not Defined
Модифицированная сложность атаки
MAC: X
Not Defined
Модифицированные требования к атаке
MAT: X
Not Defined
Модифицированные требуемые привилегии
MPR: X
Not Defined
Модифицированное взаимодействие с пользователем
MUI: X
Not Defined
Модифицированная конфиденциальность уязвимой системы
MVC: X
Not Defined
Модифицированная целостность уязвимой системы
MVI: X
Not Defined
Модифицированная доступность уязвимой системы
MVA: X
Not Defined
Модифицированная конфиденциальность последующей системы
MSC: X
Not Defined
Модифицированная целостность последующей системы
MSI: X
Not Defined
Модифицированная доступность последующей системы
MSA: X
Not Defined
s
S: X
X
au
AU: X
X
r
R: X
X
v
V: X
X
re
RE: X
X
u
U: X
X
Индикаторы эксплуатации
EPSS
0.002 · p9
Известна эксплуатация (KEV)
Нет
Проверки Сканер-ВС
Проверок Сканер-ВС для этой уязвимости в базе пока нет.
Затронутые продукты
ПродуктВендорСтатус
autogenОтслеживается
autogenОтслеживается
libopts*Отслеживается
Источники данных
DEB
CVE
UBU