{"id":"CVE-2026-89948","state":"PUBLISHED","title":"batman-adv: bla: fix freeing of claims on meshif deletion","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: bla: fix freeing of claims on meshif deletion\n\nWhen the mesh interface is getting deleted, then\nbatadv_bla_del_backbone_claims() (via batadv_bla_purge_backbone_gw()) could\nmake sure that all claims gets removed. But this function is only executed\nwhen bat_priv->bla.claim_hash is not NULL. And since batadv_bla_free() is\nalways setting it to NULL before it is (indirectly) called, it was never\nactually executed.\n\nBut the batadv_bla_purge_claims() -> batadv_handle_unclaim() is at the\nmoment too fragile because the BLA code is not handling the rehashing in\nbatadv_bla_update_orig_address(). The stored backbone address doesn't have\nto be the one actually used for the hash bucket selection during the\ninitial adding of the backbone. The batadv_handle_unclaim() can therefore\nfail to find the respective backbone for the unclaim and then stop the\ndeletion.\n\nBut the actual backbone_gw object is not needed for the unclaim because all\nrelevant information is always provided by the caller. And the check for\nthe existence of the backbone_gw doesn't provide any additional security\ncheck for the deletion of a claim.","publishedAt":"2026-09-16T10:32:34.089Z","updatedAt":"2026-10-19T08:55:22.451Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"844a95a734f178d56c7acce14c5cce2cecff7e1a","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"baeb1a28fd8e2f68193650d3664a8cd1adfd85c6","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"aacffa780a37e06cd5a13d33740a6e96c3a67e6c","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"76aedcde5a2489cc971d4d1e396e784a49565e96","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"f50edb69082a8ba990cc23d642089829f99afe6a","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"871acdf97f64cee8398f72b88b89e8b4f4816dbe","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"9a0c47023d3254048a1588534755d4476bcc3abc","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"8d128c932bced74e3b1625ba3d7c78ef122a88a7","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/bridge_loop_avoidance.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.5","versionType":"semver"},{"version":"5.10.270","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.221","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.188","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.157","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.110","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.51","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.5","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","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/bridge_loop_avoidance.c"]}],"references":["https://git.kernel.org/stable/c/844a95a734f178d56c7acce14c5cce2cecff7e1a","https://git.kernel.org/stable/c/baeb1a28fd8e2f68193650d3664a8cd1adfd85c6","https://git.kernel.org/stable/c/aacffa780a37e06cd5a13d33740a6e96c3a67e6c","https://git.kernel.org/stable/c/76aedcde5a2489cc971d4d1e396e784a49565e96","https://git.kernel.org/stable/c/f50edb69082a8ba990cc23d642089829f99afe6a","https://git.kernel.org/stable/c/871acdf97f64cee8398f72b88b89e8b4f4816dbe","https://git.kernel.org/stable/c/9a0c47023d3254048a1588534755d4476bcc3abc","https://git.kernel.org/stable/c/8d128c932bced74e3b1625ba3d7c78ef122a88a7"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:26.108Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/89xxx/CVE-2026-89948.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-89948","state":"PUBLISHED","datePublished":"2026-09-16T10:32:34.089Z","dateUpdated":"2026-10-19T08:55:22.451Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-11T19:38:34.777Z"},"containers":{"cna":{"title":"batman-adv: bla: fix freeing of claims on meshif deletion","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: bla: fix freeing of claims on meshif deletion\n\nWhen the mesh interface is getting deleted, then\nbatadv_bla_del_backbone_claims() (via batadv_bla_purge_backbone_gw()) could\nmake sure that all claims gets removed. But this function is only executed\nwhen bat_priv->bla.claim_hash is not NULL. And since batadv_bla_free() is\nalways setting it to NULL before it is (indirectly) called, it was never\nactually executed.\n\nBut the batadv_bla_purge_claims() -> batadv_handle_unclaim() is at the\nmoment too fragile because the BLA code is not handling the rehashing in\nbatadv_bla_update_orig_address(). The stored backbone address doesn't have\nto be the one actually used for the hash bucket selection during the\ninitial adding of the backbone. The batadv_handle_unclaim() can therefore\nfail to find the respective backbone for the unclaim and then stop the\ndeletion.\n\nBut the actual backbone_gw object is not needed for the unclaim because all\nrelevant information is always provided by the caller. And the check for\nthe existence of the backbone_gw doesn't provide any additional security\ncheck for the deletion of a claim."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"844a95a734f178d56c7acce14c5cce2cecff7e1a","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"baeb1a28fd8e2f68193650d3664a8cd1adfd85c6","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"aacffa780a37e06cd5a13d33740a6e96c3a67e6c","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"76aedcde5a2489cc971d4d1e396e784a49565e96","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"f50edb69082a8ba990cc23d642089829f99afe6a","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"871acdf97f64cee8398f72b88b89e8b4f4816dbe","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"9a0c47023d3254048a1588534755d4476bcc3abc","versionType":"git"},{"version":"23721387c409087fd3b97e274f34d3ddc0970b74","status":"affected","lessThan":"8d128c932bced74e3b1625ba3d7c78ef122a88a7","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/batman-adv/bridge_loop_avoidance.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.5","versionType":"semver"},{"version":"5.10.270","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.221","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.188","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.157","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.110","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.51","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.5","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","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/bridge_loop_avoidance.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/844a95a734f178d56c7acce14c5cce2cecff7e1a"},{"url":"https://git.kernel.org/stable/c/baeb1a28fd8e2f68193650d3664a8cd1adfd85c6"},{"url":"https://git.kernel.org/stable/c/aacffa780a37e06cd5a13d33740a6e96c3a67e6c"},{"url":"https://git.kernel.org/stable/c/76aedcde5a2489cc971d4d1e396e784a49565e96"},{"url":"https://git.kernel.org/stable/c/f50edb69082a8ba990cc23d642089829f99afe6a"},{"url":"https://git.kernel.org/stable/c/871acdf97f64cee8398f72b88b89e8b4f4816dbe"},{"url":"https://git.kernel.org/stable/c/9a0c47023d3254048a1588534755d4476bcc3abc"},{"url":"https://git.kernel.org/stable/c/8d128c932bced74e3b1625ba3d7c78ef122a88a7"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T08:55:22.451Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"5.10.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"5.15.221"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.1.188"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.6.157"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.12.110"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.18.51"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"7.2.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}