CVE-2025-38152

In the Linux kernel, the following vulnerability has been resolved: remoteproc: core: Clear table_sz when rproc_shutdown There is case as below could trigger kernel dump: Use U-Boot to start remote processor(rproc) with resource table published to a fixed address by rproc. After Kernel boots up, stop the rproc, load a new firmware which doesn't have resource table ,and start rproc. When starting rproc with a firmware not have resource table, `memcpy(loaded_table, rproc->cached_table, rproc->table_sz)` will trigger dump, because rproc->cache_table is set to NULL during the last stop operation, but rproc->table_sz is still valid. This issue is found on i.MX8MP and i.MX9. Dump as below: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 Mem abort info: ESR = 0x0000000096000004 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x04: level 0 translation fault Data abort info: ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 CM = 0, WnR = 0, TnD = 0, TagAccess = 0 GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 user pgtable: 4k pages, 48-bit VAs, pgdp=000000010af63000 [0000000000000000] pgd=0000000000000000, p4d=0000000000000000 Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP Modules linked in: CPU: 2 UID: 0 PID: 1060 Comm: sh Not tainted 6.14.0-rc7-next-20250317-dirty #38 Hardware name: NXP i.MX8MPlus EVK board (DT) pstate: a0000005 (NzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : __pi_memcpy_generic+0x110/0x22c lr : rproc_start+0x88/0x1e0 Call trace: __pi_memcpy_generic+0x110/0x22c (P) rproc_boot+0x198/0x57c state_store+0x40/0x104 dev_attr_store+0x18/0x2c sysfs_kf_write+0x7c/0x94 kernfs_fop_write_iter+0x120/0x1cc vfs_write+0x240/0x378 ksys_write+0x70/0x108 __arm64_sys_write+0x1c/0x28 invoke_syscall+0x48/0x10c el0_svc_common.constprop.0+0xc0/0xe0 do_el0_svc+0x1c/0x28 el0_svc+0x30/0xcc el0t_64_sync_handler+0x10c/0x138 el0t_64_sync+0x198/0x19c Clear rproc->table_sz to address the issue.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

29 Apr 2025, 14:39

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
First Time Linux linux Kernel
Linux
CWE CWE-476
References () https://git.kernel.org/stable/c/068f6648ff5b0c7adeb6c363fae7fb188aa178fa - () https://git.kernel.org/stable/c/068f6648ff5b0c7adeb6c363fae7fb188aa178fa - Patch
References () https://git.kernel.org/stable/c/2df19f5f6f72da6f6ebab7cdb3a3b9f7686bb476 - () https://git.kernel.org/stable/c/2df19f5f6f72da6f6ebab7cdb3a3b9f7686bb476 - Patch
References () https://git.kernel.org/stable/c/6e66bca8cd51ebedd5d32426906a38e4a3c69c5f - () https://git.kernel.org/stable/c/6e66bca8cd51ebedd5d32426906a38e4a3c69c5f - Patch
References () https://git.kernel.org/stable/c/7c6bb82a6f3da6ab2d3fbea03901482231708b98 - () https://git.kernel.org/stable/c/7c6bb82a6f3da6ab2d3fbea03901482231708b98 - Patch
References () https://git.kernel.org/stable/c/8e0fd2a3b9852ac3cf540edb06ccc0153b38b5af - () https://git.kernel.org/stable/c/8e0fd2a3b9852ac3cf540edb06ccc0153b38b5af - Patch
References () https://git.kernel.org/stable/c/e6015ca453b82ec54aec9682dcc38773948fcc48 - () https://git.kernel.org/stable/c/e6015ca453b82ec54aec9682dcc38773948fcc48 - Patch
References () https://git.kernel.org/stable/c/efdde3d73ab25cef4ff2d06783b0aad8b093c0e4 - () https://git.kernel.org/stable/c/efdde3d73ab25cef4ff2d06783b0aad8b093c0e4 - Patch
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: remoteproc: core: Clear table_sz when rproc_shutdown Existe un caso como el siguiente que podría activar el volcado del kernel: Use U-Boot para iniciar el procesador remoto (rproc) con la tabla de recursos publicada en una dirección fija por rproc. Después de que el kernel se inicie, detenga el rproc, cargue un nuevo firmware que no tenga tabla de recursos e inicie rproc. Al iniciar rproc con un firmware que no tiene tabla de recursos, `memcpy(loaded_table, rproc->cached_table, rproc->table_sz)` activará el volcado, porque rproc->cache_table se establece en NULL durante la última operación de detención, pero rproc->table_sz sigue siendo válido. Este problema se encuentra en i.MX8MP y i.MX9. Volcado como se muestra a continuación: No se puede manejar la desreferencia del puntero NULL del núcleo en la dirección virtual 0000000000000000 Información de aborto de memoria: ESR = 0x0000000096000004 EC = 0x25: DABT (EL actual), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x04: error de traducción de nivel 0 Información de aborto de datos: ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 CM = 0, WnR = 0, TnD = 0, TagAccess = 0 GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 pgtable de usuario: páginas de 4k, VA de 48 bits, pgdp=000000010af63000 [0000000000000000] pgd=0000000000000000, p4d=0000000000000000 Error interno: Oops: 0000000096000004 [#1] PREEMPT Módulos SMP vinculados: CPU: 2 UID: 0 PID: 1060 Comm: sh No contaminado 6.14.0-rc7-next-20250317-dirty #38 Nombre del hardware: Placa NXP i.MX8MPlus EVK (DT) pstate: a0000005 (NzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : Rastreo de llamadas: __pi_memcpy_generic+0x110/0x22c lr : rproc_start+0x88/0x1e0 Rastreo de llamadas: __pi_memcpy_generic+0x110/0x22c (P) rproc_boot+0x198/0x57c almacén de estado+0x40/0x104 almacén de atributos de desarrollo+0x18/0x2c sysfs_kf_write+0x7c/0x94 kernfs_fop_write_iter+0x120/0x1cc vfs_write+0x240/0x378 ksys_write+0x70/0x108 __arm64_sys_write+0x1c/0x28 invocar_llamada al sistema+0x48/0x10c el0_svc_common.constprop.0+0xc0/0xe0 do_el0_svc+0x1c/0x28 el0_svc+0x30/0xcc el0t_64_sync_handler+0x10c/0x138 el0t_64_sync+0x198/0x19c Borre rproc->table_sz para solucionar el problema.

18 Apr 2025, 07:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-04-18 07:15

Updated : 2025-04-29 14:39


NVD link : CVE-2025-38152

Mitre link : CVE-2025-38152

CVE.ORG link : CVE-2025-38152


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference