CVE-2022-49085
published 2025-02-26CVE-2022-49085: 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…
PriorityP338high7.8CVSS 3.1
AVLACLPRLUINSUCHIHAH
EPSS
0.28%
20.2th percentile
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
24 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | linux | < linux 5.17.3-1 (bookworm) | linux 5.17.3-1 (bookworm) |
| linux | linux | — | — |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < 0489700bfeb1e53eb2039c2291c67e71b0b40103 | 0489700bfeb1e53eb2039c2291c67e71b0b40103 |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < dcf6be17b5c53b741898d2223b23e66d682de300 | dcf6be17b5c53b741898d2223b23e66d682de300 |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < 188fe6b26765edbad4055611c0f788b6870f4024 | 188fe6b26765edbad4055611c0f788b6870f4024 |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < b6a4055036eed1f5e239ce3d8b0db1ce38bba447 | b6a4055036eed1f5e239ce3d8b0db1ce38bba447 |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < 594205b4936771a250f9d141e7e0fff21c3dd2d9 | 594205b4936771a250f9d141e7e0fff21c3dd2d9 |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < a972c768723359ec995579902473028fe3cd64b1 | a972c768723359ec995579902473028fe3cd64b1 |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < de63e74da2333b4068bb79983e632db730fea97e | de63e74da2333b4068bb79983e632db730fea97e |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < 226e993c39405292781bfcf4b039a8db56aab362 | 226e993c39405292781bfcf4b039a8db56aab362 |
| linux | linux | >= a29728463b254ce81ecefdf20c1a02e01d9361da < aadb22ba2f656581b2f733deb3a467c48cc618f6 | aadb22ba2f656581b2f733deb3a467c48cc618f6 |
| linux | linux_kernel | — | — |
| linux | linux_kernel | >= 0 < 5.10.113-1 | 5.10.113-1 |
| linux | linux_kernel | >= 0 < 5.17.3-1 | 5.17.3-1 |
| linux | linux_kernel | >= 0 < 5.17.3-1 | 5.17.3-1 |
| linux | linux_kernel | >= 0 < 5.17.3-1 | 5.17.3-1 |
| linux | linux_kernel | >= 4.10 < 4.14.276 | 4.14.276 |
| linux | linux_kernel | >= 4.15 < 4.19.238 | 4.19.238 |
| linux | linux_kernel | >= 4.20 < 5.4.189 | 5.4.189 |
| linux | linux_kernel | >= 4.5 < 4.9.311 | 4.9.311 |
| linux | linux_kernel | >= 5.11 < 5.15.34 | 5.15.34 |
| linux | linux_kernel | >= 5.16 < 5.16.20 | 5.16.20 |
| linux | linux_kernel | >= 5.17 < 5.17.3 | 5.17.3 |
| linux | linux_kernel | >= 5.5 < 5.10.111 | 5.10.111 |
CVSS provenance
nvdv3.17.8HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
osv7.8HIGH
vendor_debian7.8HIGH
vendor_redhat7.8HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
GHSA-vcqr-h4qj-jv8g: 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
ghsa_unreviewed·2025-02-27
CVE-2022-49085 [HIGH] CWE-416 GHSA-vcqr-h4qj-jv8g: 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
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 avoi
OSV
CVE-2022-49085: 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 c
osv·2025-02-26·CVSS 7.8
CVE-2022-49085 [HIGH] CVE-2022-49085: 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 c
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. v
Red Hat
kernel: drbd: Fix five use after free bugs in get_initial_state
vendor_redhat·2025-02-26·CVSS 7.8
CVE-2022-49085 [HIGH] kernel: drbd: Fix five use after free bugs in get_initial_state
kernel: drbd: Fix five use after free bugs in get_initial_state
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
Debian
CVE-2022-49085: linux - In the Linux kernel, the following vulnerability has been resolved: drbd: Fix f...
vendor_debian·2022·CVSS 7.8
CVE-2022-49085 [HIGH] CVE-2022-49085: linux - In the Linux kernel, the following vulnerability has been resolved: drbd: Fix f...
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. v
No detection rules found.
No public exploits indexed.
https://git.kernel.org/stable/c/0489700bfeb1e53eb2039c2291c67e71b0b40103https://git.kernel.org/stable/c/188fe6b26765edbad4055611c0f788b6870f4024https://git.kernel.org/stable/c/226e993c39405292781bfcf4b039a8db56aab362https://git.kernel.org/stable/c/594205b4936771a250f9d141e7e0fff21c3dd2d9https://git.kernel.org/stable/c/a972c768723359ec995579902473028fe3cd64b1https://git.kernel.org/stable/c/aadb22ba2f656581b2f733deb3a467c48cc618f6https://git.kernel.org/stable/c/b6a4055036eed1f5e239ce3d8b0db1ce38bba447https://git.kernel.org/stable/c/dcf6be17b5c53b741898d2223b23e66d682de300https://git.kernel.org/stable/c/de63e74da2333b4068bb79983e632db730fea97e
2025-02-26
Published