Description
In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use ctx->lock to protect struct vidi_context member variables related to memory alloc/free Exynos Virtual Display driver performs memory alloc/free operations without lock protection, which easily causes concurrency problem. For example, use-after-free can occur in race scenario like this: ``` CPU0 CPU1 CPU2 ---- ---- ---- vidi_connection_ioctl() if (vidi->connection) // true drm_edid = drm_edid_alloc(); // alloc drm_edid ... ctx->raw_edid = drm_edid; ... drm_mode_getconnector() drm_helper_probe_single_connector_modes() vidi_get_modes() if (ctx->raw_edid) // true drm_edid_dup(ctx->raw_edid); if (!drm_edid) // false ... vidi_connection_ioctl() if (vidi->connection) // false drm_edid_free(ctx->raw_edid); // free drm_edid ... drm_edid_alloc(drm_edid->edid) kmemdup(edid); // UAF!! ... ``` To prevent these vulns, at least in vidi_context, member variables related to memory alloc/free should be protected with ctx->lock.
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
d3b62dbfc7b9bb013926f56db79b60f6c18c392f to < 56966a4cfa925ec24edb68ab652a740a7abe2c4daffectedd3b62dbfc7b9bb013926f56db79b60f6c18c392f to < 9e1ef9396a1899925911b1729cb65665420268dfaffectedd3b62dbfc7b9bb013926f56db79b60f6c18c392f to < 92dd1f38d7db75374dcdaf54f1d79d67bffd54e5affectedd3b62dbfc7b9bb013926f56db79b60f6c18c392f to < 1b24d3e8792bcc050c70e8e0dea6b49c4fc63b13affectedd3b62dbfc7b9bb013926f56db79b60f6c18c392f to < abfdf449fb3d7b42e85a1ad1c8694b768b1582f4affectedd3b62dbfc7b9bb013926f56db79b60f6c18c392f to < 60b75407c172e1f341a8a5097c5cbc97dbbdd893affectedd3b62dbfc7b9bb013926f56db79b60f6c18c392f to < 0cd2c155740dbd00868ac5a8ae5d14cd6b9ed385affectedd3b62dbfc7b9bb013926f56db79b60f6c18c392f to < 52b330799e2d6f825ae2bb74662ec1b10eb954bbaffected
Linux Linux
Default version status: affected
3.6affected0 to < 3.6unaffected5.10.253 to ≤ 5.10.*unaffected5.15.203 to ≤ 5.15.*unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.77 to ≤ 6.12.*unaffected6.18.11 to ≤ 6.18.*unaffected6.19.1 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/56966a4cfa925ec24edb68ab652a740a7abe2c4d ↗
- https://git.kernel.org/stable/c/9e1ef9396a1899925911b1729cb65665420268df ↗
- https://git.kernel.org/stable/c/92dd1f38d7db75374dcdaf54f1d79d67bffd54e5 ↗
- https://git.kernel.org/stable/c/1b24d3e8792bcc050c70e8e0dea6b49c4fc63b13 ↗
- https://git.kernel.org/stable/c/abfdf449fb3d7b42e85a1ad1c8694b768b1582f4 ↗
- https://git.kernel.org/stable/c/60b75407c172e1f341a8a5097c5cbc97dbbdd893 ↗
- https://git.kernel.org/stable/c/0cd2c155740dbd00868ac5a8ae5d14cd6b9ed385 ↗
- https://git.kernel.org/stable/c/52b330799e2d6f825ae2bb74662ec1b10eb954bb ↗