CVE-2026-89948
Full vulnerability record from the local CVENow database.
Description
In the Linux kernel, the following vulnerability has been resolved: batman-adv: bla: fix freeing of claims on meshif deletion When the mesh interface is getting deleted, then batadv_bla_del_backbone_claims() (via batadv_bla_purge_backbone_gw()) could make sure that all claims gets removed. But this function is only executed when bat_priv->bla.claim_hash is not NULL. And since batadv_bla_free() is always setting it to NULL before it is (indirectly) called, it was never actually executed. But the batadv_bla_purge_claims() -> batadv_handle_unclaim() is at the moment too fragile because the BLA code is not handling the rehashing in batadv_bla_update_orig_address(). The stored backbone address doesn't have to be the one actually used for the hash bucket selection during the initial adding of the backbone. The batadv_handle_unclaim() can therefore fail to find the respective backbone for the unclaim and then stop the deletion. But the actual backbone_gw object is not needed for the unclaim because all relevant information is always provided by the caller. And the check for the existence of the backbone_gw doesn't provide any additional security check for the deletion of a claim.
View original CVE JSON
{
"id": "CVE-2026-89948",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-09-16T11:17:04.890",
"lastModified": "2026-10-19T09:18:40.783",
"vulnStatus": "Received",
"cveTags": [],
"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": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"programFiles": [
"net/batman-adv/bridge_loop_avoidance.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "844a95a734f178d56c7acce14c5cce2cecff7e1a",
"versionType": "git",
"status": "affected"
},
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "baeb1a28fd8e2f68193650d3664a8cd1adfd85c6",
"versionType": "git",
"status": "affected"
},
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "aacffa780a37e06cd5a13d33740a6e96c3a67e6c",
"versionType": "git",
"status": "affected"
},
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "76aedcde5a2489cc971d4d1e396e784a49565e96",
"versionType": "git",
"status": "affected"
},
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "f50edb69082a8ba990cc23d642089829f99afe6a",
"versionType": "git",
"status": "affected"
},
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "871acdf97f64cee8398f72b88b89e8b4f4816dbe",
"versionType": "git",
"status": "affected"
},
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "9a0c47023d3254048a1588534755d4476bcc3abc",
"versionType": "git",
"status": "affected"
},
{
"version": "23721387c409087fd3b97e274f34d3ddc0970b74",
"lessThan": "8d128c932bced74e3b1625ba3d7c78ef122a88a7",
"versionType": "git",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"programFiles": [
"net/batman-adv/bridge_loop_avoidance.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "3.5",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.5",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "5.10.270",
"lessThanOrEqual": "5.10.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "5.15.221",
"lessThanOrEqual": "5.15.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.1.188",
"lessThanOrEqual": "6.1.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.6.157",
"lessThanOrEqual": "6.6.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.12.110",
"lessThanOrEqual": "6.12.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.18.51",
"lessThanOrEqual": "6.18.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.2.5",
"lessThanOrEqual": "7.2.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/76aedcde5a2489cc971d4d1e396e784a49565e96",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/844a95a734f178d56c7acce14c5cce2cecff7e1a",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/871acdf97f64cee8398f72b88b89e8b4f4816dbe",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/8d128c932bced74e3b1625ba3d7c78ef122a88a7",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/9a0c47023d3254048a1588534755d4476bcc3abc",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/aacffa780a37e06cd5a13d33740a6e96c3a67e6c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/baeb1a28fd8e2f68193650d3664a8cd1adfd85c6",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f50edb69082a8ba990cc23d642089829f99afe6a",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}