Vulnerabilidad en kernel de Linux (CVE-2023-52580)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
02/03/2024
Última modificación:
16/01/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net/core: Reparar el disector de flujo ETH_P_1588 Cuando se envía una trama sin formato Ethernet PTP con un tamaño de más de 256 bytes seguido de un patrón 0xff a __skb_flow_dissect, el cálculo del valor nhoff es incorrecto. Por ejemplo: hdr->message_length toma el valor incorrecto (0xffff) y no replica la longitud real del encabezado. En este caso, se anuló el valor 'nhoff' y el encabezado PTP no se analizó correctamente. Esto provoca un fallo del kernel. neto/núcleo: flow_dissector disector de flujo neto/núcleo nhoff = 0x0000000e disector de flujo neto/núcleo hdr->message_length = 0x0000ffff disector de flujo neto/núcleo nhoff = 0x0001000d (desbordamiento u16) ... skb lineal: 00000000: 00 a0 c9 00 00 00 00 a0 c9 00 00 00 88 skb frag: 00000000: f7 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff El uso del tamaño de la estructura ptp_header permitirá el cálculo corregido del valor nhoff. disector de flujo neto/núcleo nhoff = 0x0000000e disector de flujo neto/núcleo nhoff = 0x00000030 (tamaño de ptp_header) ... skb lineal: 00000000: 00 a0 c9 00 00 00 00 a0 c9 00 00 00 88 f7 ff ff skb lineal: 00000 010:ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff skb lineal: 00000020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff skb frag: 00000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Seguimiento del kernel: [74.984279] ------------[ cortar aquí ]------------ [ 74.989471] ERROR del kernel en include/linux /skbuff.h:2440! [ 74.995237] código de operación no válido: 0000 [#1] PREEMPT SMP NOPTI [ 75.001098] CPU: 4 PID: 0 Comm: swapper/4 Tainted: GU 5.15.85-intel-ese-standard-lts #1 [ 75.011629] Nombre de hardware: Intel Corporation A-Island (CPU:AlderLake)/A-Island (ID:06), BIOS SB_ADLP.01.01.00.01.03.008.D-6A9D9E73-dirty 30 de marzo de 2023 [ 75.026507] RIP: 0010:eth_type_trans+0xd0/0x130 [ 75.031594] Código: 03 88 47 78 eb c7 8b 47 68 2b 47 6c 48 8b 97 c0 00 00 00 83 f8 01 7e 1b 48 85 d2 74 06 66 83 3a ff 74 09 b8 00 04 00 00 eb ab <0f> 0b b8 00 01 00 00 eb a2 48 85 ff 74 eb 48 8d 54 24 06 31 f6 b9 [ 75.052612] RSP: 0018:ffff9948c0228de0 EFLAGS: 00010297 [ 75.058473] RAX: 0000000 0000003f2 RBX: ffff8e47047dc300 RCX: 0000000000001003 [ 75.066462] RDX: ffff8e4e8c9ea040 RSI : ffff8e4704e0a000 RDI: ffff8e47047dc300 [ 75.074458] RBP: ffff8e4704e2acc0 R08: 00000000000003f3 R09: 0000000000000800 [ 75.082466] R10: 00 0000000000000d R11: ffff9948c0228dec R12: ffff8e4715e4e010 [ 75.090461] R13: ffff9948c0545018 R14: 00000000000000001 R15: 00000000000000800 [ 75.098464] FS: 0000000000000000(0000) GS:ffff8e4e8fb00000(0000) knlGS:00000000000000000 [ 75.107530] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 75.113982] CR2: 00007f5eb3593 4a0 CR3: 0000000150e0a002 CR4: 0000000000770ee0 [ 75.121980] PKRU: 55555554 [ 75.125035] Seguimiento de llamadas: [ 75.127792 ] [75.130063] ? eth_get_headlen+0xa4/0xc0 [ 75.134472] igc_process_skb_fields+0xcd/0x150 [ 75.139461] igc_poll+0xc80/0x17b0 [ 75.143272] __napi_poll+0x27/0x170 [ 75.147192] net_ rx_action+0x234/0x280 [ 75.151409] __do_softirq+0xef/0x2f4 [ 75.155424] irq_exit_rcu+ 0xc7/0x110 [ 75.159432] common_interrupt+0xb8/0xd0 [ 75.163748] [ 75.166112] [ 75.168473] asm_common_interrupt+0x22/0x40 [ 75.173175] RIP: 0010:cpuid le_enter_state+0xe2/0x350 [ 75.178749] Código: 85 c0 0f 8f 04 02 00 00 31 ff e8 39 6c 67 ff 45 84 ff 74 12 9c 58 f6 c4 02 0f 85 50 02 00 00 31 ff e8 52 b0 6d ff fb 45 85 f6 <0f> 88 b1 00 0 0 00 49 63 ce 4c 2b 2c 24 48 89 c8 48 6b d1 68 48 c1 [ 75.199757] RSP: 0018:ffff9948c013bea8 EFLAGS: 00000202 [ 75.205614] RAX: ffff8e4e8fb00000 RBX: ff ffb948bfd23900 RCX: 000000000000001f [ 75.213619] RDX: 0000000000000004 RSI: ffffffff94206161 RDI: ffffffff94212e20 [ 75.221620] RBP: 0000000000000004 R08: 000000117568973a R09: 0000000000000001 [ 75.229622] R10: 000000000000afc8 R11: ffff8e4e8fb29ce4 R12: ffffffff945ae980 [ 75.237628] R13: 000000117568973a R14: 0000000000000004 R15: 0000000000000000 [ 75.245635] ? ---truncado---
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.12 (incluyendo) | 5.15.134 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.56 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.5.6 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/488ea2a3e2666022f79abfdd7d12e8305fc27a40
- https://git.kernel.org/stable/c/48e105a2a1a10adc21c0ae717969f5e8e990ba48
- https://git.kernel.org/stable/c/75ad80ed88a182ab2ad5513e448cf07b403af5c3
- https://git.kernel.org/stable/c/f90a7b9586d72f907092078a9f394733ca502cc9
- https://git.kernel.org/stable/c/488ea2a3e2666022f79abfdd7d12e8305fc27a40
- https://git.kernel.org/stable/c/48e105a2a1a10adc21c0ae717969f5e8e990ba48
- https://git.kernel.org/stable/c/75ad80ed88a182ab2ad5513e448cf07b403af5c3
- https://git.kernel.org/stable/c/f90a7b9586d72f907092078a9f394733ca502cc9