netfilter: nf_conntrack_sip: widen NAT rewrite delta to s32 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.265, 5.15.216, 6.1.183, 6.6.151, 6.12.103, 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: total
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack_sip: widen NAT rewrite delta to s32 in sip_help_tcp() sip_help_tcp() stores the size change of each NAT-rewritten SIP message in s16 diff and accumulates it in s16 tdiff, but a single message can grow by more than S16_MAX while the packet stays under the 65535 enlarge_skb() limit: nf_nat_sip() rewrites every matching URI, and a long Contact list expands the message by tens of kilobytes. diff then wraps, and "datalen = datalen + diff - msglen" yields a huge unsigned datalen, so the next iteration's ct_sip_get_header() reads past the linearized skb tail. Widen diff, tdiff and the seq_adjust hook to s32. Both are bounded by the 65535 byte packet limit, and the seqadj core is already s32 (nf_ct_seqadj_set() takes s32), so no previously accepted input is rejected. BUG: KASAN: use-after-free in ct_sip_get_header (net/netfilter/nf_conntrack_sip.c:464) Read of size 1 at addr ffff888010800000 by task ksoftirqd/1/25 ct_sip_get_header (net/netfilter/nf_conntrack_sip.c:464) sip_help_tcp (net/netfilter/nf_conntrack_sip.c:1694) nf_confirm (net/netfilter/nf_conntrack_proto.c:183) nf_hook_slow (net/netfilter/core.c:619) ip6_output (net/ipv6/ip6_output.c:246) ip6_forward (net/ipv6/ip6_output.c:690) ipv6_rcv (net/ipv6/ip6_input.c:351) __netif_receive_skb_one_core (net/core/dev.c:6212) process_backlog (net/core/dev.c:6676) __napi_poll (net/core/dev.c:7735) net_rx_action (net/core/dev.c:7955) handle_softirqs (kernel/softirq.c:622) run_ksoftirqd (kernel/softirq.c:1076) ...
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in ed1f9be6dc8e2e280b8725e44ccdc6e0cd38640d; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in 1b0843f9e9b9b0b9b4b70d143b67e58163c85b2c; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in 32d4abc8923b0d4046fd63ad6e4917872e44eb6d; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in 63eea41759fd682229c14e0a2205802b46d106f3; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in c97621a110e386b2dd69e276eb699e1d3cec581d; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in f74554e67ccf04d1fa71069e8c9afa2717e40716; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in ef5e2c6555d2bb52dfe0e4053a8c6193f9d83b64; From f5b321bd37fbec9188feb1f721ab46a5ac0b35da · fixed in db3d0e0e5d4bc5ab4fe445b9f413d1b486508ca5
- Linux Linux
2.6.34
- KernelLinux
From 2.6.34 · fixed in 5.10.265; From 5.11.0 · fixed in 5.15.216; From 5.16.0 · fixed in 6.1.183; From 6.2.0 · fixed in 6.6.151; From 6.7.0 · fixed in 6.12.103; From 6.13.0 · fixed in 6.18.44; From 6.19.0 · fixed in 7.1.8
References 8
git.kernel.org
- stable/c/ed1f9be6dc8e2e280b8725e44ccdc6e0cd38640d
- stable/c/1b0843f9e9b9b0b9b4b70d143b67e58163c85b2c
- stable/c/32d4abc8923b0d4046fd63ad6e4917872e44eb6d
- stable/c/63eea41759fd682229c14e0a2205802b46d106f3
- stable/c/c97621a110e386b2dd69e276eb699e1d3cec581d
- stable/c/f74554e67ccf04d1fa71069e8c9afa2717e40716
- stable/c/ef5e2c6555d2bb52dfe0e4053a8c6193f9d83b64
- stable/c/db3d0e0e5d4bc5ab4fe445b9f413d1b486508ca5