Home

Description

In the Linux kernel, the following vulnerability has been resolved: arm64: csum: Fix OoB access in IP checksum code for negative lengths Although commit c2c24edb1d9c ("arm64: csum: Fix pathological zero-length calls") added an early return for zero-length input, syzkaller has popped up with an example of a _negative_ length which causes an undefined shift and an out-of-bounds read: | BUG: KASAN: slab-out-of-bounds in do_csum+0x44/0x254 arch/arm64/lib/csum.c:39 | Read of size 4294966928 at addr ffff0000d7ac0170 by task syz-executor412/5975 | | CPU: 0 PID: 5975 Comm: syz-executor412 Not tainted 6.4.0-rc4-syzkaller-g908f31f2a05b #0 | Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/25/2023 | Call trace: | dump_backtrace+0x1b8/0x1e4 arch/arm64/kernel/stacktrace.c:233 | show_stack+0x2c/0x44 arch/arm64/kernel/stacktrace.c:240 | __dump_stack lib/dump_stack.c:88 [inline] | dump_stack_lvl+0xd0/0x124 lib/dump_stack.c:106 | print_address_description mm/kasan/report.c:351 [inline] | print_report+0x174/0x514 mm/kasan/report.c:462 | kasan_report+0xd4/0x130 mm/kasan/report.c:572 | kasan_check_range+0x264/0x2a4 mm/kasan/generic.c:187 | __kasan_check_read+0x20/0x30 mm/kasan/shadow.c:31 | do_csum+0x44/0x254 arch/arm64/lib/csum.c:39 | csum_partial+0x30/0x58 lib/checksum.c:128 | gso_make_checksum include/linux/skbuff.h:4928 [inline] | __udp_gso_segment+0xaf4/0x1bc4 net/ipv4/udp_offload.c:332 | udp6_ufo_fragment+0x540/0xca0 net/ipv6/udp_offload.c:47 | ipv6_gso_segment+0x5cc/0x1760 net/ipv6/ip6_offload.c:119 | skb_mac_gso_segment+0x2b4/0x5b0 net/core/gro.c:141 | __skb_gso_segment+0x250/0x3d0 net/core/dev.c:3401 | skb_gso_segment include/linux/netdevice.h:4859 [inline] | validate_xmit_skb+0x364/0xdbc net/core/dev.c:3659 | validate_xmit_skb_list+0x94/0x130 net/core/dev.c:3709 | sch_direct_xmit+0xe8/0x548 net/sched/sch_generic.c:327 | __dev_xmit_skb net/core/dev.c:3805 [inline] | __dev_queue_xmit+0x147c/0x3318 net/core/dev.c:4210 | dev_queue_xmit include/linux/netdevice.h:3085 [inline] | packet_xmit+0x6c/0x318 net/packet/af_packet.c:276 | packet_snd net/packet/af_packet.c:3081 [inline] | packet_sendmsg+0x376c/0x4c98 net/packet/af_packet.c:3113 | sock_sendmsg_nosec net/socket.c:724 [inline] | sock_sendmsg net/socket.c:747 [inline] | __sys_sendto+0x3b4/0x538 net/socket.c:2144 Extend the early return to reject negative lengths as well, aligning our implementation with the generic code in lib/checksum.c

PUBLISHED Reserved 2025-10-22 | Published 2025-10-22 | Updated 2025-10-22 | Assigner Linux

Product status

Default status
unaffected

5777eaed566a1d63e344d3dd8f2b5e33be20643e (git) before 5a85727239a23de1cc8d93985f1056308128f3e2
affected

5777eaed566a1d63e344d3dd8f2b5e33be20643e (git) before 9a43563cfd6b9200ff2f76b3f9fcdcb217ceb523
affected

5777eaed566a1d63e344d3dd8f2b5e33be20643e (git) before ba0b46166b8e547024d02345a68b747841931ad2
affected

5777eaed566a1d63e344d3dd8f2b5e33be20643e (git) before a5ad2f87d8e74e351d3f500ad9d5b3a5653e1c6f
affected

5777eaed566a1d63e344d3dd8f2b5e33be20643e (git) before fcdf904e866de0e3715835e50409fda3b2590527
affected

5777eaed566a1d63e344d3dd8f2b5e33be20643e (git) before 8bd795fedb8450ecbef18eeadbd23ed8fc7630f5
affected

Default status
affected

5.6
affected

Any version before 5.6
unaffected

5.10.195 (semver)
unaffected

5.15.132 (semver)
unaffected

6.1.53 (semver)
unaffected

6.4.16 (semver)
unaffected

6.5.3 (semver)
unaffected

6.6 (original_commit_for_fix)
unaffected

References

git.kernel.org/...c/5a85727239a23de1cc8d93985f1056308128f3e2

git.kernel.org/...c/9a43563cfd6b9200ff2f76b3f9fcdcb217ceb523

git.kernel.org/...c/ba0b46166b8e547024d02345a68b747841931ad2

git.kernel.org/...c/a5ad2f87d8e74e351d3f500ad9d5b3a5653e1c6f

git.kernel.org/...c/fcdf904e866de0e3715835e50409fda3b2590527

git.kernel.org/...c/8bd795fedb8450ecbef18eeadbd23ed8fc7630f5

cve.org (CVE-2023-53726)

nvd.nist.gov (CVE-2023-53726)

Download JSON