Bug 18818 - xerces-c new security issue CVE-2016-4464
Summary: xerces-c new security issue CVE-2016-4464
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Security (show other bugs)
Version: 5
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact: Sec team
URL: http://lwn.net/Vulnerabilities/693102/
Whiteboard: has_procedure MGA5-32-OK advisory
Keywords: validated_update
Depends on:
Blocks:
 
Reported: 2016-06-29 18:52 CEST by David Walser
Modified: 2016-07-05 17:48 CEST (History)
4 users (show)

See Also:
Source RPM: xerces-c-3.1.2-1.2.mga5.src.rpm
CVE:
Status comment:


Attachments

Description David Walser 2016-06-29 18:52:40 CEST
Upstream has issued an advisory today (June 29):
http://xerces.apache.org/xerces-c/secadv/CVE-2016-4463.txt

Update to 3.1.4 checked into Cauldron SVN.  Freeze push requested.

Patch checked into Mageia 5 SVN.
Comment 1 David Walser 2016-06-30 01:25:51 CEST
Packages built with the fixes.

Testing ideas in Bug 17820 and Bug 18421.

Advisory:
========================

Updated xerces-c packages fix security vulnerability:

The Xerces-C XML parser fails to successfully parse a DTD that is deeply nested,
and this causes a stack overflow, which makes a denial of service attack against
many applications possible by an unauthenticated attacker (CVE-2016-4464).

References:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4464
http://xerces.apache.org/xerces-c/secadv/CVE-2016-4463.txt
========================

Updated packages in core/updates_testing:
========================
xerces-c-3.1.2-1.3.mga5
libxerces-c3.1-3.1.2-1.3.mga5
libxerces-c-devel-3.1.2-1.3.mga5
xerces-c-doc-3.1.2-1.3.mga5

from xerces-c-3.1.2-1.3.mga5.src.rpm

Assignee: bugsquad => qa-bugs
Whiteboard: (none) => has_procedure

Comment 2 David Walser 2016-06-30 16:50:35 CEST
Debian has issued an advisory for this on June 29:
https://www.debian.org/security/2016/dsa-3610

URL: (none) => http://lwn.net/Vulnerabilities/693102/

Comment 3 Len Lawrence 2016-06-30 17:28:34 CEST
I could have a look at this on an x86_64 machine.  Not familiar with DTDs so am unlikely to be able to develop a PoC but can certainly check the parser on a simple XML file and use enigma to make sure it is running fine after the update.
Tomorrow maybe.

CC: (none) => tarazed25

Comment 4 Herman Viaene 2016-07-01 17:09:07 CEST
MGA 5-32 on Acer D620 Xfce
No installation issues. Downloaded test files from bug 18421 and made parser executable
So I get:
$ ls -als
totaal 168
  4 drwxrwxr-x 2 tester5 tester5   4096 jul  1 16:59 ./
  4 drwxr-xr-x 9 tester5 tester5   4096 jul  1 16:39 ../
156 -rwxrwxr-x 1 tester5 tester5 157868 jul  1 16:59 parser*
  4 -rw-rw-r-- 1 tester5 tester5    260 jul  1 16:40 sample.xml
that is all there should be to it???
but at CLI:
]$ ./parser 
bash: ./parser: kan binair bestand Verkeerd uitvoerbaar bestand niet uitvoeren
which I would translate as: cannot execute file wrong executable file

CC: (none) => herman.viaene

Comment 5 Len Lawrence 2016-07-01 19:18:31 CEST
Soory Herman; my fault - I compiled it for x86_64.  I should have noted that.  If you can wait I shall have a go at compiling it in i586 virtualbox, assuming I can find the code.  Have been too busy to spare the time to look at this bug. :(
Comment 6 Len Lawrence 2016-07-01 19:46:42 CEST
Sorry again Herman.  Recompiling the original file parser.c++ against the updated library fails, as I suspected it would.  There are a lot of undefined references in the trace so I shall have to see if there is something else which will exercise the update.  On a brief look at the references yesterday I saw no hints.

The parser was just that.  It was not a PoC as far as I can recall, just something to show that a basic function continued to work.

For the time being you could install enigma and play with it.  That worked fine after the last update so you should be able to go straight in after the current update and play it.
Comment 7 Herman Viaene 2016-07-02 11:19:55 CEST
Installed enigma and played a few levels. strace shows a.o.
open("/lib/libxerces-c-3.1.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\260\16\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=3525348, ...}) = 0
mmap2(NULL, 3523036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb718b000
mprotect(0xb74b5000, 4096, PROT_NONE)   = 0
mmap2(0xb74b6000, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x32a000) = 0xb74b6000
mmap2(0xb74e7000, 476, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb74e7000
So OK for me

Whiteboard: has_procedure => has_procedure MGA5-32-OK

Dave Hodgins 2016-07-05 16:47:05 CEST

Keywords: (none) => validated_update
Whiteboard: has_procedure MGA5-32-OK => has_procedure MGA5-32-OK advisory
CC: (none) => davidwhodgins, sysadmin-bugs

Comment 8 Mageia Robot 2016-07-05 17:48:21 CEST
An update for this issue has been pushed to the Mageia Updates repository.

http://advisories.mageia.org/MGASA-2016-0243.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.