Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.4:ARM
Mesa.18651
u_call-shmget-with-permission-0600-instead-of-0...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File u_call-shmget-with-permission-0600-instead-of-0777.patch of Package Mesa.18651
A security advisory (TALOS-2019-0857/CVE-2019-5068) found that creating shared memory regions with permission mode 0777 could allow any user to access that memory. Several Mesa drivers use shared- memory XImages to implement back buffers for improved performance. This path changes the shmget() calls to use 0600 (user r/w). Tested with legacy Xlib driver and llvmpipe. Cc: <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-stable at lists.freedesktop.org</a> --- src/gallium/winsys/sw/dri/dri_sw_winsys.c | 3 ++- src/gallium/winsys/sw/xlib/xlib_sw_winsys.c | 3 ++- src/mesa/drivers/x11/xm_buffer.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) Index: mesa-18.0.2/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c =================================================================== --- mesa-18.0.2.orig/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c +++ mesa-18.0.2/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c @@ -126,7 +126,8 @@ alloc_shm(struct xlib_displaytarget *buf shminfo->shmid = -1; shminfo->shmaddr = (char *) -1; - shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0777); + /* 0600 = user read+write */ + shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0600); if (shminfo->shmid < 0) { return NULL; } Index: mesa-18.0.2/src/mesa/drivers/x11/xm_buffer.c =================================================================== --- mesa-18.0.2.orig/src/mesa/drivers/x11/xm_buffer.c +++ mesa-18.0.2/src/mesa/drivers/x11/xm_buffer.c @@ -88,8 +88,9 @@ alloc_back_shm_ximage(XMesaBuffer b, GLu return GL_FALSE; } + /* 0600 = user read+write */ b->shminfo.shmid = shmget(IPC_PRIVATE, b->backxrb->ximage->bytes_per_line - * b->backxrb->ximage->height, IPC_CREAT|0777); + * b->backxrb->ximage->height, IPC_CREAT|0600); if (b->shminfo.shmid < 0) { _mesa_warning(NULL, "shmget failed while allocating back buffer.\n"); XDestroyImage(b->backxrb->ximage);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor