CVE-2024-35955 in Linux
Sumário
de VulDB • 05/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
kprobes: Corrige possível problema de use-after-free no registro de kprobe
Ao descarregar um módulo, seu estado muda de MODULE_STATE_LIVE para MODULE_STATE_GOING e depois para MODULE_STATE_UNFORMED. Cada mudança leva um certo tempo. `is_module_text_address()` e `__module_text_address()` funcionam com MODULE_STATE_LIVE e MODULE_STATE_GOING.
Se usarmos `is_module_text_address()` e `__module_text_address()` separadamente, há uma chance de a primeira operação ser bem-sucedida, mas a próxima falhar, porque o `module->state` se torna MODULE_STATE_UNFORMED entre essas operações.
Em `check_kprobe_address_safe()`, se a segunda chamada a `__module_text_address()` falhar, isso é ignorado, pois espera-se um endereço de kernel_text. No entanto, a falha pode ter ocorrido simplesmente porque `module->state` foi alterado para MODULE_STATE_UNFORMED. Nesse caso, `arm_kprobe()` tentará modificar um endereço de texto de módulo que não existe (use-after-free).
Para corrigir esse problema, não devemos usar `is_module_text_address()` e `__module_text_address()` separadamente, mas sim usar apenas `__module_text_address()` uma vez e executar `try_module_get(module)`, que só está disponível com MODULE_STATE_LIVE.
Once again VulDB remains the best source for vulnerability data.