Vigil@nce: Linux kernel, integer overflow via drm_mode_dirtyfb_ioctl
January 2012 by Vigil@nce
This bulletin was written by Vigil@nce : http://vigilance.fr/offer
SYNTHESIS OF THE VULNERABILITY
A local attacker can use the DRM_IOCTL_MODE_DIRTYFB ioctl, in order to generate an integer overflow, leading to a denial of service and possibly to code execution.
Severity: 2/4
Creation date: 11/01/2012
IMPACTED PRODUCTS
Linux kernel
DESCRIPTION OF THE VULNERABILITY
The DRM_IOCTL_MODE_DIRTYFB ioctl is used to define a framebuffer area as "dirty" (data changed, and thus have to be displayed again).
This ioctl uses the drm_mode_fb_dirty_cmd structure which contains a num_clips field indicating the number of changed areas.
When the user calls the DRM_IOCTL_MODE_DIRTYFB ioctl, the kernel calls the drm_mode_dirtyfb_ioctl() function of the drivers/gpu/drm/drm_crtc.c file. However, this function does not check if the number of areas (num_clips) is positive and inferior to DRM_MODE_FB_DIRTY_MAX_CLIPS (256).
A local attacker can therefore use the DRM_IOCTL_MODE_DIRTYFB ioctl, in order to generate an integer overflow, leading to a denial of service and possibly to code execution.
ACCESS TO THE COMPLETE VIGIL@NCE BULLETIN





News

