U.S. flag   An official website of the United States government
Dot gov

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Https

Secure .gov websites use HTTPS
A lock (Dot gov) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.

Vulnerability Change Records for CVE-2026-46272

Change History

CVE Translated by NIST 7/22/2026 4:10:00 PM

Action Type Old Value New Value
Added Translation

                  
                
              
Title: Linux, Description: En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:

coresight: tmc-etr: Soluciona condición de carrera entre el modo sysfs y perf

Al intentar ejecutar los modos perf y sysfs simultáneamente, el WARN_ON() en tmc_etr_enable_hw() se activa a veces:

 ADVERTENCIA: CPU: 42 PID: 3911571 en drivers/hwtracing/coresight/coresight-tmc-etr.c:1060 tmc_etr_enable_hw+0xc0/0xd8 [coresight_tmc]
 [..recorte..]
 Rastro de llamada:
  tmc_etr_enable_hw+0xc0/0xd8 [coresight_tmc] (P)
  tmc_enable_etr_sink+0x11c/0x250 [coresight_tmc] (L)
  tmc_enable_etr_sink+0x11c/0x250 [coresight_tmc]
  coresight_enable_path+0x1c8/0x218 [coresight]
  coresight_enable_sysfs+0xa4/0x228 [coresight]
  enable_source_store+0x58/0xa8 [coresight]
  dev_attr_store+0x20/0x40
  sysfs_kf_write+0x4c/0x68
  kernfs_fop_write_iter+0x120/0x1b8
  vfs_write+0x2c8/0x388
  ksys_write+0x74/0x108
  __arm64_sys_write+0x24/0x38
  el0_svc_common.constprop.0+0x64/0x148
  do_el0_svc+0x24/0x38
  el0_svc+0x3c/0x130
  el0t_64_sync_handler+0xc8/0xd0
  el0t_64_sync+0x1ac/0x1b0
 ---[ fin del rastro 0000000000000000 ]---

Dado que la habilitación del modo sysfs está separada en dos regiones críticas, una para la asignación del búfer sysfs y otra para la habilitación del hardware, es posible que haya una condición de carrera con el modo perf. Soluciona esto verificando dos veces si el modo perf ha sido utilizado antes de habilitar el hardware en el modo sysfs.

 modo:
   [modo sysfs]                   [modo perf]
   tmc_etr_get_sysfs_buffer()
     spin_lock(&drvdata->spinlock)
     [asignación de búfer sysfs]
     spin_unlock(&drvdata->spinlock)
                                  spin_lock(&drvdata->spinlock)
                                  tmc_etr_enable_hw()
                                    drvdata->etr_buf = etr_perf->etr_buf
                                  spin_unlock(&drvdata->spinlock)
   spin_lock(&drvdata->spinlock)
   tmc_etr_enable_hw()
     WARN_ON(drvdata->etr_buf) // ADVERTENCIA ya que etr_buf inicializado en
                                  el lado perf
   spin_unlock(&drvdata->spinlock)

Con esta solución, mantenemos la verificación de CS_MODE_PERF en get_etr_sysfs_buf. Esto asegura que verifiquemos si el modo perf ya está en ejecución antes de asignar realmente el búfer. Entonces podemos ahorrar el tiempo de asignar/liberar el búfer sysfs si hay una condición de carrera con el modo perf.