Description
In the Linux kernel, the following vulnerability has been resolved: coresight: platform: defer connection counter increment until alloc succeeds coresight_add_out_conn() increments nr_outconns before calling devm_krealloc_array() and again before devm_kmalloc(). If either allocation fails, the counter is already bumped while the corresponding array entry is NULL or uninitialized garbage. coresight_add_in_conn() has the same problem with nr_inconns and devm_krealloc_array(). In both cases the probe returns -ENOMEM, which causes coresight_get_platform_data() to call coresight_release_platform_data() for cleanup. That function iterates up to nr_outconns (or nr_inconns) entries and dereferences each pointer unconditionally, hitting the NULL or garbage entry and panicking instead of failing gracefully. Fix by moving the counter increments to after all allocations succeed, so the struct is always consistent on any error path.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
3d4ff657e454f8dba3e5e268e731e6e28c6031c1 to < dd3c9e1c9858c797ba78f4ca6c0fc663eeac6d72affected3d4ff657e454f8dba3e5e268e731e6e28c6031c1 to < aed6915c2f304ed34281856c53e374483c71b68baffected3d4ff657e454f8dba3e5e268e731e6e28c6031c1 to < 09c44549820df67048be3ba19c723bac72ebb98eaffected3d4ff657e454f8dba3e5e268e731e6e28c6031c1 to < 8ca9adc805884d3bb5038082462577f86c2c4a10affected3d4ff657e454f8dba3e5e268e731e6e28c6031c1 to < 1563ae33dc4f5ebac96b93af2ef72e72aaaa31aeaffected
Linux Linux
Default version status: affected
6.5affected0 to < 6.5unaffected6.6.158 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/dd3c9e1c9858c797ba78f4ca6c0fc663eeac6d72 ↗
- https://git.kernel.org/stable/c/aed6915c2f304ed34281856c53e374483c71b68b ↗
- https://git.kernel.org/stable/c/09c44549820df67048be3ba19c723bac72ebb98e ↗
- https://git.kernel.org/stable/c/8ca9adc805884d3bb5038082462577f86c2c4a10 ↗
- https://git.kernel.org/stable/c/1563ae33dc4f5ebac96b93af2ef72e72aaaa31ae ↗