CVE-2024-35955
CVE.org · Publicado
- Status do registro
- Publicado
- Ano do identificador (não é o ano de publicação)
- 2024
- Publicação na fonte
- Atualização na fonte
- Importado pelo cveboard
- Snapshot da fonte
- cve_2026-10-24_midnight_baseline ·
Texto da CNA em inglês
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.
Fatos de produtos e versões por escopo
Dados de correção desconhecidos; nenhuma versão corrigida é deduzida aqui. Dados ausentes não comprovam ausência de correção.
Exploração desconhecida; este catálogo não avalia exploração.
Linux
- Fornecedor
- Linux
- Produto
- Linux
- Plataformas
- Desconhecido
- Status padrão
unaffected
| Versão (version) | Status (status) | Esquema de versões (versionType) | Fim exclusivo (lessThan) | Fim inclusivo (lessThanOrEqual) | Mudanças de status (at → status) |
|---|---|---|---|---|---|
| 1c836bad43f3e2ff71cc397a6e6ccb4e7bd116f8 | affected | git | b5808d40093403334d939e2c3c417144d12a6f33 | Indisponível | Nenhuma listada |
| 6a119c1a584aa7a2c6216458f1f272bf1bc93a93 | affected | git | 93eb31e7c3399e326259f2caa17be1e821f5a412 | Indisponível | Nenhuma listada |
| 2a49b025c36ae749cee7ccc4b7e456e02539cdc3 | affected | git | 5062d1f4f07facbdade0f402d9a04a788f52e26d | Indisponível | Nenhuma listada |
| a1edb85e60fdab1e14db63ae8af8db3f0d798fb6 | affected | git | 2df2dd27066cdba8041e46a64362325626bdfb2e | Indisponível | Nenhuma listada |
| 28f6c37a2910f565b4f5960df52b2eccae28c891 | affected | git | 62029bc9ff2c17a4e3a2478d83418ec575413808 | Indisponível | Nenhuma listada |
| 28f6c37a2910f565b4f5960df52b2eccae28c891 | affected | git | d15023fb407337028a654237d8968fefdcf87c2f | Indisponível | Nenhuma listada |
| 28f6c37a2910f565b4f5960df52b2eccae28c891 | affected | git | 36b57c7d2f8b7de224980f1a284432846ad71ca0 | Indisponível | Nenhuma listada |
| 28f6c37a2910f565b4f5960df52b2eccae28c891 | affected | git | 325f3fb551f8cd672dbbfc4cf58b14f9ee3fc9e8 | Indisponível | Nenhuma listada |
| 4262b6eb057d86c7829168c541654fe0d48fdac8 | affected | git | Indisponível | Indisponível | Nenhuma listada |
| 97e813e6a143edf4208e15c72199c495ed80cea5 | affected | git | Indisponível | Indisponível | Nenhuma listada |
| 16a544f1e013ba0660612f3fe35393b143b19a84 | affected | git | Indisponível | Indisponível | Nenhuma listada |
| 4.19.256 | affected | semver | 4.19.313 | Indisponível | Nenhuma listada |
| 5.4.211 | affected | semver | 5.4.275 | Indisponível | Nenhuma listada |
| 5.10.137 | affected | semver | 5.10.216 | Indisponível | Nenhuma listada |
| 5.15.61 | affected | semver | 5.15.157 | Indisponível | Nenhuma listada |
| 4.14.291 | affected | semver | 4.15 | Indisponível | Nenhuma listada |
| 5.18.18 | affected | semver | 5.19 | Indisponível | Nenhuma listada |
| 5.19.2 | affected | semver | 5.20 | Indisponível | Nenhuma listada |
Linux
- Fornecedor
- Linux
- Produto
- Linux
- Plataformas
- Desconhecido
- Status padrão
affected
| Versão (version) | Status (status) | Esquema de versões (versionType) | Fim exclusivo (lessThan) | Fim inclusivo (lessThanOrEqual) | Mudanças de status (at → status) |
|---|---|---|---|---|---|
| 6.0 | affected | Indisponível | Indisponível | Indisponível | Nenhuma listada |
| 0 | unaffected | semver | 6.0 | Indisponível | Nenhuma listada |
| 4.19.313 | unaffected | semver | Indisponível | 4.19.* | Nenhuma listada |
| 5.4.275 | unaffected | semver | Indisponível | 5.4.* | Nenhuma listada |
| 5.10.216 | unaffected | semver | Indisponível | 5.10.* | Nenhuma listada |
| 5.15.157 | unaffected | semver | Indisponível | 5.15.* | Nenhuma listada |
| 6.1.87 | unaffected | semver | Indisponível | 6.1.* | Nenhuma listada |
| 6.6.28 | unaffected | semver | Indisponível | 6.6.* | Nenhuma listada |
| 6.8.7 | unaffected | semver | Indisponível | 6.8.* | Nenhuma listada |
| 6.9 | unaffected | original_commit_for_fix | Indisponível | * | Nenhuma listada |