CVE-2026-23457
Received Received - Intake
Integer Overflow in Linux netfilter nf_conntrack_sip Causes Parsing Error

Publication date: 2026-04-03

Last updated on: 2026-04-27

Assigner: kernel.org

Description
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-03
Last Modified
2026-04-27
Generated
2026-05-07
AI Q&A
2026-04-03
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Powered Q&A
What immediate steps should I take to mitigate this vulnerability?

The vulnerability is fixed by updating the Linux kernel to a version where the nf_conntrack_sip module correctly handles the Content-Length header by using an unsigned long type and rejecting invalid values.

Therefore, the immediate step to mitigate this vulnerability is to apply the latest Linux kernel updates or patches that include this fix.


Can you explain this vulnerability to me?

This vulnerability exists in the Linux kernel's netfilter component, specifically in the nf_conntrack_sip module. The function sip_help_tcp() parses the SIP Content-Length header using simple_strtoul(), which returns an unsigned long value. However, the result is stored in an unsigned int variable named clen. On 64-bit systems, if the Content-Length value exceeds the maximum value of an unsigned int (UINT_MAX), it gets silently truncated.

For example, a Content-Length value of 4294967328 (which is 2^32 + 32) is truncated to 32. This causes the parser to miscalculate the boundary of the SIP message, leading the loop to mistakenly treat trailing data in the TCP segment as a second SIP message and process it incorrectly through the SDP parser.

The fix involved changing the clen variable to unsigned long to match the return type of simple_strtoul() and rejecting Content-Length values that exceed the remaining TCP payload length.


How can this vulnerability impact me? :

This vulnerability can cause the SIP message parser to misinterpret the boundaries of SIP messages due to truncation of the Content-Length header value. As a result, trailing data in a TCP segment may be incorrectly processed as a separate SIP message.

Such misinterpretation could lead to incorrect processing of network traffic, potentially causing unexpected behavior in SIP communications, which might be exploited to disrupt services or cause denial of service conditions.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart