PJSIP — это бесплатная библиотека мультимедийной связи с открытым исходным кодом, написанная на C. До фиксации 673b978 в переговорщике SDP может происходить удаленное чтение и запись за пределами границ, если включена функция удаленного обслуживания карты типа полезной нагрузки. Функция Assign_pt_and_update_map() в pjmedia/src/pjmedia/sdp_neg.c использует номера типов полезной нагрузки, взятые из удаленного предложения или ответа SDP, для индексации внутренних таблиц фиксированного размера без достаточной проверки границ, поэтому созданный удаленный SDP может вызвать доступ к памяти за пределами этих таблиц.
Практическим последствием является повреждение памяти и отказ в обслуживании; выполнение кода не демонстрируется. Этот путь доступен только в том случае, если включен PJMEDIA_SDP_NEG_MAINTAIN_REMOTE_PT_MAP. Значение по умолчанию отключено, поэтому сборки по умолчанию не затрагиваются; эта функция представляет собой вариант взаимодействия, который может обеспечить интеграция продуктов.
Эта проблема была исправлена посредством фиксации 673b978.
Показать оригинальное описание (EN)
PJSIP is a free and open source multimedia communication library written in C. Prior to commit 673b978, a remote out-of-bounds read and write can occur in the SDP negotiator when the remote payload-type map maintenance feature is enabled. assign_pt_and_update_map() in pjmedia/src/pjmedia/sdp_neg.c uses payload-type numbers taken from a remote SDP offer or answer to index fixed-size internal tables without sufficient bounds validation, so a crafted remote SDP can cause memory access outside those tables. The practical impact is memory corruption and denial of service; code execution is not demonstrated. This path is only reached when PJMEDIA_SDP_NEG_MAINTAIN_REMOTE_PT_MAP is enabled. The default is disabled, so default builds are not affected; the feature is an interoperability option that integrating products may enable. This issue has been patched via commit 673b978.
Характеристики атаки
Последствия
Строка CVSS v4.0