{"id":"CVE-2024-26851","state":"PUBLISHED","title":"netfilter: nf_conntrack_h323: Add protection for bmp length out of range","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_conntrack_h323: Add protection for bmp length out of range\n\nUBSAN load reports an exception of BRK#5515 SHIFT_ISSUE:Bitwise shifts\nthat are out of bounds for their data type.\n\nvmlinux   get_bitmap(b=75) + 712\n<net/netfilter/nf_conntrack_h323_asn1.c:0>\nvmlinux   decode_seq(bs=0xFFFFFFD008037000, f=0xFFFFFFD008037018, level=134443100) + 1956\n<net/netfilter/nf_conntrack_h323_asn1.c:592>\nvmlinux   decode_choice(base=0xFFFFFFD0080370F0, level=23843636) + 1216\n<net/netfilter/nf_conntrack_h323_asn1.c:814>\nvmlinux   decode_seq(f=0xFFFFFFD0080371A8, level=134443500) + 812\n<net/netfilter/nf_conntrack_h323_asn1.c:576>\nvmlinux   decode_choice(base=0xFFFFFFD008037280, level=0) + 1216\n<net/netfilter/nf_conntrack_h323_asn1.c:814>\nvmlinux   DecodeRasMessage() + 304\n<net/netfilter/nf_conntrack_h323_asn1.c:833>\nvmlinux   ras_help() + 684\n<net/netfilter/nf_conntrack_h323_main.c:1728>\nvmlinux   nf_confirm() + 188\n<net/netfilter/nf_conntrack_proto.c:137>\n\nDue to abnormal data in skb->data, the extension bitmap length\nexceeds 32 when decoding ras message then uses the length to make\na shift operation. It will change into negative after several loop.\nUBSAN load could detect a negative shift as an undefined behaviour\nand reports exception.\nSo we add the protection to avoid the length exceeding 32. Or else\nit will return out of range error and stop decoding.","publishedAt":"2024-04-17T10:17:15.298Z","updatedAt":"2026-10-15T00:38:45.123Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"98db42191329c679f4ca52bec0b319689e1ad8cb","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"4bafcc43baf7bcf93566394dbd15726b5b456b7a","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"ccd1108b16ab572d9bf635586b0925635dbd6bbc","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"b3c0f553820516ad4b62a9390ecd28d6f73a7b13","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"39001e3c42000e7c2038717af0d33c32319ad591","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"014a807f1cc9c9d5173c1cd935835553b00d211c","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"80ee5054435a11c87c9a4f30f1ff750080c96416","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"767146637efc528b5e3d31297df115e85a2fd362","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nf_conntrack_h323_asn1.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.17","versionType":"semver"},{"version":"4.19.310","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.272","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.213","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.152","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.82","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.22","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.10","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nf_conntrack_h323_asn1.c"]}],"references":["https://git.kernel.org/stable/c/98db42191329c679f4ca52bec0b319689e1ad8cb","https://git.kernel.org/stable/c/4bafcc43baf7bcf93566394dbd15726b5b456b7a","https://git.kernel.org/stable/c/ccd1108b16ab572d9bf635586b0925635dbd6bbc","https://git.kernel.org/stable/c/b3c0f553820516ad4b62a9390ecd28d6f73a7b13","https://git.kernel.org/stable/c/39001e3c42000e7c2038717af0d33c32319ad591","https://git.kernel.org/stable/c/014a807f1cc9c9d5173c1cd935835553b00d211c","https://git.kernel.org/stable/c/80ee5054435a11c87c9a4f30f1ff750080c96416","https://git.kernel.org/stable/c/767146637efc528b5e3d31297df115e85a2fd362","https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","https://cert-portal.siemens.com/productcert/html/ssa-265688.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:10.607Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/26xxx/CVE-2024-26851.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-26851","state":"PUBLISHED","datePublished":"2024-04-17T10:17:15.298Z","dateUpdated":"2026-10-15T00:38:45.123Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-02-19T14:20:24.183Z"},"containers":{"cna":{"title":"netfilter: nf_conntrack_h323: Add protection for bmp length out of range","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_conntrack_h323: Add protection for bmp length out of range\n\nUBSAN load reports an exception of BRK#5515 SHIFT_ISSUE:Bitwise shifts\nthat are out of bounds for their data type.\n\nvmlinux   get_bitmap(b=75) + 712\n<net/netfilter/nf_conntrack_h323_asn1.c:0>\nvmlinux   decode_seq(bs=0xFFFFFFD008037000, f=0xFFFFFFD008037018, level=134443100) + 1956\n<net/netfilter/nf_conntrack_h323_asn1.c:592>\nvmlinux   decode_choice(base=0xFFFFFFD0080370F0, level=23843636) + 1216\n<net/netfilter/nf_conntrack_h323_asn1.c:814>\nvmlinux   decode_seq(f=0xFFFFFFD0080371A8, level=134443500) + 812\n<net/netfilter/nf_conntrack_h323_asn1.c:576>\nvmlinux   decode_choice(base=0xFFFFFFD008037280, level=0) + 1216\n<net/netfilter/nf_conntrack_h323_asn1.c:814>\nvmlinux   DecodeRasMessage() + 304\n<net/netfilter/nf_conntrack_h323_asn1.c:833>\nvmlinux   ras_help() + 684\n<net/netfilter/nf_conntrack_h323_main.c:1728>\nvmlinux   nf_confirm() + 188\n<net/netfilter/nf_conntrack_proto.c:137>\n\nDue to abnormal data in skb->data, the extension bitmap length\nexceeds 32 when decoding ras message then uses the length to make\na shift operation. It will change into negative after several loop.\nUBSAN load could detect a negative shift as an undefined behaviour\nand reports exception.\nSo we add the protection to avoid the length exceeding 32. Or else\nit will return out of range error and stop decoding."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"98db42191329c679f4ca52bec0b319689e1ad8cb","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"4bafcc43baf7bcf93566394dbd15726b5b456b7a","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"ccd1108b16ab572d9bf635586b0925635dbd6bbc","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"b3c0f553820516ad4b62a9390ecd28d6f73a7b13","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"39001e3c42000e7c2038717af0d33c32319ad591","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"014a807f1cc9c9d5173c1cd935835553b00d211c","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"80ee5054435a11c87c9a4f30f1ff750080c96416","versionType":"git"},{"version":"5e35941d990123f155b02d5663e51a24f816b6f3","status":"affected","lessThan":"767146637efc528b5e3d31297df115e85a2fd362","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nf_conntrack_h323_asn1.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.17","versionType":"semver"},{"version":"4.19.310","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.272","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.213","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.152","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.82","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.22","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.10","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nf_conntrack_h323_asn1.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/98db42191329c679f4ca52bec0b319689e1ad8cb"},{"url":"https://git.kernel.org/stable/c/4bafcc43baf7bcf93566394dbd15726b5b456b7a"},{"url":"https://git.kernel.org/stable/c/ccd1108b16ab572d9bf635586b0925635dbd6bbc"},{"url":"https://git.kernel.org/stable/c/b3c0f553820516ad4b62a9390ecd28d6f73a7b13"},{"url":"https://git.kernel.org/stable/c/39001e3c42000e7c2038717af0d33c32319ad591"},{"url":"https://git.kernel.org/stable/c/014a807f1cc9c9d5173c1cd935835553b00d211c"},{"url":"https://git.kernel.org/stable/c/80ee5054435a11c87c9a4f30f1ff750080c96416"},{"url":"https://git.kernel.org/stable/c/767146637efc528b5e3d31297df115e85a2fd362"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable decoder is driven entirely by attacker-supplied packet payload — a UDP datagram to port 1719 (RAS) or TCP 1720 (Q.931) processed by the in-kernel H.323 conntrack helper on any Linux router, firewall, or CPE with the ALG active. The attacker can be anywhere on the internet.\nAC:L - The 7-bit extension-bitmap length field is read verbatim from the packet, so the attacker simply sets it above 32 to force the out-of-range shift — deterministic, single packet, no timing or memory-layout dependency.\nPR:N - The helper runs on the very first packet of the flow (the trace shows it invoked from nf_confirm()), before any application-level state, credentials, or connection setup exist. A completely unauthenticated remote host triggers it.\nUI:N - Packet processing happens in softirq context on the conntrack hook with no involvement from any local user or administrator.\nS:U - The undefined behavior and its consequences are confined to the kernel of the host running the conntrack helper; no VM, IOMMU, or sandbox boundary is crossed.\nC:N - The out-of-range shift produces a garbage value in a local bitmap variable; the byte reads are still covered by nf_h323_error_boundary() and nothing is returned to the attacker, so there is no read primitive or information disclosure.\nI:N - There is no out-of-bounds write and no corruption of adjacent state — the extension loop remains bounded by f->ub, so the effect is a misparse of the attacker's own message rather than modification of kernel data.\nA:H - On kernels built with the UBSAN shift sanitizer in trap mode (widely deployed on Android/vendor kernels, and the exact configuration in the bug report) the out-of-range shift raises a BRK exception and panics the kernel, so one unauthenticated remote packet takes the box down."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:27:47.072Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"4.19.310"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"5.4.272"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"5.10.213"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"5.15.152"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"6.1.82"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"6.6.22"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"6.7.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.17","versionEndExcluding":"6.8"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-06-12T17:33:25.792652Z","id":"CVE-2024-26851","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-06-12T17:33:34.212Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/98db42191329c679f4ca52bec0b319689e1ad8cb","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/4bafcc43baf7bcf93566394dbd15726b5b456b7a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/ccd1108b16ab572d9bf635586b0925635dbd6bbc","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b3c0f553820516ad4b62a9390ecd28d6f73a7b13","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/39001e3c42000e7c2038717af0d33c32319ad591","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/014a807f1cc9c9d5173c1cd935835553b00d211c","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/80ee5054435a11c87c9a4f30f1ff750080c96416","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/767146637efc528b5e3d31297df115e85a2fd362","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T00:14:13.704Z"}},{"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V1.1.1","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-265688.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T00:38:45.123Z"},"x_adpType":"supplier"}]}}}