Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2024-26851

netfilter: nf_conntrack_h323: Add protection for bmp length out of range

Description

In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_conntrack_h323: Add protection for bmp length out of range UBSAN load reports an exception of BRK#5515 SHIFT_ISSUE:Bitwise shifts that are out of bounds for their data type. vmlinux get_bitmap(b=75) + 712 <net/netfilter/nf_conntrack_h323_asn1.c:0> vmlinux decode_seq(bs=0xFFFFFFD008037000, f=0xFFFFFFD008037018, level=134443100) + 1956 <net/netfilter/nf_conntrack_h323_asn1.c:592> vmlinux decode_choice(base=0xFFFFFFD0080370F0, level=23843636) + 1216 <net/netfilter/nf_conntrack_h323_asn1.c:814> vmlinux decode_seq(f=0xFFFFFFD0080371A8, level=134443500) + 812 <net/netfilter/nf_conntrack_h323_asn1.c:576> vmlinux decode_choice(base=0xFFFFFFD008037280, level=0) + 1216 <net/netfilter/nf_conntrack_h323_asn1.c:814> vmlinux DecodeRasMessage() + 304 <net/netfilter/nf_conntrack_h323_asn1.c:833> vmlinux ras_help() + 684 <net/netfilter/nf_conntrack_h323_main.c:1728> vmlinux nf_confirm() + 188 <net/netfilter/nf_conntrack_proto.c:137> Due to abnormal data in skb->data, the extension bitmap length exceeds 32 when decoding ras message then uses the length to make a shift operation. It will change into negative after several loop. UBSAN load could detect a negative shift as an undefined behaviour and reports exception. So we add the protection to avoid the length exceeding 32. Or else it will return out of range error and stop decoding.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < 98db42191329c679f4ca52bec0b319689e1ad8cbaffected
  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < 4bafcc43baf7bcf93566394dbd15726b5b456b7aaffected
  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < ccd1108b16ab572d9bf635586b0925635dbd6bbcaffected
  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < b3c0f553820516ad4b62a9390ecd28d6f73a7b13affected
  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < 39001e3c42000e7c2038717af0d33c32319ad591affected
  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < 014a807f1cc9c9d5173c1cd935835553b00d211caffected
  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < 80ee5054435a11c87c9a4f30f1ff750080c96416affected
  • 5e35941d990123f155b02d5663e51a24f816b6f3 to < 767146637efc528b5e3d31297df115e85a2fd362affected

Linux Linux

Default version status: affected

  • 2.6.17affected
  • 0 to < 2.6.17unaffected
  • 4.19.310 to ≤ 4.19.*unaffected
  • 5.4.272 to ≤ 5.4.*unaffected
  • 5.10.213 to ≤ 5.10.*unaffected
  • 5.15.152 to ≤ 5.15.*unaffected
  • 6.1.82 to ≤ 6.1.*unaffected
  • 6.6.22 to ≤ 6.6.*unaffected
  • 6.7.10 to ≤ 6.7.*unaffected
  • 6.8 to ≤ *unaffected

References