CVEvulnerability

CVE-2022-49085

7.8 HIGH Published 2025-02-26 Modified 2026-06-17 Official page ↗
Status
Analyzed
Published
2025-02-26
Last modified
2026-06-17
Assigner
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS 3.1 (134c704f-9b21-4f2e-91b3-4a467353bcc0)
7.8 HIGH — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-416

Description

In the Linux kernel, the following vulnerability has been resolved: drbd: Fix five use after free bugs in get_initial_state In get_initial_state, it calls notify_initial_state_done(skb,..) if cb->args[5]==1. If genlmsg_put() failed in notify_initial_state_done(), the skb will be freed by nlmsg_free(skb). Then get_initial_state will goto out and the freed skb will be used by return value skb->len, which is a uaf bug. What's worse, the same problem goes even further: skb can also be freed in the notify_*_state_change -> notify_*_state calls below. Thus 4 additional uaf bugs happened. My patch lets the problem callee functions: notify_initial_state_done and notify_*_state_change return an error code if errors happen. So that the error codes could be propagated and the uaf bugs can be avoid. v2 reports a compilation warning. This v3 fixed this warning and built successfully in my local environment with no additional warnings. v2: https://lore.kernel.org/patchwork/patch/1435218/

Affected configurations

• linux linux kernel (>= 4.5 < 4.9.311) • linux linux kernel (>= 4.10 < 4.14.276) • linux linux kernel (>= 4.15 < 4.19.238) • linux linux kernel (>= 4.20 < 5.4.189) • linux linux kernel (>= 5.5 < 5.10.111) • linux linux kernel (>= 5.11 < 5.15.34) • linux linux kernel (>= 5.16 < 5.16.20) • linux linux kernel (>= 5.17 < 5.17.3) • linux linux kernel 5.18

Related

Weakness · CWE (1)

References