CVE-2023-53256
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
15/09/2025
Última modificación:
15/09/2025
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
firmware: arm_ffa: Fix FFA device names for logical partitions<br />
<br />
Each physical partition can provide multiple services each with UUID.<br />
Each such service can be presented as logical partition with a unique<br />
combination of VM ID and UUID. The number of distinct UUID in a system<br />
will be less than or equal to the number of logical partitions.<br />
<br />
However, currently it fails to register more than one logical partition<br />
or service within a physical partition as the device name contains only<br />
VM ID while both VM ID and UUID are maintained in the partition information.<br />
The kernel complains with the below message:<br />
<br />
| sysfs: cannot create duplicate filename &#39;/devices/arm-ffa-8001&#39;<br />
| CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.3.0-rc7 #8<br />
| Hardware name: FVP Base RevC (DT)<br />
| Call trace:<br />
| dump_backtrace+0xf8/0x118<br />
| show_stack+0x18/0x24<br />
| dump_stack_lvl+0x50/0x68<br />
| dump_stack+0x18/0x24<br />
| sysfs_create_dir_ns+0xe0/0x13c<br />
| kobject_add_internal+0x220/0x3d4<br />
| kobject_add+0x94/0x100<br />
| device_add+0x144/0x5d8<br />
| device_register+0x20/0x30<br />
| ffa_device_register+0x88/0xd8<br />
| ffa_setup_partitions+0x108/0x1b8<br />
| ffa_init+0x2ec/0x3a4<br />
| do_one_initcall+0xcc/0x240<br />
| do_initcall_level+0x8c/0xac<br />
| do_initcalls+0x54/0x94<br />
| do_basic_setup+0x1c/0x28<br />
| kernel_init_freeable+0x100/0x16c<br />
| kernel_init+0x20/0x1a0<br />
| ret_from_fork+0x10/0x20<br />
| kobject_add_internal failed for arm-ffa-8001 with -EEXIST, don&#39;t try to<br />
| register things with the same name in the same directory.<br />
| arm_ffa arm-ffa: unable to register device arm-ffa-8001 err=-17<br />
| ARM FF-A: ffa_setup_partitions: failed to register partition ID 0x8001<br />
<br />
By virtue of being random enough to avoid collisions when generated in a<br />
distributed system, there is no way to compress UUID keys to the number<br />
of bits required to identify each. We can eliminate &#39;-&#39; in the name but<br />
it is not worth eliminating 4 bytes and add unnecessary logic for doing<br />
that. Also v1.0 doesn&#39;t provide the UUID of the partitions which makes<br />
it hard to use the same for the device name.<br />
<br />
So to keep it simple, let us alloc an ID using ida_alloc() and append the<br />
same to "arm-ffa" to make up a unique device name. Also stash the id value<br />
in ffa_dev to help freeing the ID later when the device is destroyed.



