CVE-2022-49085

drbd: Fix five use after free bugs in get_initial_state

State
Published
Severity
7.8 High
Published
Feb 26, 2025
Updated
Aug 5, 2026
Reserved
Feb 26, 2025

Read the record on cve.org

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/

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before 0489700bfeb1e53eb2039c2291c67e71b0b40103Affected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before dcf6be17b5c53b741898d2223b23e66d682de300Affected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before 188fe6b26765edbad4055611c0f788b6870f4024Affected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before b6a4055036eed1f5e239ce3d8b0db1ce38bba447Affected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before 594205b4936771a250f9d141e7e0fff21c3dd2d9Affected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before a972c768723359ec995579902473028fe3cd64b1Affected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before de63e74da2333b4068bb79983e632db730fea97eAffected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before 226e993c39405292781bfcf4b039a8db56aab362Affected
  • a29728463b254ce81ecefdf20c1a02e01d9361da to before aadb22ba2f656581b2f733deb3a467c48cc618f6Affected
LinuxLinux
  • 4.5Affected
  • before 4.5Not affected
  • 4.9.311 through 4.9.*Not affected
  • 4.14.276 through 4.14.*Not affected
  • 4.19.238 through 4.19.*Not affected
  • 5.4.189 through 5.4.*Not affected
  • 5.10.111 through 5.10.*Not affected
  • 5.15.34 through 5.15.*Not affected
  • 5.16.20 through 5.16.*Not affected
  • 5.17.3 through 5.17.*Not affected
  • 5.18 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.