Vulnerabilidad en kernel de Linux (CVE-2024-56571)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
27/12/2024
Última modificación:
13/02/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: media: uvcvideo: Requerir que las entidades tengan un ID único distinto de cero Según la especificación UVC 1.1+ 3.7.2, las unidades y terminales deben tener un ID único distinto de cero. ``` A cada Unidad y Terminal dentro de la función de video se le asigna un número de identificación único, el ID de Unidad (UID) o el ID de Terminal (TID), contenido en el campo bUnitID o bTerminalID del descriptor. El valor 0x00 está reservado para ID indefinido, ``` Por lo tanto, deniega la asignación de una entidad con ID 0 o un ID que pertenezca a una unidad que ya se haya añadido a la lista de entidades. Esto también evita que algunos reproductores syzkaller activen advertencias debido a una cadena de entidades que se refieren a sí mismos. En un caso particular, una Unidad de Salida está conectada a una Unidad de Entrada, ambas con el mismo ID de 1. Pero al buscar el ID de origen de la Unidad de Salida, se encuentra esa misma entidad en lugar de la entidad de entrada, lo que genera dichas advertencias. En otro caso, una cadena hacia atrás se consideró terminada ya que el ID de origen era 0. Más tarde, se encontró esa entidad, pero sus pads no eran válidos. Aquí hay un seguimiento de pila de muestra para uno de esos casos. [ 20.650953] usb 1-1: nuevo dispositivo USB de alta velocidad número 2 usando dummy_hcd [ 20.830206] usb 1-1: Usando ep0 maxpacket: 8 [ 20.833501] usb 1-1: config 0 descriptor?? [ 21.038518] usb 1-1: descriptor de cadena 0 error de lectura: -71 [ 21.038893] usb 1-1: Se encontró el dispositivo UVC 0.00 (2833:0201) [ 21.039299] uvcvideo 1-1:0.0: ¡El tipo de entidad para la entidad Output 1 no se inicializó! [ 21.041583] uvcvideo 1-1:0.0: ¡El tipo de entidad para la entidad Entrada 1 no se inicializó! [ 21.042218] ------------[ cortar aquí ]------------ [ 21.042536] ADVERTENCIA: CPU: 0 PID: 9 en drivers/media/mc/mc-entity.c:1147 media_create_pad_link+0x2c4/0x2e0 [ 21.043195] Módulos vinculados en: [ 21.043535] CPU: 0 UID: 0 PID: 9 Comm: kworker/0:1 No contaminado 6.11.0-rc7-00030-g3480e43aeccf #444 [ 21.044101] Nombre del hardware: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014 [ 21.044639] Cola de trabajo: usb_hub_wq evento_hub [ 21.045100] RIP: 0010:media_create_pad_link+0x2c4/0x2e0 [ 21.045508] Código: fe e8 20 01 00 00 b8 f4 ff ff ff 48 83 c4 30 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc 0f 0b eb e9 0f 0b eb 0a 0f 0b eb 06 <0f> 0b eb 02 0f 0b b8 ea ff ff ff eb d4 66 2e 0f 1f 84 00 00 00 00 [ 21.046801] RSP: 0018:ffffc9000004b318 EFLAGS: 00010246 [ 21.047227] RAX: ffff888004e5d458 RBX: 0000000000000000 RCX: ffffffff818fccf1 [ 21.047719] RDX: 000000000000007b RSI: 0000000000000000 RDI: ffff888004313290 [ 21.048241] RBP: ffff888004313290 R08: 0001ffffffffffff R09: 0000000000000000 [ 21.048701] R10: 0000000000000013 R11: 0001888004313290 R12: 0000000000000003 [ 21.049138] R13: ffff888004313080 R14: ffff888004313080 R15: 0000000000000000 [ 21.049648] FS: 0000000000000000(0000) GS:ffff88803ec00000(0000) knlGS:0000000000000000 [ 21.050271] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 21.050688] CR2: 0000592cc27635b0 CR3: 000000000431c000 CR4: 0000000000750ef0 [ 21.051136] PKRU: 55555554 [ 21.051331] Rastreo de llamadas: [ 21.051480] [ 21.051611] ? __warn+0xc4/0x210 [ 21.051861] ? media_create_pad_link+0x2c4/0x2e0 [ 21.052252] ? report_bug+0x11b/0x1a0 [ 21.052540] ? trace_hardirqs_on+0x31/0x40 [ 21.052901] ? handle_bug+0x3d/0x70 [ 21.053197] ? exc_invalid_op+0x1a/0x50 [ 21.053511] ? asm_exc_invalid_op+0x1a/0x20 [ 21.053924] ? media_create_pad_link+0x91/0x2e0 [ 21.054364] ? media_create_pad_link+0x2c4/0x2e0 [ 21.054834] ? __v4l2_device_register_subdev+0x202/0x210 [ 21.055837] uvc_mc_register_entities+0x358/0x400 [ 21.056144] uvc_register_chains+0x1fd/0x290 [ 21.056413] uvc_probe+0x380e/0x3dc0 [ 21.056676] ? __lock_acquire+0x5aa/0x26e0 [ 21.056946] ? find_held_lock+0x33/0xa0 [ 21.057196] ? kernfs_activate+0x70/0x80 [ 21.057533] ? usb_match_dy ---truncado---
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/19464d73225224dca31e2fd6e7d6418facf5facb
- https://git.kernel.org/stable/c/3dd075fe8ebbc6fcbf998f81a75b8c4b159a6195
- https://git.kernel.org/stable/c/4f74bd307f078c0605b9f6f1edb8337dee35fa2e
- https://git.kernel.org/stable/c/72ed66623953106d15825513c82533a03ba29ecd
- https://git.kernel.org/stable/c/b11813bc2f4eee92695075148c9ba996f54feeba
- https://git.kernel.org/stable/c/bde4e7c1527151b596089b3f984818ab537eeb7f



