CVE-2026-74274 in Linuxinfo

Zusammenfassung

von VulDB • 15.08.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

cxl/region: Füllen des ersten freien Slots im targets[]-Array während der automatischen Erkennung (Auto-Discovery)

Ein ungültiger Zeiger auf einen Endpoint-Decoder in dem Zielarray eines aktiven Bereichs ist vom CXL-Treiber nicht zulässig. Das bedeutet, dass der CXL-Treiber stets davon ausgeht, dass die ersten p->nr_targets-Einträge des Zielarrays in einem automatisch erstellten (auto-assembly) Bereich gültig sind. Es gibt jedoch Szenarien, die dazu führen können, dass NULL-Zeigerlücken im Zielarray entstehen.

1. Wenn cxl_cancel_auto_attach() einen Endpoint-Decoder aus dem Zielarray entfernt, wird der Zielslot auf NULL gesetzt. Falls der entfernte Endpoint-Decoder nicht das letzte Element im Zielarray ist, enthält das Zielarray eine Lücke mit einem NULL-Wert.

2. Wenn ein automatisch erstellter Bereich (auto-assembly region) einen zugewiesenen Endpoint-Decoder entfernt und dieser Decodierer nicht das letzte Element im Zielarray war, bleibt stets eine Lücke mit einem NULL-Wert im Zielarray zurück.

Wenn in dem Zielarray eines Bereichs eine NULL-Zeigerlücke existiert, führt dies zu zwei potenziellen Problemen: 1. Zugriff auf einen Endpoint-Decoder über einen NULL-Zeiger. Dies löst immer einen Calltrace wie den folgenden aus: 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. Nicht genügend gültige Endpoint-Decoder sind an einen automatisch erstellten Bereich (auto-assembly region) angehängt. Wenn ein automatisch erstellter Bereich mit einem Sperrflag erstellt wird oder ein zugewiesener Endpoint-Decoder mit einem Sperrflag versehen ist, bedeutet dies, dass der zugewiesene Endpoint-Decoder beim Trennen nicht zurückgesetzt wird; sie können sich erneut an den automatisch erstellten Bereich anschließen. Der CXL-Region-Treiber verlässt sich jedoch auf p->nr_targets, um zu überprüfen, ob die erforderliche Anzahl von Endpoint-Decodern angehängt wurde, und NULL-Zeiger für Endpoint-Decoder werden in diesem Fall weiterhin mitgezählt.

Um diese Probleme zu beheben, wird die Logik von cxl_region_attach_auto() so angepasst, dass der erste freie Zielslot für das Anhängen eines Endpoint-Decoders gefunden wird. Dies stellt sicher, dass Lücken im Zielarray (NULL-Lücken) gefüllt werden, anstatt neue Endpoint-Decoder am Ende des Zielarrays hinzuzufügen.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Zuständig

Linux

Reservieren

15.08.2026

Veröffentlichung

15.08.2026

Moderieren

akzeptiert

Eintrag

VDB-390230

CPE

bereit

EPSS

0.00172

KEV

nein

Aktivitäten

low

Quellen

Want to stay up to date on a daily basis?

Enable the mail alert feature now!