Use After Free in Linux

CVE-2024-35955

In the Linux kernel, the following vulnerability has been resolved: kprobes: Fix possible use-after-free issue on kprobe registration When unloading a module, its state is changing MODULE_STATE_LIVE -> MODULE_STATE_GOING -> MODULE_STATE_UNFORMED. Each change will take a time. `is_module_text_address()` and `__module_text_address()` works with MODULE_STATE_LIVE and MODULE_STATE_GOING. If we use `is_module_text_address()` and `__module_text_address()` separately, there is a chance that the first one is succeeded but the next one is failed because module->state becomes MODULE_STATE_UNFORMED between those operations. In `check_kprobe_address_safe()`, if the second `__module_text_address()` is failed, that is ignored because it expected a kernel_text address. But it may have failed simply because module->state has been changed to MODULE_STATE_UNFORMED. In this case, arm_kprobe() will try to modify non-exist module text address (use-after-free). To fix this problem, we should not use separated `is_module_text_address()` and `__module_text_address()`, but use only `__module_text_address()` once and do `try_module_get(module)` which is only available with MODULE_STATE_LIVE.

Vulnerability class: Use-After-Free

Published · last modified .

CVSS v3 metric

CVSS v3 base score 8.8 (High). Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H.

EPSS exploit prediction

EPSS: 0.012 (66.5th percentile), scored .

Low probability of exploitation in the next 30 days, but still tracked. 67th percentile — 66.5% of CVEs in the catalogue have a lower EPSS than this one. How to read EPSS.

EPSS trend (30 days)EPSS over the last 30 days for CVE-2024-35955: held from 0.012 to 0.012.

EPSS over last 30 days · oldest: 0.012 · newest: 0.012 · change: 0.000

Affected products

  • Linux — versions 2a49b025c36ae749cee7ccc4b7e456e02539cdc3, 6.8.7, 16a544f1e013ba0660612f3fe35393b143b19a84
  • Linux Kernel — versions 6.9
  • Debian Linux — versions 10.0

Weakness classification (CWE)

References

Frequently asked questions

What is CVE-2024-35955?
CVE-2024-35955 is a high-severity vulnerability in Linux, classified under Use After Free. CVSS score: 8.8/10. Published 2024-05-20.
How severe is CVE-2024-35955?
High severity. CVSS v3 base score is 8.8 out of 10.