Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Aug 2016 19:30:03 +0000 (UTC)
From:      "Tobias C. Berner" <tcberner@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r420994 - in head/x11/kdelibs4: . files
Message-ID:  <201608271930.u7RJU3v3096390@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tcberner
Date: Sat Aug 27 19:30:03 2016
New Revision: 420994
URL: https://svnweb.freebsd.org/changeset/ports/420994

Log:
  Add upstream patch for a security issue in karchive:
          Directory traversal vulnerability in KArchive before 5.24, as
          used in KDE Frameworks, allows remote attackers to write to
          arbitrary files via a ../ (dot dot slash) in a filename in an
          archive file, related to KNewsstuff downloads.
  
  Review the patch is from: https://git.reviewboard.kde.org/r/128749/
  Original KF5 review: https://git.reviewboard.kde.org/r/128185/
  CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6232
  
  Approved by: rakuco (mentor)
  Security: 4472ab39-6c66-11e6-9ca5-50e549ebab6c, CVE-2016-6232
  MFH:            2016Q3

Added:
  head/x11/kdelibs4/files/patch-git_dd1c2da   (contents, props changed)
Modified:
  head/x11/kdelibs4/Makefile

Modified: head/x11/kdelibs4/Makefile
==============================================================================
--- head/x11/kdelibs4/Makefile	Sat Aug 27 19:20:16 2016	(r420993)
+++ head/x11/kdelibs4/Makefile	Sat Aug 27 19:30:03 2016	(r420994)
@@ -3,7 +3,7 @@
 
 PORTNAME=	kdelibs
 PORTVERSION=	${KDE4_KDELIBS_VERSION}
-PORTREVISION=	6
+PORTREVISION=	7
 CATEGORIES=	x11 kde
 MASTER_SITES=   KDE/${KDE4_APPLICATIONS_BRANCH}/applications/${KDE4_APPLICATIONS_VERSION}/src
 DIST_SUBDIR=	KDE/${PORTVERSION}

Added: head/x11/kdelibs4/files/patch-git_dd1c2da
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/kdelibs4/files/patch-git_dd1c2da	Sat Aug 27 19:30:03 2016	(r420994)
@@ -0,0 +1,44 @@
+From dd1c2da9d26fd4cfc7fe0a25f413e536d56cf2db Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Fri, 26 Aug 2016 00:30:34 +0200
+Subject: [PATCH] Backport karchive fix for out of directory files
+
+REVIEW: 128749
+---
+ kdecore/io/karchive.cpp                              |  15 +++++++++++++--
+
+diff --git kdecore/io/karchive.cpp kdecore/io/karchive.cpp
+index eb0bf2e..d3f8c67 100644
+--- kdecore/io/karchive.cpp
++++ kdecore/io/karchive.cpp
+@@ -800,6 +800,7 @@ static bool sortByPosition( const KArchiveFile* file1, const KArchiveFile* file2
+ void KArchiveDirectory::copyTo(const QString& dest, bool recursiveCopy ) const
+ {
+   QDir root;
++  const QString destDir(QDir(dest).absolutePath()); // get directory path without any "." or ".."
+
+   QList<const KArchiveFile*> fileList;
+   QMap<qint64, QString> fileToDir;
+@@ -809,10 +810,20 @@ void KArchiveDirectory::copyTo(const QString& dest, bool recursiveCopy ) const
+   QStack<QString> dirNameStack;
+
+   dirStack.push( this );     // init stack at current directory
+-  dirNameStack.push( dest ); // ... with given path
++  dirNameStack.push( destDir ); // ... with given path
+   do {
+     const KArchiveDirectory* curDir = dirStack.pop();
+-    const QString curDirName = dirNameStack.pop();
++
++    // extract only to specified folder if it is located within archive's extraction folder
++    // otherwise put file under root position in extraction folder
++    QString curDirName = dirNameStack.pop();
++    if (!QDir(curDirName).absolutePath().startsWith(destDir)) {
++        qWarning() << "Attempted export into folder" << curDirName
++            << "which is outside of the extraction root folder" << destDir << "."
++            << "Changing export of contained files to extraction root folder.";
++        curDirName = destDir;
++    }
++
+     root.mkdir(curDirName);
+
+     const QStringList dirEntries = curDir->entries();



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201608271930.u7RJU3v3096390>