43fe83
From b019d146357887bcf45b85b251f568d54e1bafb1 Mon Sep 17 00:00:00 2001
43fe83
Message-Id: <b019d146357887bcf45b85b251f568d54e1bafb1.1383321465.git.jdenemar@redhat.com>
43fe83
From: "Daniel P. Berrange" <berrange@redhat.com>
43fe83
Date: Wed, 30 Oct 2013 17:01:57 +0000
43fe83
Subject: [PATCH] Block all use of libvirt.so in setuid programs
43fe83
43fe83
For
43fe83
43fe83
  https://bugzilla.redhat.com/show_bug.cgi?id=1015247
43fe83
43fe83
Avoid people introducing security flaws in their apps by
43fe83
forbidding the use of libvirt.so in setuid programs, with
43fe83
a check in virInitialize.
43fe83
43fe83
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
43fe83
(cherry picked from commit 9cd6a57db6ea6762fbf85c59c379a27fa6e7fd2e)
43fe83
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
43fe83
---
43fe83
 src/libvirt.c | 8 ++++++++
43fe83
 1 file changed, 8 insertions(+)
43fe83
43fe83
diff --git a/src/libvirt.c b/src/libvirt.c
43fe83
index 54c90ec..e008368 100644
43fe83
--- a/src/libvirt.c
43fe83
+++ b/src/libvirt.c
43fe83
@@ -409,6 +409,14 @@ virGlobalInit(void)
43fe83
         virErrorInitialize() < 0)
43fe83
         goto error;
43fe83
 
43fe83
+#ifndef IN_VIRT_LOGIN_SHELL
43fe83
+    if (virIsSUID()) {
43fe83
+        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
43fe83
+                       _("libvirt.so is not safe to use from setuid programs"));
43fe83
+        goto error;
43fe83
+    }
43fe83
+#endif
43fe83
+
43fe83
 #ifdef WITH_GNUTLS_GCRYPT
43fe83
     /*
43fe83
      * This sequence of API calls it copied exactly from
43fe83
-- 
43fe83
1.8.4.2
43fe83