OpenSIPS — это реализация сервера протокола инициации сеанса (SIP). В версиях до 3.6.6 и 4.0.0-rc1 уровень кадрирования сообщений TCP анализирует заголовок Content-Length, используя арифметику беззнакового целого числа без проверки переполнения. Когда злоумышленник отправляет значение Content-Length, которое переполняет беззнаковое целое число (например, 4294967296), уровень кадрирования вычисляет завернутое значение (например, 0) и разделяет поток TCP на неправильной границе, в результате чего тело первого сообщения SIP обрабатывается как отдельное сообщение и обеспечивает контрабанду сообщений SIP.
Поскольку Content-Length анализируется на транспортном уровне перед аутентификацией, не прошедший проверку подлинности сетевой злоумышленник может переправить произвольные сообщения SIP через любой транспорт на основе TCP (proto_tcp, proto_tls, proto_ws, proto_wss) в любом экземпляре с включенным TCP, без каких-либо предварительных условий сценария маршрутизации. Это позволяет контрабандным сообщениям обходить внешние политики безопасности SBC/прокси, наследовать контекст аутентификации соединения и обходить ограничение скорости. Эта проблема исправлена в версиях 3.6.6 и 4.0.0-rc1.
Показать оригинальное описание (EN)
OpenSIPS is a Session Initiation Protocol (SIP) server implementation. In versions prior to 3.6.6 and 4.0.0-rc1, the TCP message framing layer parses the Content-Length header using unsigned int arithmetic with no overflow check. When an attacker sends a Content-Length value that overflows unsigned int (e.g., 4294967296), the framing layer computes a wrapped-around value (e.g., 0) and splits the TCP stream at the wrong boundary, causing the body of the first SIP message to be processed as a separate message and enabling SIP message smuggling. Because Content-Length is parsed in the transport layer before authentication, an unauthenticated, network-based attacker can smuggle arbitrary SIP messages over any TCP-based transport (proto_tcp, proto_tls, proto_ws, proto_wss) on any instance with TCP enabled, with no routing-script preconditions. This allows smuggled messages to bypass front-end SBC/proxy security policies, inherit the connection's authentication context, and evade rate limiting. This issue has been fixed in versions 3.6.6 and 4.0.0-rc1.
Характеристики атаки
Последствия
Строка CVSS v3.1