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.
Product status
d3b62dbfc7b9bb013926f56db79b60f6c18c392f (git) before 60b75407c172e1f341a8a5097c5cbc97dbbdd893
d3b62dbfc7b9bb013926f56db79b60f6c18c392f (git) before 0cd2c155740dbd00868ac5a8ae5d14cd6b9ed385
d3b62dbfc7b9bb013926f56db79b60f6c18c392f (git) before 52b330799e2d6f825ae2bb74662ec1b10eb954bb
3.6
Any version before 3.6
6.18.11 (semver)
6.19.1 (semver)
7.0-rc1 (original_commit_for_fix)
References
git.kernel.org/...c/60b75407c172e1f341a8a5097c5cbc97dbbdd893
git.kernel.org/...c/0cd2c155740dbd00868ac5a8ae5d14cd6b9ed385
git.kernel.org/...c/52b330799e2d6f825ae2bb74662ec1b10eb954bb