Hi,
Here's a debdiff against buster.
The testsuite passes, provided we modify MemHandlerTest1 to take the
leak into account.
What do you think?
Cheers!
Sylvain Beucler
Debian LTS Team
On 24/11/2020 17:39, Bill Blough wrote:
The package has a test suite, so that's probably the minimum. But I'm
not sure how much it exercises the DTD code, if at all.
I also typically test with some of our internal code at work. But
again, no DTDs in use there, either.
On Mon, Nov 23, 2020 at 03:56:37PM +0100, Sylvain Beucler wrote:
Hi,
I can assist with this, notably a LTS upload - not necessarily immediately
either.
Bill, do you have testing procedures to recommend for this package?
Security Team, before issuing a LTS upload, what is your view on a Stable
upload for this issue?
Cheers!
Sylvain Beucler
Debian LTS Team
On 23/11/2020 03:01, Bill Blough wrote:
Yes, this seems reasonable.
I'll prepare an upload to unstable prior to the freeze. But it likely
won't be for a couple of weeks due to my current workload.
Since I assume one of your concerns is for LTS, feel free to do the LTS
upload. Or, if you'd rather, I can make an attempt at that in a couple
of weeks as well.
diff -Nru xerces-c-3.2.2+debian/debian/changelog xerces-c-3.2.2+debian/debian/changelog
--- xerces-c-3.2.2+debian/debian/changelog 2018-09-19 21:19:49.000000000 +0200
+++ xerces-c-3.2.2+debian/debian/changelog 2020-12-09 16:42:11.000000000 +0100
@@ -1,3 +1,12 @@
+xerces-c (3.2.2+debian-1+deb10u1) buster-security; urgency=medium
+
+ * Non-maintainer upload.
+ * CVE-2018-1311 mitigation: fix use-after-free vulnerability when
+ processing external DTD, at the expense of a memory leak. Users may
+ mitigate both by setting the XERCES_DISABLE_DTD environment variable.
+
+ -- Sylvain Beucler <b...@debian.org> Wed, 09 Dec 2020 16:42:11 +0100
+
xerces-c (3.2.2+debian-1) unstable; urgency=medium
* New upstream version 3.2.2+debian Closes: 909202
diff -Nru xerces-c-3.2.2+debian/debian/patches/CVE-2018-1311-mitigation.patch xerces-c-3.2.2+debian/debian/patches/CVE-2018-1311-mitigation.patch
--- xerces-c-3.2.2+debian/debian/patches/CVE-2018-1311-mitigation.patch 1970-01-01 01:00:00.000000000 +0100
+++ xerces-c-3.2.2+debian/debian/patches/CVE-2018-1311-mitigation.patch 2020-12-09 16:42:11.000000000 +0100
@@ -0,0 +1,35 @@
+
+https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-1311
+
+Index: xerces-c-3.2.2+debian/src/xercesc/internal/IGXMLScanner.cpp
+===================================================================
+--- xerces-c-3.2.2+debian.orig/src/xercesc/internal/IGXMLScanner.cpp
++++ xerces-c-3.2.2+debian/src/xercesc/internal/IGXMLScanner.cpp
+@@ -1532,7 +1532,6 @@ void IGXMLScanner::scanDocTypeDecl()
+ DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr, false, fMemoryManager);
+ declDTD->setSystemId(sysId);
+ declDTD->setIsExternal(true);
+- Janitor<DTDEntityDecl> janDecl(declDTD);
+
+ // Mark this one as a throw at end
+ reader->setThrowAtEnd(true);
+@@ -3095,7 +3094,6 @@ Grammar* IGXMLScanner::loadDTDGrammar(co
+ DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr, false, fMemoryManager);
+ declDTD->setSystemId(src.getSystemId());
+ declDTD->setIsExternal(true);
+- Janitor<DTDEntityDecl> janDecl(declDTD);
+
+ // Mark this one as a throw at end
+ newReader->setThrowAtEnd(true);
+Index: xerces-c-3.2.2+debian/tests/expected/MemHandlerTest1.log
+===================================================================
+--- xerces-c-3.2.2+debian.orig/tests/expected/MemHandlerTest1.log
++++ xerces-c-3.2.2+debian/tests/expected/MemHandlerTest1.log
+@@ -1,4 +1,4 @@
+-At destruction, domBuilderMemMonitor has 0 bytes.
+-At destruction, sax2MemMonitor has 0 bytes.
+-At destruction, sax1MemMonitor has 0 bytes.
++At destruction, domBuilderMemMonitor has 276 bytes.
++At destruction, sax2MemMonitor has 276 bytes.
++At destruction, sax1MemMonitor has 276 bytes.
+ At destruction, staticMemMonitor has 0 bytes.
diff -Nru xerces-c-3.2.2+debian/debian/patches/series xerces-c-3.2.2+debian/debian/patches/series
--- xerces-c-3.2.2+debian/debian/patches/series 2018-09-19 21:19:49.000000000 +0200
+++ xerces-c-3.2.2+debian/debian/patches/series 2020-12-09 16:42:11.000000000 +0100
@@ -0,0 +1 @@
+CVE-2018-1311-mitigation.patch