netfilter: nf_conntrack_sip: fix Content-Length u32 truncation in sip_help_tcp()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.253, 5.15.203, 6.1.167, 6.6.130, 6.12.78, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in ed81b6a7012485acdb9c6c80735a0b7d8e5e1873; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in cd1b7403ec835f8a0b3f1f7e68ac26af2cb1e42f; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in b75209debb9adab287b3caa982f77788c1e15027; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in 528b4509c9dfc272e2e92d811915e5211650d383; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in 75fcaee5170e7dbbee778927134ef2e9568b4659; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in 865dba58958c3a86786f89a501971ab0e3ec6ba9; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in d4f17256544cc37f6534a14a27a9dec3540c2015; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in fbce58e719a17aa215c724473fd5baaa4a8dc57c
- Linux Linux
2.6.34
- KernelLinux
From 2.6.34 · fixed in 5.10.253; From 5.11.0 · fixed in 5.15.203; From 5.16.0 · fixed in 6.1.167; From 6.2.0 · fixed in 6.6.130; From 6.7.0 · fixed in 6.12.78; From 6.13.0 · fixed in 6.18.20; From 6.19.0 · fixed in 6.19.10
References 8
git.kernel.org
- stable/c/ed81b6a7012485acdb9c6c80735a0b7d8e5e1873
- stable/c/cd1b7403ec835f8a0b3f1f7e68ac26af2cb1e42f
- stable/c/b75209debb9adab287b3caa982f77788c1e15027
- stable/c/528b4509c9dfc272e2e92d811915e5211650d383
- stable/c/75fcaee5170e7dbbee778927134ef2e9568b4659
- stable/c/865dba58958c3a86786f89a501971ab0e3ec6ba9
- stable/c/d4f17256544cc37f6534a14a27a9dec3540c2015
- stable/c/fbce58e719a17aa215c724473fd5baaa4a8dc57c