[PATCH v2 0/2] drm: Address potential UAF bugs with drm_master ptrs

Desmond Cheong Zhi Xi
2021-06-15T02:48:22Z

This patch series addresses potential use-after-free errors when dereferencing pointers to struct drm_master. These were identified after one such bug was caught by Syzbot in drm_getunique():
https://syzkaller.appspot.com/bug?id=148d2f1dfac64af52ffd27b661981a540724f803

The series is broken up into two patches:

1. Implement a locked version of drm_is_current_master() function that's used within drm_auth.c

2. Identify areas in drm_lease.c where pointers to struct drm_master are dereferenced, and ensure that the master pointers are protected by a mutex

Change in v2:
- Patch 2: Move the lock and assignment before the DRM_DEBUG_LEASE in drm_mode_get_lease_ioctl, as suggested by Emil Velikov

Desmond Cheong Zhi Xi (2):
drm: Add a locked version of drm_is_current_master
drm: Protect drm_master pointers in drm_lease.c

drivers/gpu/drm/drm_auth.c | 23 ++++++++++++---
drivers/gpu/drm/drm_lease.c | 58 +++++++++++++++++++++++++++----------
2 files changed, 62 insertions(+), 19 deletions(-)

--
2.25.1