CVE-2026-23457

NONE EPSS 0.03%
Обновлено 18 апреля 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: netfilter: nf_conntrack_sip: исправлено усечение Content-Length u32 в sip_help_tcp() sip_help_tcp() анализирует заголовок SIP Content-Length с помощью simple_strtoul(), который возвращает unsigned long, но сохраняет результат в беззнаковый int clen. В 64-битных системах значения, превышающие UINT_MAX, являются молча усекается перед вычислением границы сообщения SIP. Например, Content-Length 4294967328 (2^32 + 32) усекается до 32, заставляя синтаксический анализатор неправильно рассчитать, где заканчивается текущее сообщение. затем цикл обрабатывает конечные данные в сегменте TCP как второй SIP. сообщение и обрабатывает его через анализатор SDP.

Исправьте это, изменив clen на unsigned long, чтобы он соответствовал типу возвращаемого значения simple_strtoul() и отклонять значения Content-Length, превышающие оставшаяся длина полезной нагрузки TCP.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack_sip: fix Content-Length u32 truncation in sip_help_tcp() sip_help_tcp() parses the SIP Content-Length header with simple_strtoul(), which returns unsigned long, but stores the result in unsigned int clen. On 64-bit systems, values exceeding UINT_MAX are silently truncated before computing the SIP message boundary. For example, Content-Length 4294967328 (2^32 + 32) is truncated to 32, causing the parser to miscalculate where the current message ends. The loop then treats trailing data in the TCP segment as a second SIP message and processes it through the SDP parser. Fix this by changing clen to unsigned long to match the return type of simple_strtoul(), and reject Content-Length values that exceed the remaining TCP payload length.