gnu: xorg-server: Fix CVE-2020-14347 via graft.
* gnu/packages/patches/xorg-server-CVE-2020-14347.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/xorg.scm (xorg-server/fixed): New variable. (xorg-server)[replacement]: New field. (xorg-server-wayland): Use package/inherit.
This commit is contained in:
		
							parent
							
								
									d7d85c6412
								
							
						
					
					
						commit
						cf1d1f4f79
					
				
					 3 changed files with 46 additions and 2 deletions
				
			
		| 
						 | 
					@ -1650,6 +1650,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/xf86-video-voodoo-pcitag.patch		\
 | 
					  %D%/packages/patches/xf86-video-voodoo-pcitag.patch		\
 | 
				
			||||||
  %D%/packages/patches/xfce4-panel-plugins.patch		\
 | 
					  %D%/packages/patches/xfce4-panel-plugins.patch		\
 | 
				
			||||||
  %D%/packages/patches/xfce4-settings-defaults.patch		\
 | 
					  %D%/packages/patches/xfce4-settings-defaults.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/xorg-server-CVE-2020-14347.patch		\
 | 
				
			||||||
  %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
 | 
					  %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
 | 
				
			||||||
  %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
 | 
					  %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
 | 
				
			||||||
  %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
 | 
					  %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										33
									
								
								gnu/packages/patches/xorg-server-CVE-2020-14347.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								gnu/packages/patches/xorg-server-CVE-2020-14347.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					From aac28e162e5108510065ad4c323affd6deffd816 Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Matthieu Herrb <matthieu@herrb.eu>
 | 
				
			||||||
 | 
					Date: Sat, 25 Jul 2020 19:33:23 +0200
 | 
				
			||||||
 | 
					Subject: [PATCH] fix for ZDI-11426
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Avoid leaking un-initalized memory to clients by zeroing the
 | 
				
			||||||
 | 
					whole pixmap on initial allocation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This vulnerability was discovered by:
 | 
				
			||||||
 | 
					Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
 | 
				
			||||||
 | 
					Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 dix/pixmap.c | 2 +-
 | 
				
			||||||
 | 
					 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/dix/pixmap.c b/dix/pixmap.c
 | 
				
			||||||
 | 
					index 1186d7dbb..5a0146bbb 100644
 | 
				
			||||||
 | 
					--- a/dix/pixmap.c
 | 
				
			||||||
 | 
					+++ b/dix/pixmap.c
 | 
				
			||||||
 | 
					@@ -116,7 +116,7 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize)
 | 
				
			||||||
 | 
					     if (pScreen->totalPixmapSize > ((size_t) - 1) - pixDataSize)
 | 
				
			||||||
 | 
					         return NullPixmap;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-    pPixmap = malloc(pScreen->totalPixmapSize + pixDataSize);
 | 
				
			||||||
 | 
					+    pPixmap = calloc(1, pScreen->totalPixmapSize + pixDataSize);
 | 
				
			||||||
 | 
					     if (!pPixmap)
 | 
				
			||||||
 | 
					         return NullPixmap;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-- 
 | 
				
			||||||
 | 
					2.27.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5327,6 +5327,7 @@ over Xlib, including:
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "xorg-server")
 | 
					    (name "xorg-server")
 | 
				
			||||||
    (version "1.20.8")
 | 
					    (version "1.20.8")
 | 
				
			||||||
 | 
					    (replacement xorg-server/fixed)
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -5450,6 +5451,16 @@ communicates with the user via graphical controls such as buttons and
 | 
				
			||||||
draggable titlebars and borders.")
 | 
					draggable titlebars and borders.")
 | 
				
			||||||
    (license license:x11)))
 | 
					    (license license:x11)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define xorg-server/fixed  ; Fixes CVE-2020-14347
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (inherit xorg-server)
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (inherit (package-source xorg-server))
 | 
				
			||||||
 | 
					       (patches
 | 
				
			||||||
 | 
					        (append (origin-patches (package-source xorg-server))
 | 
				
			||||||
 | 
					                (search-patches "xorg-server-CVE-2020-14347.patch")))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; This package is intended to be used when building GTK+.
 | 
					;; This package is intended to be used when building GTK+.
 | 
				
			||||||
;; Note: It's currently marked as "hidden" to avoid having two non-eq?
 | 
					;; Note: It's currently marked as "hidden" to avoid having two non-eq?
 | 
				
			||||||
;; packages with the same name and version.
 | 
					;; packages with the same name and version.
 | 
				
			||||||
| 
						 | 
					@ -5468,8 +5479,7 @@ draggable titlebars and borders.")
 | 
				
			||||||
                 "18bfl04ihw1jr3h0fs522nnxxq5ixjay77y9dcymnkzk23q8cndx")))))))
 | 
					                 "18bfl04ihw1jr3h0fs522nnxxq5ixjay77y9dcymnkzk23q8cndx")))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public xorg-server-xwayland
 | 
					(define-public xorg-server-xwayland
 | 
				
			||||||
  (package
 | 
					  (package/inherit xorg-server
 | 
				
			||||||
    (inherit xorg-server)
 | 
					 | 
				
			||||||
    (name "xorg-server-xwayland")
 | 
					    (name "xorg-server-xwayland")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("wayland" ,wayland)
 | 
					     `(("wayland" ,wayland)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue