OpenSIPS — это реализация сервера протокола инициации сеанса (SIP). Версии с 3.4.0-бета по 3.6.5 и 4.0.0-бета содержат переполнение буфера при преобразовании строки {s.b64encode}. Проверка размера для {s.b64encode} только проверяет, что входные данные помещаются в буфер преобразования размером 64 КБ, но кодирование base64 расширяет данные примерно на треть, поэтому входные данные размером от 49 153 до 65 535 байт создают больше выходных данных, чем может вместить буфер, и переполняют их на величину до 21 844 байт.
Поскольку эти буферы преобразования располагаются в памяти рядом друг с другом и повторно используются для связанных преобразований, переполнение записывает контролируемые злоумышленником данные в соседний буфер и повреждает значения, используемые последующими преобразованиями, обрабатывающими одно и то же сообщение SIP. Удаленный злоумышленник может инициировать это, отправив SIP-сообщение с большим значением заголовка (приблизительно 50 000 байт или более), когда сценарий маршрутизации применяет {s.b64encode} к входным данным, контролируемым злоумышленником, что делает возможность использования уязвимости зависимой от конфигурации маршрутизации развертывания. Эта проблема исправлена в версиях 3.6.6 и 4.0.0-rc1.
Показать оригинальное описание (EN)
OpenSIPS is a Session Initiation Protocol (SIP) server implementation. Versions 3.4.0-beta through 3.6.5 and 4.0.0-beta contain a buffer overflow in the {s.b64encode} string transformation. The size check for {s.b64encode} only verifies that the input fits within the 64 KB transformation buffer, but base64 encoding expands the data by roughly a third, so an input between about 49,153 and 65,535 bytes produces more output than the buffer can hold and overflows it by up to 21,844 bytes. Because these transformation buffers sit next to each other in memory and are reused for chained transformations, the overflow writes attacker-controlled data into the adjacent buffer and corrupts values used by later transformations processing the same SIP message. A remote attacker can trigger this by sending a SIP message with a large header value (roughly 50,000 bytes or more) when the routing script applies {s.b64encode} to attacker-controlled input, making exploitability dependent on the deployment's routing configuration. This issue has been fixed in versions 3.6.6 and 4.0.0-rc1.
Характеристики атаки
Последствия
Строка CVSS v3.1