{"id":"CVE-2026-52914","state":"PUBLISHED","title":"batman-adv: fix fragment reassembly length accounting","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: fix fragment reassembly length accounting\n\nbatman-adv keeps a running payload length for queued fragments and uses it\nto validate a fragment chain before reassembly.\n\nThat accounting currently allows the accumulated fragment length to be\ntruncated during updates. As a result, malformed fragment chains can\nbypass the intended validation and drive reassembly with inconsistent\nlength state, leading to a local denial of service.\n\nFix the accounting by storing the accumulated length in a length-typed\nfield and rejecting update overflows before the existing validation logic\nruns.\n\nThe fix was verified against the original reproducer and against valid\nfragment reassembly paths.","publishedAt":"2026-06-24T07:14:11.906Z","updatedAt":"2026-10-19T19:36:59.956Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"e4f3f6b818aa6a678bc54a2d4e0bece2303c6a64","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"37be61825b15534a16ff9cfc9546de155b6df982","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"975563c5de1123dde1ec7946bf5556d20c89d74e","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"f653b040dad1af70fa5cd4fe085e4758925480c9","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"e910dbf509125fe51ad68e4fa74dc8ab0a8e787a","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"3eb8bcb823391bd58997831b3c9c152a4ba8e255","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"fdb2c96efb2baeb3725e9ce3ede8f1e36f5490f0","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"9cd3f16c320bfdadd4509358122368deb56a5741","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/fragmentation.c","net/batman-adv/types.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.13","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.142","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.92","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.34","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.11","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/fragmentation.c","net/batman-adv/types.h"]}],"references":["https://git.kernel.org/stable/c/e4f3f6b818aa6a678bc54a2d4e0bece2303c6a64","https://git.kernel.org/stable/c/37be61825b15534a16ff9cfc9546de155b6df982","https://git.kernel.org/stable/c/975563c5de1123dde1ec7946bf5556d20c89d74e","https://git.kernel.org/stable/c/f653b040dad1af70fa5cd4fe085e4758925480c9","https://git.kernel.org/stable/c/e910dbf509125fe51ad68e4fa74dc8ab0a8e787a","https://git.kernel.org/stable/c/3eb8bcb823391bd58997831b3c9c152a4ba8e255","https://git.kernel.org/stable/c/fdb2c96efb2baeb3725e9ce3ede8f1e36f5490f0","https://git.kernel.org/stable/c/9cd3f16c320bfdadd4509358122368deb56a5741"],"weaknesses":["CWE-190"],"ingestedAt":"2026-10-29T20:12:16.098Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/52xxx/CVE-2026-52914.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-52914","state":"PUBLISHED","datePublished":"2026-06-24T07:14:11.906Z","dateUpdated":"2026-10-19T19:36:59.956Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-06-09T07:44:35.367Z"},"containers":{"cna":{"title":"batman-adv: fix fragment reassembly length accounting","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: fix fragment reassembly length accounting\n\nbatman-adv keeps a running payload length for queued fragments and uses it\nto validate a fragment chain before reassembly.\n\nThat accounting currently allows the accumulated fragment length to be\ntruncated during updates. As a result, malformed fragment chains can\nbypass the intended validation and drive reassembly with inconsistent\nlength state, leading to a local denial of service.\n\nFix the accounting by storing the accumulated length in a length-typed\nfield and rejecting update overflows before the existing validation logic\nruns.\n\nThe fix was verified against the original reproducer and against valid\nfragment reassembly paths."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"e4f3f6b818aa6a678bc54a2d4e0bece2303c6a64","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"37be61825b15534a16ff9cfc9546de155b6df982","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"975563c5de1123dde1ec7946bf5556d20c89d74e","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"f653b040dad1af70fa5cd4fe085e4758925480c9","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"e910dbf509125fe51ad68e4fa74dc8ab0a8e787a","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"3eb8bcb823391bd58997831b3c9c152a4ba8e255","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"fdb2c96efb2baeb3725e9ce3ede8f1e36f5490f0","versionType":"git"},{"version":"610bfc6bc99bc83680d190ebc69359a05fc7f605","status":"affected","lessThan":"9cd3f16c320bfdadd4509358122368deb56a5741","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/fragmentation.c","net/batman-adv/types.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.13","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.142","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.92","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.34","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.11","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/fragmentation.c","net/batman-adv/types.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/e4f3f6b818aa6a678bc54a2d4e0bece2303c6a64"},{"url":"https://git.kernel.org/stable/c/37be61825b15534a16ff9cfc9546de155b6df982"},{"url":"https://git.kernel.org/stable/c/975563c5de1123dde1ec7946bf5556d20c89d74e"},{"url":"https://git.kernel.org/stable/c/f653b040dad1af70fa5cd4fe085e4758925480c9"},{"url":"https://git.kernel.org/stable/c/e910dbf509125fe51ad68e4fa74dc8ab0a8e787a"},{"url":"https://git.kernel.org/stable/c/3eb8bcb823391bd58997831b3c9c152a4ba8e255"},{"url":"https://git.kernel.org/stable/c/fdb2c96efb2baeb3725e9ce3ede8f1e36f5490f0"},{"url":"https://git.kernel.org/stable/c/9cd3f16c320bfdadd4509358122368deb56a5741"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable path is reached by received ETH_P_BATMAN BATADV_UNICAST_FRAG network frames through batadv_batman_skb_recv(). A remote BATMAN-adv mesh peer can deliver crafted fragments to the target node without using a local syscall or device file.\nAC:L - The attacker controls the fragment sequence number, fragment number, total_size field, and payload lengths needed to trigger the wrapped accounting. In a reasonable high-MTU BATMAN-adv deployment, no race or victim-specific state beyond an active mesh interface is required.\nPR:N - The receive path performs packet-format, destination-MAC, mesh-state, and originator lookups, but no authentication or privilege check on the sender. An attacker sending accepted BATMAN-adv frames needs no privileges on the target.\nUI:N - Exploitation is triggered solely by delivery of crafted BATMAN-adv fragments to an active interface. No victim user action is required.\nS:U - The vulnerability corrupts or crashes the kernel handling the same BATMAN-adv/networking security authority. It does not cross a separate boundary such as guest-to-host or IOMMU isolation.\nC:H - The truncated length state can drive reassembly with inconsistent sizing and attacker-controlled fragment data, creating plausible kernel memory corruption. Under the overestimate rule, such corruption can be leveraged for kernel memory disclosure.\nI:H - The reassembly path can size the output skb from the wrapped total while copying more attacker-controlled fragment data than accounted. This is defensibly an out-of-bounds write/kernel memory corruption condition.\nA:H - At minimum, the malformed chain can hit skb tail overrun BUG/panic behavior or otherwise corrupt kernel memory. That gives a reliable kernel crash/denial of service."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:31:36.920Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"5.10.258"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"6.6.142"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"6.12.92"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"6.18.34"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"7.0.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.13","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-52914","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:22:33.098650Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-190","lang":"en","type":"CWE","description":"CWE-190 Integer Overflow or Wraparound"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T19:36:59.956Z"}}]}}}