Dear all,

The CVE 2016-4414 was identified earlier in Quassel, which allows an
unauthenticated remote DoS in quassel-core. Its associated bug report in
Debian BTS is: #826402.
Please find attached a debdiff & dsc that address the backport for
fixing the vulnerability in Jessie.
Please, note that due 'compilation' issues (Quassel build for jessie
isn't C++11 ready), I removed cosmetic change from the cherrypicked
commit (return 0 -> return nullptr) and only kept functional changes.
Would you be able to sponsor the upload, as I can't?
Thanks for your help.

Cheers,
-- 
Pierre Schweitzer <pierre at reactos.org>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.
diff -Nru quassel-0.10.0/debian/changelog quassel-0.10.0/debian/changelog
--- quassel-0.10.0/debian/changelog	2015-12-28 20:54:21.000000000 +0100
+++ quassel-0.10.0/debian/changelog	2016-06-05 12:54:55.000000000 +0200
@@ -1,3 +1,12 @@
+quassel (1:0.10.0-2.3+deb8u3) jessie; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix CVE-2016-4414: remote DoS in quassel core with invalid handshake data.
+    (Closes: #826402)
+    - Add debian/patches/CVE-2016-4414.patch, cherry-picked from upstream.
+
+ -- Pierre Schweitzer <pie...@reactos.org>  Sun, 05 Jun 2016 12:41:35 +0200
+
 quassel (1:0.10.0-2.3+deb8u2) jessie; urgency=high
 
   * Non-maintainer upload.
diff -Nru quassel-0.10.0/debian/patches/CVE-2016-4414.patch quassel-0.10.0/debian/patches/CVE-2016-4414.patch
--- quassel-0.10.0/debian/patches/CVE-2016-4414.patch	1970-01-01 01:00:00.000000000 +0100
+++ quassel-0.10.0/debian/patches/CVE-2016-4414.patch	2016-06-05 12:55:03.000000000 +0200
@@ -0,0 +1,40 @@
+From e67887343c433cc35bc26ad6a9392588f427e746 Mon Sep 17 00:00:00 2001
+From: Manuel Nickschas <sputn...@quassel-irc.org>
+Date: Sun, 24 Apr 2016 21:59:15 +0200
+Subject: [PATCH] Handle invalid handshake data properly in the core
+
+Clients sending invalid handshake data could make the core crash
+due to an unchecked pointer. This commit fixes this issue by having
+the core close the socket if a peer could not be created.
+
+Thanks to Bas Pape (Tucos) for finding this one!
+---
+ src/core/coreauthhandler.cpp | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/src/core/coreauthhandler.cpp b/src/core/coreauthhandler.cpp
+index e380924..34fc222 100644
+--- a/src/core/coreauthhandler.cpp
++++ b/src/core/coreauthhandler.cpp
+@@ -81,7 +81,7 @@ void CoreAuthHandler::onReadyRead()
+     }
+ 
+     // read the list of protocols supported by the client
+-    while (socket()->bytesAvailable() >= 4) {
++    while (socket()->bytesAvailable() >= 4 && _supportedProtos.size() < 16) { // sanity check
+         quint32 data;
+         socket()->read((char*)&data, 4);
+         data = qFromBigEndian<quint32>(data);
+@@ -98,6 +98,12 @@ void CoreAuthHandler::onReadyRead()
+                 level = Compressor::NoCompression;
+ 
+             RemotePeer *peer = PeerFactory::createPeer(_supportedProtos, this, socket(), level, this);
++            if (!peer) {
++                qWarning() << "Received invalid handshake data from client" << socket()->peerAddress().toString();
++                close();
++                return;
++            }
++
+             if (peer->protocol() == Protocol::LegacyProtocol) {
+                 _legacy = true;
+                 connect(peer, SIGNAL(protocolVersionMismatch(int,int)), SLOT(onProtocolVersionMismatch(int,int)));
diff -Nru quassel-0.10.0/debian/patches/series quassel-0.10.0/debian/patches/series
--- quassel-0.10.0/debian/patches/series	2015-12-28 20:54:21.000000000 +0100
+++ quassel-0.10.0/debian/patches/series	2016-06-05 12:55:18.000000000 +0200
@@ -3,3 +3,4 @@
 CVE-2015-2778.patch
 CVE-2015-3427.patch
 CVE-2015-8547.patch
+CVE-2016-4414.patch
Format: 3.0 (quilt)
Source: quassel
Binary: quassel-core, quassel-client, quassel, quassel-data, 
quassel-client-kde4, quassel-kde4, quassel-data-kde4
Architecture: any all
Version: 1:0.10.0-2.3+deb8u3
Maintainer: Thomas Mueller <thomas.muel...@tmit.eu>
Homepage: http://www.quassel-irc.org
Standards-Version: 3.9.5
Build-Depends: debhelper (>= 9.20120417), libqt4-dev, cmake, 
libfontconfig1-dev, libfreetype6-dev, libpng-dev, libsm-dev, libice-dev, 
libxi-dev, libxrandr-dev, libxrender-dev, zlib1g-dev, libssl-dev, 
libdbus-1-dev, pkg-kde-tools, kdelibs5-dev, libqca2-dev, qt4-dev-tools, 
libqtwebkit-dev, libindicate-qt-dev, libdbusmenu-qt-dev
Package-List:
 quassel deb net optional arch=any
 quassel-client deb net optional arch=any
 quassel-client-kde4 deb net optional arch=any
 quassel-core deb net optional arch=any
 quassel-data deb net optional arch=all
 quassel-data-kde4 deb net optional arch=all
 quassel-kde4 deb net optional arch=any
Checksums-Sha1:
 305d56774b1af2a891775a5637174d9048d875a7 2873233 quassel_0.10.0.orig.tar.bz2
 295c3381f66c26389a71a17aaf96bf4d5d4ceef0 23684 
quassel_0.10.0-2.3+deb8u3.debian.tar.xz
Checksums-Sha256:
 68228ce23aa3a992add3d00cb1e8b4863d8ca64bea99c881edf6d16ff9ec7c23 2873233 
quassel_0.10.0.orig.tar.bz2
 926f4944e6d64e5410e3357d410f172d1266e428585331d3cd91257d901d77cb 23684 
quassel_0.10.0-2.3+deb8u3.debian.tar.xz
Files:
 382466a7790979c172b7d7edf10a2981 2873233 quassel_0.10.0.orig.tar.bz2
 ee244e047e4c961bd811970270a6ccfc 23684 quassel_0.10.0-2.3+deb8u3.debian.tar.xz

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
pkg-kde-extras mailing list
pkg-kde-extras@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-kde-extras

Reply via email to