CVE-2026-46263 in Linuxinformación

Resumen

por VulDB • 2026-06-04

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

drm/amd/display: Corrección del índice del codificador de flujo fuera de límites v3

eng_id puede ser negativo y stream_enc_regs[] puede tener un índice fuera de límites.

eng_id se utiliza directamente como índice en stream_enc_regs[], la cual tiene solo 5 entradas. Cuando eng_id es 5 (ENGINE_ID_DIGF) o negativo, esto puede acceder a memoria más allá del final del array.

Se añade una comprobación de límites utilizando ARRAY_SIZE() antes de usar eng_id como índice. La conversión a tipo sin signo también rechaza los valores negativos.

Esto evita el acceso fuera de límites.

Corrige el siguiente error de smatch: dcn*_resource.c: stream_encoder_create() puede indexar stream_enc_regs[eng_id] fuera de límites (tamaño 5).

drivers/gpu/drm/amd/amdgpu/../display/dc/resource/dcn351/dcn351_resource.c 1246 static struct stream_encoder *dcn35_stream_encoder_create( 1247 enum engine_id eng_id, 1248 struct dc_context *ctx) 1249 {

...

1255 1256 /* Mapeo de bloques de registros VPG, AFMT, DME a la instancia del bloque DIO */ 1257 if (eng_id <= ENGINE_ID_DIGF) {

ENGINE_ID_DIGF es 5. ¿debería <= ser <?

Sin relación, pero, ugh, ¿por qué Smatch dice que "eng_id" puede ser negativo? end_id es de tipo signed long, pero hay comprobaciones en el llamador que impiden que sea negativo.

1258 vpg_inst = eng_id; 1259 afmt_inst = eng_id; 1260 } else 1261 return NULL; 1262

...

1281 1282 dcn35_dio_stream_encoder_construct(enc1, ctx, ctx->dc_bios, 1283 eng_id, vpg, afmt, --> 1284 &stream_enc_regs[eng_id],
^^^^^^^^^^^^^^^^^^^^^^^ Este array stream_enc_regs[] tiene 5 elementos, por lo que estamos un elemento más allá del final del array.

...

1287 return &enc1->base; 1288 }

v2: usar comprobación de límites explícita como sugirieron Roman/Dan; evitar la conversión a unsigned int

v3: El compilador ya sabe cómo comparar los dos valores, por lo que la conversión (int) no es necesaria. (Roman)

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-05-13

Divulgación

2026-06-03

Moderación

aceptado

Artículo

VDB-368168

CPE

listo

EPSS

0.00018

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!