Linux Kernel hasta 5.15.77/6.0.7 fs/btrfs/tree-mod-log.c tree_mod_log_rewind denegación de servicio

CVSS Puntuación meta temporalPrecio actual del exploit (≈)Puntuación de interés CTI
4.9$0-$5k0.00

Resumeninformación

Una vulnerabilidad fue encontrada en Linux Kernel hasta 5.15.77/6.0.7 y clasificada como problemática. Está afectada una función desconocida en el archivo fs/btrfs/tree-mod-log.c. El manejo da lugar a denegación de servicio. La vulnerabilidad es identificada como CVE-2022-49898. No se encuentra disponible ningún exploit. El mejor modo sugerido para mitigar el problema es actualizar a la última versión.

Detallesinformación

Una vulnerabilidad clasificada como problemática fue encontrada en Linux Kernel hasta 5.15.77/6.0.7. La función tree_mod_log_rewind del archivo fs/btrfs/tree-mod-log.c es afectada por esta vulnerabilidad. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase denegación de servicio. Esto tiene repercusión sobre la la disponibilidad. El resumen de CVE es:

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs: se corrige el mal manejo del registro de mod de árbol de nodos reasignados ¡Hemos estado viendo el siguiente ERROR de pánico en el kernel de producción en fs/btrfs/tree-mod-log.c:677! código de operación no válido: 0000 [#1] SMP RIP: 0010:tree_mod_log_rewind+0x1b4/0x200 RSP: 0000:ffffc9002c02f890 EFLAGS: 00010293 RAX: 0000000000000003 RBX: ffff8882b448c700 RCX: 0000000000000000 RDX: 0000000000008000 RSI: 00000000000000a7 RDI: ffff88877d831c00 RBP: 0000000000000002 R08: 000000000000009f R09: 00000000000000000 R10: 0000000000000000 R11: 00000000000100c40 R12: 000000000000001 R13: ffff8886c26d6a00 R14: ffff88829f5424f8 R15: ffff88877d831a00 FS: 00007fee1d80c780(0000) GS:ffff8890400c0000(0000) knlGS:000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fee1963a020 CR3: 0000000434f33002 CR4: 00000000007706e0 DR0: 00000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Rastreo de llamadas: btrfs_get_old_root+0x12b/0x420 btrfs_search_old_slot+0x64/0x2f0 ? tree_mod_log_oldest_root+0x3d/0xf0 resolve_indirect_ref+0xfd/0x660 ? ulist_alloc+0x31/0x60 ? kmem_cache_alloc_trace+0x114/0x2c0 find_parent_nodes+0x97a/0x17e0 ? ulist_alloc+0x30/0x60 btrfs_find_all_roots_safe+0x97/0x150 iterate_extent_inodes+0x154/0x370 ? btrfs_search_path_in_tree+0x240/0x240 iterate_inodes_from_logical+0x98/0xd0 ? btrfs_search_path_in_tree+0x240/0x240 btrfs_ioctl_logical_to_ino+0xd9/0x180 btrfs_ioctl+0xe2/0x2ec0 ? __mod_memcg_lruvec_state+0x3d/0x280 ? do_sys_openat2+0x6d/0x140 ? kretprobe_dispatcher+0x47/0x70 ? kretprobe_rethook_handler+0x38/0x50 ? rethook_trampoline_handler+0x82/0x140 ? arch_rethook_trampoline_callback+0x3b/0x50 ? kmem_cache_free+0xfb/0x270 ? do_sys_openat2+0xd5/0x140 __x64_sys_ioctl+0x71/0xb0 do_syscall_64+0x2d/0x40 Which is this code in tree_mod_log_rewind() switch (tm->op) { case BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING: BUG_ON(tm->slot < n); Esto ocurre porque reproducimos los nodos en el orden en que sucedieron, y cuando hacemos un REPLACE registraremos un REMOVE_WHILE_FREEING para cada ranura, comenzando en 0. 'n' aquí es el número de elementos en este bloque, que en este caso era 1, pero teníamos 2 operaciones REMOVE_WHILE_FREEING. La causa raíz real de esto fue que estábamos reproduciendo operaciones para un bloque que no debería haberse reproducido. Considere la siguiente secuencia de eventos: 1. Tenemos una raíz ya modificada y ejecutamos btrfs_get_tree_mod_seq(). 2. Comenzamos a eliminar elementos de esta raíz, activando KEY_REPLACE para sus ranuras secundarias. 3. Eliminamos uno de los dos hijos a los que apunta este nodo raíz, lo que activa la promoción del hijo restante y libera este nodo. 4. Modificamos una nueva raíz y reasignamos el nodo anterior al nodo raíz de esta otra raíz. El registro de mod del árbol se parece a esto lógico 0 op KEY_REPLACE (ranura 1) seq 2 lógico 0 op KEY_REMOVE (ranura 1) seq 3 lógico 0 op KEY_REMOVE_WHILE_FREEING (ranura 0) seq 4 lógico 4096 op LOG_ROOT_REPLACE (antiguo lógico 0) seq 5 lógico 8192 op KEY_REMOVE_WHILE_FREEING (ranura 1) seq 6 lógico 8192 op KEY_REMOVE_WHILE_FREEING (ranura 0) seq 7 lógico 0 op LOG_ROOT_REPLACE (antiguo lógico 8192) seq 8 >A partir de aquí el error se activa con los siguientes pasos 1. Llama a btrfs_get_old_root() en new_root. 2. Llamamos a tree_mod_log_oldest_root(btrfs_root_node(new_root)), que actualmente tiene un valor lógico 0. 3. tree_mod_log_oldest_root() llama a tree_mod_log_search_oldest(), que nos proporciona la secuencia KEY_REPLACE 2. Dado que no es un LOG_ROOT_REPLACE, creemos erróneamente que no tenemos una raíz antigua, ya que esperamos que el cambio más reciente sea un LOG_ROOT_REPLACE. 4. En tree_mod_log_oldest_root(), no tenemos un LOG_ROOT_REPLACE, por lo que no establecemos old_root; simplemente usamos nuestra e ---truncated---

El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2022-49898. Se considera difícil de explotar. Detalles técnicos son conocidos, pero no hay ningún exploit público disponible.

Para el scanner Nessus se dispone de un plugin ID 240793 (SUSE SLES12 Security Update : kernel (SUSE-SU-2025:01983-1)), que puede ayudar a determinar la existencia del riesgo analizado.

Una actualización a la versión 5.15.78 o 6.0.8 elimina esta vulnerabilidad. Aplicando el parche 007058eb8292efc4c88f921752194b83269da085/52b2b65c9eb56fd829dda323786db828627ff7e6/968b71583130b6104c9f33ba60446d598e327a8b es posible eliminar el problema. El parche puede ser descargado de git.kernel.org. El mejor modo sugerido para mitigar el problema es Actualización.

La vulnerabilidad también está documentado en la base de datos Tenable (240793). If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Productoinformación

Escribe

Proveedor

Nombre

Versión

Licencia

Sitio web

CPE 2.3información

CPE 2.2información

CVSSv4información

VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

CVSSv3información

VulDB Puntuación meta base: 5.0
VulDB Puntuación meta temporal: 4.9

VulDB Puntuación base: 4.6
VulDB Puntuación temporal: 4.4
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

NVD Puntuación base: 5.5
NVD Vector: 🔍

CVSSv2información

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplejidadAutenticaciónConfidencialidadIntegridadDisponibilidad
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear

VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍

Explotacióninformación

Clase: Denegación de servicio
CWE: CWE-770 / CWE-400 / CWE-404
CAPEC: 🔍
ATT&CK: 🔍

Físico: En parte
Local: Sí
Remoto: En parte

Disponibilidad: 🔍
Estado: No está definido

EPSS Score: 🔍
EPSS Percentile: 🔍

Predicción de precios: 🔍
Estimación del precio actual: 🔍

0-DayDesbloquearDesbloquearDesbloquearDesbloquear
HoyDesbloquearDesbloquearDesbloquearDesbloquear

Nessus ID: 240793
Nessus Nombre: SUSE SLES12 Security Update : kernel (SUSE-SU-2025:01983-1)

Inteligencia de amenazasinformación

Interés: 🔍
Actores activos: 🔍
Grupos APT activos: 🔍

Contramedidasinformación

Recomendación: Actualización
Estado: 🔍

Hora de 0 días: 🔍

Actualización: Kernel 5.15.78/6.0.8
Parche: 007058eb8292efc4c88f921752194b83269da085/52b2b65c9eb56fd829dda323786db828627ff7e6/968b71583130b6104c9f33ba60446d598e327a8b

Línea de tiempoinformación

2025-05-01 🔍
2025-05-01 +0 días 🔍
2025-05-01 +0 días 🔍
2025-11-11 +193 días 🔍

Fuentesinformación

Proveedor: kernel.org

Aviso: git.kernel.org
Estado: Confirmado

CVE: CVE-2022-49898 (🔍)
GCVE (CVE): GCVE-0-2022-49898
GCVE (VulDB): GCVE-100-307029

Artículoinformación

Fecha de creación: 2025-05-01 18:58
Actualizado: 2025-11-11 00:04
Cambios: 2025-05-01 18:58 (58), 2025-06-28 05:26 (2), 2025-11-11 00:04 (12)
Completo: 🔍
Cache ID: 216::103

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Discusión

Sin comentarios aún. Idiomas: es + pt + en.

Por favor, inicie sesión para comentar.

Might our Artificial Intelligence support you?

Check our Alexa App!