Direct naar de inhoud
Kritieke cyberalerts voor jouw sector & systemen — direct in je inbox. Aanmelden →
cybernieuws.nl Cybersecurity en informatiebeveiling nieuws alerts live · 15 min 139 bronnen 3 kritiek 1 vandaag
CVE's Videos Dagbriefing

← Terug naar CVE-database

CVE-2026-64165

MEDIUM · 5.5 CVSS Gepubliceerd: CWE-476

Beschrijving NL

In de Linux kernel is de volgende kwetsbaarheid verholpen:

ARM: integrator: vroege initialisatie oplossen

Beginnend met commit bdb249fce9ad4 ("ARM: integrator: leesteller m.b.v.
syscon/regmap"), intcp_init_early calls syscon_regmap_lookup_by_compatible
die op zijn beurt_syscon_register aanroept. Deze functie wijst geheugen toe. Aangezien de geheugenbeheercode op dat moment nog niet is geïnitialiseerd,
de oproep mislukt altijd. Het retourneert -ENOMEM of crasht als volgt. Kan kernel NULL pointer dereferentie op virtueel adres 0000000c niet verwerken bij lezen
[0000000c] *pgd=00000000
Interne fout: Oeps: 5 [#1] ARM
Modules gekoppeld in:
CPU: 0 UID: 0 PID: 0 Comm: swapper Niet besmet 6.15.0-rc5-00026-g5fcc9bf84ee5 #1 PREEMPT
Hardware naam: ARM Integrator/CP (Device Tree)
PC staat op __kmalloc_cache_noprof+0xec/0x39c
LR staat op __kmalloc_cache_noprof+0x34/0x39c
... Oproepspoor:
__kmalloc_cache_noprof van of_syscon_register+0x7c/0x310
of_syscon_register van device_node_get_regmap+0xa4/0xb0
device_node_get_regmap van intcp_init_early+0xc/0x40
intcp_init_early vanaf start_kernel+0x60/0x688
start_kernel van 0x0

De crash wordt gezien vanwege een verwijzende aanwijzer die niet hoort te zijn
NULL maar is NULL als het geheugenbeheersubsysteem niet is
geïnitialiseerd. De crash wordt niet gezien met alle versies van gcc. Sommige versies
zoals gcc 9.x kennelijk de aanwijzer niet derefereren, vermoedelijk als
traceren is uitgeschakeld. Het probleem is gereproduceerd met gcc 10.x, 11.x,
en 13.x. In beide gevallen, als de crash niet wordt gezien, wordt de oproep naar
syscon_regmap_lookup_by_compatible retourneert -ENOMEM, en
sched_clock_register wordt nooit aangeroepen. Los het probleem op door de vroege initialisatiecode naar de standaard te verplaatsen
machine-initialisatiecode.

Origineel (Engels) tonen

In the Linux kernel, the following vulnerability has been resolved:

ARM: integrator: Fix early initialization

Starting with commit bdb249fce9ad4 ("ARM: integrator: read counter using
syscon/regmap"), intcp_init_early calls syscon_regmap_lookup_by_compatible
which in turn calls of_syscon_register. This function allocates memory.
Since the memory management code has not been initialized at that time,
the call always fails. It either returns -ENOMEM or crashes as follows.

Unable to handle kernel NULL pointer dereference at virtual address 0000000c when read
[0000000c] *pgd=00000000
Internal error: Oops: 5 [#1] ARM
Modules linked in:
CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.15.0-rc5-00026-g5fcc9bf84ee5 #1 PREEMPT
Hardware name: ARM Integrator/CP (Device Tree)
PC is at __kmalloc_cache_noprof+0xec/0x39c
LR is at __kmalloc_cache_noprof+0x34/0x39c
...
Call trace:
__kmalloc_cache_noprof from of_syscon_register+0x7c/0x310
of_syscon_register from device_node_get_regmap+0xa4/0xb0
device_node_get_regmap from intcp_init_early+0xc/0x40
intcp_init_early from start_kernel+0x60/0x688
start_kernel from 0x0

The crash is seen due to a dereferenced pointer which is not supposed to be
NULL but is NULL if the memory management subsystem has not been
initialized. The crash is not seen with all versions of gcc. Some versions
such as gcc 9.x apparently do not dereference the pointer, presumably if
tracing is disabled. The problem has been reproduced with gcc 10.x, 11.x,
and 13.x. Either case, if the crash is not seen, the call to
syscon_regmap_lookup_by_compatible returns -ENOMEM, and
sched_clock_register is never called.

Fix the problem by moving the early initialization code into the standard
machine initialization code.

Vendors

Linux

Affected products

Linux Kernel

References