In the Linux kernel, the following vulnerability has been resolved: net: batman-adv: fix error handling Syzbot reported ODEBUG warning in batadv_nc_mesh_free(). The problem was in wrong error handling in batadv_mesh_init(). Before this patch batadv_mesh_init() was calling batadv_mesh_free() in case of any batadv_*_init() calls failure. This approach may work well, when there is some kind of indicator, which can tell which parts of batadv are initialized; but there isn't any. All written above lead to cleaning up uninitialized fields. Even if we hide ODEBUG warning by initializing bat_priv->nc.work, syzbot was able to hit GPF in batadv_nc_purge_paths(), because hash pointer in still NULL. [1] To fix these bugs we can unwind batadv_*_init() calls one by one. It is good approach for 2 reasons: 1) It fixes bugs on error handling path 2) It improves the performance, since we won't call unneeded batadv_*_free() functions. So, this patch makes all batadv_*_init() clean up all allocated memory before returning with an error to no call correspoing batadv_*_free() and open-codes batadv_mesh_free() with proper order to avoid touching uninitialized fields.
History

Mon, 04 Nov 2024 12:15:00 +0000

Type Values Removed Values Added
First Time appeared Linux
Linux kernel
CPEs cpe:2.3:a:linux:kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux kernel
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published: 2024-05-22T08:19:34.174Z

Updated: 2024-11-04T12:06:47.202Z

Reserved: 2024-05-22T06:20:56.200Z

Link: CVE-2021-47482

cve-icon Vulnrichment

Updated: 2024-08-04T05:39:59.554Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2024-05-22T09:15:10.150

Modified: 2024-07-03T01:38:01.587

Link: CVE-2021-47482

cve-icon Redhat

Severity : Low

Publid Date: 2024-05-22T00:00:00Z

Links: CVE-2021-47482 - Bugzilla