Package: cinder
Version: 2013.1.2-3
Severity: important
Tags: security patch

 Grant Murphy from Red Hat reported that vulnerabilities in XML request parsers
 were not fully patched in OSSA 2013-004. By leveraging XML entity expansion in
 specific extensions, an unauthenticated attacker may still consume excessive
 resources on the Nova or Cinder API servers, resulting in a denial of service
 and potentially a crash. Only Nova setups making use of the security group
 extension in Grizzly are affected. Only Cinder setups making use of the
 backups or volume transfer API extension in Grizzly are affected.

I'll upload the fix soon.

Thomas Goirand (zigo)
Description: CVE-2013-4202 for DoS using XML entities in extensions
 Grant Murphy from Red Hat reported that vulnerabilities in XML request parsers
 were not fully patched in OSSA 2013-004. By leveraging XML entity expansion in
 specific extensions, an unauthenticated attacker may still consume excessive
 resources on the Nova or Cinder API servers, resulting in a denial of service
 and potentially a crash. Only Nova setups making use of the security group
 extension in Grizzly are affected. Only Cinder setups making use of the
 backups or volume transfer API extension in Grizzly are affected.
Author: Grant Murphy (Red Hat)
Origin: upstream, <url-missing>
Bug-Debian: http://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Last-Update: 2013-08-07

--- cinder-2013.1.2.orig/cinder/api/contrib/backups.py
+++ cinder-2013.1.2/cinder/api/contrib/backups.py
@@ -17,7 +17,6 @@
 
 import webob
 from webob import exc
-from xml.dom import minidom
 
 from cinder.api import common
 from cinder.api import extensions
@@ -28,6 +27,7 @@ from cinder import backup as backupAPI
 from cinder import exception
 from cinder import flags
 from cinder.openstack.common import log as logging
+from cinder import utils
 
 FLAGS = flags.FLAGS
 LOG = logging.getLogger(__name__)
@@ -82,7 +82,7 @@ class BackupRestoreTemplate(xmlutil.Temp
 
 class CreateDeserializer(wsgi.MetadataXMLDeserializer):
     def default(self, string):
-        dom = minidom.parseString(string)
+        dom = utils.safe_minidom_parse_string(string)
         backup = self._extract_backup(dom)
         return {'body': {'backup': backup}}
 
@@ -101,7 +101,7 @@ class CreateDeserializer(wsgi.MetadataXM
 
 class RestoreDeserializer(wsgi.MetadataXMLDeserializer):
     def default(self, string):
-        dom = minidom.parseString(string)
+        dom = utils.safe_minidom_parse_string(string)
         restore = self._extract_restore(dom)
         return {'body': {'restore': restore}}
 

Reply via email to