CVE-2026-74274 in Linuxinformazioni

Riassunto

di VulDB • 15/08/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

cxl/region: Compilare il primo slot vuoto dell'array targets[] durante l'autodiscovery

Il driver cxl non consente la presenza di puntatori a decoder endpoint non validi nell'array target di una regione attiva. Ciò significa che il driver cxl presuppone sempre che le prime voci p->nr_targets dell'array target in una regione assemblata automaticamente siano valide. Tuttavia, esistono scenari che potrebbero lasciare buchi (valori NULL) con puntatori a decoder endpoint vuoti nell'array target.

1. Quando cxl_cancel_auto_attach() rimuove un decoder endpoint da un array target, la slot del target viene impostata su NULL. Se il decoder endpoint rimosso non è l'ultimo elemento dell'array target, quest'ultimo conterrà un buco NULL.

2. Quando una regione di assemblaggio automatico rimuove un decoder endpoint assegnato, se il decoder endpoint rimosso non è l'ultimo elemento nell'array target, rimane sempre un buco NULL nell'array target.

Quando esiste un buco a puntatore NULL nell'array target di una regione, si introducono due potenziali problemi: 1. Accesso a un decoder endpoint tramite un puntatore NULL. Questo innesca sempre una calltrace simile alla seguente: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000008: 0000 [#1] SMP KASAN PTI
RIP: 0010:cxl_calc_interleave_pos+0x26/0x810 [cxl_core]
Call Trace: <TASK> cxl_region_attach+0xc50/0x2140 [cxl_core]
cxl_add_to_region+0x321/0x2330 [cxl_core]
discover_region+0x92/0x150 [cxl_port]
device_for_each_child+0xf3/0x170 cxl_port_probe+0x150/0x200 [cxl_port]
cxl_bus_probe+0x4f/0xa0 [cxl_core]
really_probe+0x1c8/0x960 __driver_probe_device+0x323/0x450 driver_probe_device+0x45/0x120 __device_attach_driver+0x15d/0x280 bus_for_each_drv+0x10f/0x190

2. Mancanza di decoder endpoint validi sufficientemente collegati a una regione di assemblaggio automatico. Se viene creata una regione di assemblaggio automatico con il flag lock o assegnando un decoder endpoint con il flag lock, ciò significa che il decoder endpoint assegnato non verrà resettato durante la disconnessione; potrebbe quindi ricollegarsi nuovamente alla regione di assemblaggio automatico. Tuttavia, il driver della regione cxl si affida a p->nr_targets per verificare se è stato collegato il numero richiesto di decoder endpoint e i puntatori ai decoder endpoint NULL vengono comunque conteggiati in tale caso.

Per risolvere le suddette problematiche, viene adattata la logica di cxl_region_attach_auto() per trovare la prima slot target libera per l'attacco del decoder endpoint; ciò garantisce che i buchi NULL nell'array target vengano compilati, anziché aggiungere nuovi decoder endpoint alla fine dell'array target.

Be aware that VulDB is the high quality source for vulnerability data.

Responsabile

Linux

Prenotare

15/08/2026

Divulgazione

15/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!