batman-adv: bla: fix freeing of claims on meshif deletion
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in 844a95a734f178d56c7acce14c5cce2cecff7e1a; From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in baeb1a28fd8e2f68193650d3664a8cd1adfd85c6; From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in aacffa780a37e06cd5a13d33740a6e96c3a67e6c; From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in 76aedcde5a2489cc971d4d1e396e784a49565e96; From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in f50edb69082a8ba990cc23d642089829f99afe6a; From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in 871acdf97f64cee8398f72b88b89e8b4f4816dbe; From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in 9a0c47023d3254048a1588534755d4476bcc3abc; From 23721387c409087fd3b97e274f34d3ddc0970b74 · fixed in 8d128c932bced74e3b1625ba3d7c78ef122a88a7
- Linux Linux
3.5
- KernelLinux
From 3.5.0 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.51; From 6.19.0 · fixed in 7.2.5
References 8
git.kernel.org
- stable/c/844a95a734f178d56c7acce14c5cce2cecff7e1a
- stable/c/baeb1a28fd8e2f68193650d3664a8cd1adfd85c6
- stable/c/aacffa780a37e06cd5a13d33740a6e96c3a67e6c
- stable/c/76aedcde5a2489cc971d4d1e396e784a49565e96
- stable/c/f50edb69082a8ba990cc23d642089829f99afe6a
- stable/c/871acdf97f64cee8398f72b88b89e8b4f4816dbe
- stable/c/9a0c47023d3254048a1588534755d4476bcc3abc
- stable/c/8d128c932bced74e3b1625ba3d7c78ef122a88a7