CVE-2026-89948: batman-adv: bla: fix freeing of claims on meshif deletion
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 batadvbladelbackboneclaims() (via batadvblapurgebackbonegw()) could make sure that all claims gets removed. But this function is only executed when batpriv->bla.claimhash is not NULL. And since batadvblafree() is always setting it to NULL before it is (indirectly) called, it was never actually executed.
But the batadvblapurgeclaims() -> batadvhandleunclaim() is at the moment too fragile because the BLA code is not handling the rehashing in batadvblaupdateorigaddress(). 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 batadvhandleunclaim() can therefore fail to find the respective backbone for the unclaim and then stop the deletion.
But the actual backbonegw 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 backbonegw doesn't provide any additional security check for the deletion of a claim.
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems using the Linux kernel's batman-adv mesh networking module and its BLA functionality are relevant. The issue occurs during deletion of a mesh interface, when associated claims are being removed.
What condition causes claim cleanup to fail?
Cleanup can be skipped because the claim hash is set to NULL before the deletion path checks it. In addition, an unclaim can fail when the stored backbone address differs from the address used to select the backbone hash bucket after rehashing.
How can administrators determine whether they may be affected?
Review whether batman-adv is in use with BLA enabled and whether mesh interfaces are deleted or reconfigured. The provided data does not specify observable logs, symptoms, or affected kernel versions.