cveboard RSS feed

CVE-2024-35955

CVE.org · Published

Historical CVEsJSONAI instructions

Record status
Published
Identifier year (not publication year)
2024
Source publication
Source updated
Imported by cveboard
Source snapshot
cve_2026-10-24_midnight_baseline ·

Plain text

CNA source text (English)

kprobes: Fix possible use-after-free issue on kprobe registration

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.

Scoped product and version facts

Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.

Exploitation unknown; this catalogue does not assess exploitation.

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
unaffected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
1c836bad43f3e2ff71cc397a6e6ccb4e7bd116f8affectedgitb5808d40093403334d939e2c3c417144d12a6f33UnavailableNone listed
6a119c1a584aa7a2c6216458f1f272bf1bc93a93affectedgit93eb31e7c3399e326259f2caa17be1e821f5a412UnavailableNone listed
2a49b025c36ae749cee7ccc4b7e456e02539cdc3affectedgit5062d1f4f07facbdade0f402d9a04a788f52e26dUnavailableNone listed
a1edb85e60fdab1e14db63ae8af8db3f0d798fb6affectedgit2df2dd27066cdba8041e46a64362325626bdfb2eUnavailableNone listed
28f6c37a2910f565b4f5960df52b2eccae28c891affectedgit62029bc9ff2c17a4e3a2478d83418ec575413808UnavailableNone listed
28f6c37a2910f565b4f5960df52b2eccae28c891affectedgitd15023fb407337028a654237d8968fefdcf87c2fUnavailableNone listed
28f6c37a2910f565b4f5960df52b2eccae28c891affectedgit36b57c7d2f8b7de224980f1a284432846ad71ca0UnavailableNone listed
28f6c37a2910f565b4f5960df52b2eccae28c891affectedgit325f3fb551f8cd672dbbfc4cf58b14f9ee3fc9e8UnavailableNone listed
4262b6eb057d86c7829168c541654fe0d48fdac8affectedgitUnavailableUnavailableNone listed
97e813e6a143edf4208e15c72199c495ed80cea5affectedgitUnavailableUnavailableNone listed
16a544f1e013ba0660612f3fe35393b143b19a84affectedgitUnavailableUnavailableNone listed
4.19.256affectedsemver4.19.313UnavailableNone listed
5.4.211affectedsemver5.4.275UnavailableNone listed
5.10.137affectedsemver5.10.216UnavailableNone listed
5.15.61affectedsemver5.15.157UnavailableNone listed
4.14.291affectedsemver4.15UnavailableNone listed
5.18.18affectedsemver5.19UnavailableNone listed
5.19.2affectedsemver5.20UnavailableNone listed

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
affected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
6.0affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver6.0UnavailableNone listed
4.19.313unaffectedsemverUnavailable4.19.*None listed
5.4.275unaffectedsemverUnavailable5.4.*None listed
5.10.216unaffectedsemverUnavailable5.10.*None listed
5.15.157unaffectedsemverUnavailable5.15.*None listed
6.1.87unaffectedsemverUnavailable6.1.*None listed
6.6.28unaffectedsemverUnavailable6.6.*None listed
6.8.7unaffectedsemverUnavailable6.8.*None listed
6.9unaffectedoriginal_commit_for_fixUnavailable*None listed