[Pkg-xen-changes] r457 - in trunk/xen-3/debian: . patches
Bastian Blank
waldi at alioth.debian.org
Thu Oct 4 06:47:45 UTC 2007
Author: waldi
Date: Thu Oct 4 06:47:45 2007
New Revision: 457
Log:
* debian/changelog: Update.
* debian/patches/series: Update.
* debian/patches/tools-pygrub-CVE-2007-4993.patch: Add.
Added:
trunk/xen-3/debian/patches/tools-pygrub-CVE-2007-4993.patch
Modified:
trunk/xen-3/debian/changelog
trunk/xen-3/debian/patches/series
Modified: trunk/xen-3/debian/changelog
==============================================================================
--- trunk/xen-3/debian/changelog (original)
+++ trunk/xen-3/debian/changelog Thu Oct 4 06:47:45 2007
@@ -1,3 +1,10 @@
+xen-3 (3.1.0-3) UNRELEASED; urgency=high
+
+ * Don't use exec with untrusted values in pygrub. (closes: #444430)
+ See CVE-2007-4993.
+
+ -- Bastian Blank <waldi at debian.org> Thu, 04 Oct 2007 08:46:48 +0200
+
xen-3 (3.1.0-2) unstable; urgency=low
* Switch to texlive for documentation.
Modified: trunk/xen-3/debian/patches/series
==============================================================================
--- trunk/xen-3/debian/patches/series (original)
+++ trunk/xen-3/debian/patches/series Thu Oct 4 06:47:45 2007
@@ -15,3 +15,4 @@
tools-xenfb-prefix.diff
tools-misc-xend-race.diff
doc-remove-unused.diff
+tools-pygrub-CVE-2007-4993.patch
Added: trunk/xen-3/debian/patches/tools-pygrub-CVE-2007-4993.patch
==============================================================================
--- (empty file)
+++ trunk/xen-3/debian/patches/tools-pygrub-CVE-2007-4993.patch Thu Oct 4 06:47:45 2007
@@ -0,0 +1,107 @@
+diff -r 55c45361bbe3 -r 70bb28b62ffb tools/pygrub/src/GrubConf.py
+--- a/tools/pygrub/src/GrubConf.py Tue Sep 25 09:30:00 2007 +0100
++++ b/tools/pygrub/src/GrubConf.py Tue Sep 25 09:34:36 2007 +0100
+@@ -101,7 +101,7 @@ class GrubImage(object):
+
+ if self.commands.has_key(com):
+ if self.commands[com] is not None:
+- exec("%s = r\"%s\"" %(self.commands[com], arg.strip()))
++ setattr(self, self.commands[com], arg.strip())
+ else:
+ logging.info("Ignored image directive %s" %(com,))
+ else:
+@@ -142,11 +142,11 @@ class GrubImage(object):
+ initrd = property(get_initrd, set_initrd)
+
+ # set up command handlers
+- commands = { "title": "self.title",
+- "root": "self.root",
+- "rootnoverify": "self.root",
+- "kernel": "self.kernel",
+- "initrd": "self.initrd",
++ commands = { "title": "title",
++ "root": "root",
++ "rootnoverify": "root",
++ "kernel": "kernel",
++ "initrd": "initrd",
+ "chainloader": None,
+ "module": None}
+
+@@ -195,7 +195,7 @@ class GrubConfigFile(object):
+ (com, arg) = grub_exact_split(l, 2)
+ if self.commands.has_key(com):
+ if self.commands[com] is not None:
+- exec("%s = r\"%s\"" %(self.commands[com], arg.strip()))
++ setattr(self, self.commands[com], arg.strip())
+ else:
+ logging.info("Ignored directive %s" %(com,))
+ else:
+@@ -208,7 +208,7 @@ class GrubConfigFile(object):
+ (com, arg) = grub_exact_split(line, 2)
+ if self.commands.has_key(com):
+ if self.commands[com] is not None:
+- exec("%s = r\"%s\"" %(self.commands[com], arg.strip()))
++ setattr(self, self.commands[com], arg.strip())
+ else:
+ logging.info("Ignored directive %s" %(com,))
+ else:
+@@ -236,12 +236,12 @@ class GrubConfigFile(object):
+ splash = property(get_splash, set_splash)
+
+ # set up command handlers
+- commands = { "default": "self.default",
+- "timeout": "self.timeout",
+- "fallback": "self.fallback",
+- "hiddenmenu": "self.hiddenmenu",
+- "splashimage": "self.splash",
+- "password": "self.password" }
++ commands = { "default": "default",
++ "timeout": "timeout",
++ "fallback": "fallback",
++ "hiddenmenu": "hiddenmenu",
++ "splashimage": "splash",
++ "password": "password" }
+ for c in ("bootp", "color", "device", "dhcp", "hide", "ifconfig",
+ "pager", "partnew", "parttype", "rarp", "serial",
+ "setkey", "terminal", "terminfo", "tftpserver", "unhide"):
+diff -r 55c45361bbe3 -r 70bb28b62ffb tools/pygrub/src/LiloConf.py
+--- a/tools/pygrub/src/LiloConf.py Tue Sep 25 09:30:00 2007 +0100
++++ b/tools/pygrub/src/LiloConf.py Tue Sep 25 09:34:36 2007 +0100
+@@ -31,7 +31,7 @@ class LiloImage(object):
+
+ if self.commands.has_key(com):
+ if self.commands[com] is not None:
+- exec("%s = r\'%s\'" %(self.commands[com], re.sub('^"(.+)"$', r"\1", arg.strip())))
++ setattr(self, self.commands[com], re.sub('^"(.+)"$', r"\1", arg.strip()))
+ else:
+ logging.info("Ignored image directive %s" %(com,))
+ else:
+@@ -74,13 +74,13 @@ class LiloImage(object):
+ initrd = property(get_initrd, set_initrd)
+
+ # set up command handlers
+- commands = { "label": "self.title",
+- "root": "self.root",
+- "rootnoverify": "self.root",
+- "image": "self.kernel",
+- "initrd": "self.initrd",
+- "append": "self.args",
++ commands = { "label": "title",
++ "root": "root",
++ "rootnoverify": "root",
++ "image": "kernel",
++ "initrd": "initrd",
++ "append": "args",
+ "read-only": None,
+ "chainloader": None,
+ "module": None}
+
+@@ -129,7 +129,7 @@ class LiloConfigFile(object):
+ (com, arg) = GrubConf.grub_exact_split(l, 2)
+ if self.commands.has_key(com):
+ if self.commands[com] is not None:
+- exec("%s = r\"%s\"" %(self.commands[com], arg.strip()))
++ setattr(self, self.commands[com], arg.strip())
+ else:
+ logging.info("Ignored directive %s" %(com,))
+ else:
More information about the Pkg-xen-changes
mailing list