[Pkg-libvirt-commits] [SCM] Libvirt Debian packaging branch, master, updated. debian/0.9.12-5
Guido Günther
agx at sigxcpu.org
Fri Sep 14 21:02:12 UTC 2012
The following commit has been merged in the master branch:
commit c0f4995b165da039db219612da64b73fea1d6490
Author: Guido Günther <agx at sigxcpu.org>
Date: Fri Sep 14 22:34:06 2012 +0200
New patch security-Fix-libvirtd-crash-possibility.patch
Fix libvirtd crash possibility (CVE-2012-4423)
Thanks: Martin Kletzander
Closes: #687598
diff --git a/debian/patches/security/security-Fix-libvirtd-crash-possibility.patch b/debian/patches/security/security-Fix-libvirtd-crash-possibility.patch
new file mode 100644
index 0000000..0e84aba
--- /dev/null
+++ b/debian/patches/security/security-Fix-libvirtd-crash-possibility.patch
@@ -0,0 +1,55 @@
+From: Martin Kletzander <mkletzan at redhat.com>
+Date: Wed, 12 Sep 2012 23:43:26 +0200
+Subject: security: Fix libvirtd crash possibility
+
+Fix for CVE-2012-4423.
+
+When generating RPC protocol messages, it's strictly needed to have a
+continuous line of numbers or RPC messages. However in case anyone
+tries backporting some functionality and will skip a number, there is
+a possibility to make the daemon segfault with newer virsh (version of
+the library, rpc call, etc.) even unintentionally.
+
+The problem is that the skipped numbers will get func filled with
+NULLs, but there is no check whether these are set before the daemon
+tries to run them. This patch very simply enhances one check and fixes
+that.
+
+---
+ src/rpc/virnetserverprogram.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c
+index 7f589c8..5439878 100644
+--- a/src/rpc/virnetserverprogram.c
++++ b/src/rpc/virnetserverprogram.c
+@@ -1,7 +1,7 @@
+ /*
+ * virnetserverprogram.c: generic network RPC server program
+ *
+- * Copyright (C) 2006-2011 Red Hat, Inc.
++ * Copyright (C) 2006-2012 Red Hat, Inc.
+ * Copyright (C) 2006 Daniel P. Berrange
+ *
+ * This library is free software; you can redistribute it and/or
+@@ -101,12 +101,19 @@ int virNetServerProgramMatches(virNetServerProgramPtr prog,
+ static virNetServerProgramProcPtr virNetServerProgramGetProc(virNetServerProgramPtr prog,
+ int procedure)
+ {
++ virNetServerProgramProcPtr proc;
++
+ if (procedure < 0)
+ return NULL;
+ if (procedure >= prog->nprocs)
+ return NULL;
+
+- return &prog->procs[procedure];
++ proc = &prog->procs[procedure];
++
++ if (!proc->func)
++ return NULL;
++
++ return proc;
+ }
+
+ unsigned int
diff --git a/debian/patches/series b/debian/patches/series
index df1449d..85d5973 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -13,3 +13,4 @@ Only-check-for-cluster-fs-if-we-re-using-a-filesyste.patch
Reduce-udevadm-settle-timeout-to-10-seconds.patch
Include-stdint.h-for-uint32_t.patch
security/CVE-2012-3445.patch
+security/security-Fix-libvirtd-crash-possibility.patch
--
Libvirt Debian packaging
More information about the Pkg-libvirt-commits
mailing list