[SCM] ktnef packaging branch, master, updated. debian/16.04.2-1-40-g512fa47

Maximiliano Curia maxy at moszumanska.debian.org
Sat Sep 2 16:57:31 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktnef.git;a=commitdiff;h=fadbcee

The following commit has been merged in the master branch:
commit fadbcee7833e3f3706c791ec4833b07c0ba50307
Author: Jonathan Riddell <jr at jriddell.org>
Date:   Mon Feb 27 18:59:48 2017 +0000

    add security patch Title:          ktnef: Directory Traversal
---
 ...8_Fix_Directory_Traversal_problem_in_ktnef.diff | 58 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 2 files changed, 59 insertions(+)

diff --git a/debian/patches/4ff38aa15487d69021aacad4b078500f77fb4ae8_Fix_Directory_Traversal_problem_in_ktnef.diff b/debian/patches/4ff38aa15487d69021aacad4b078500f77fb4ae8_Fix_Directory_Traversal_problem_in_ktnef.diff
new file mode 100644
index 0000000..d402ea2
--- /dev/null
+++ b/debian/patches/4ff38aa15487d69021aacad4b078500f77fb4ae8_Fix_Directory_Traversal_problem_in_ktnef.diff
@@ -0,0 +1,58 @@
+From 4ff38aa15487d69021aacad4b078500f77fb4ae8 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid at kde.org>
+Date: Mon, 27 Feb 2017 19:03:49 +0100
+Subject: Fix Directory Traversal problem in ktnef
+
+Reported by Eric Sesterhenn
+
+Patch reviewed by Laurent Montel
+
+CCMAIL: eric.sesterhenn at x41-dsec.de
+---
+ src/ktnefparser.cpp | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/src/ktnefparser.cpp b/src/ktnefparser.cpp
+index ce40e40..0678003 100644
+--- a/src/ktnefparser.cpp
++++ b/src/ktnefparser.cpp
+@@ -41,7 +41,9 @@
+ 
+ #include <QtCore/QDateTime>
+ #include <QtCore/QDataStream>
++#include <QtCore/QDir>
+ #include <QtCore/QFile>
++#include <QtCore/QFileInfo>
+ #include <QtCore/QVariant>
+ #include <QtCore/QList>
+ 
+@@ -446,7 +448,9 @@ bool KTNEFParser::extractFile(const QString &filename) const
+ bool KTNEFParser::ParserPrivate::extractAttachmentTo(KTNEFAttach *att,
+         const QString &dirname)
+ {
+-    QString filename = dirname + QLatin1Char('/');
++    const QString destDir(QDir(dirname).absolutePath()); // get directory path without any "." or ".."
++
++    QString filename = destDir + QLatin1Char('/');
+     if (!att->fileName().isEmpty()) {
+         filename += att->fileName();
+     } else {
+@@ -462,6 +466,15 @@ bool KTNEFParser::ParserPrivate::extractAttachmentTo(KTNEFAttach *att,
+     if (!device_->seek(att->offset())) {
+         return false;
+     }
++
++    const QFileInfo fi(filename);
++    if (!fi.absoluteFilePath().startsWith(destDir)) {
++        qWarning() << "Attempted extract into" << fi.absoluteFilePath()
++                   << "which is outside of the extraction root folder" << destDir << "."
++                   << "Changing export of contained files to extraction root folder.";
++        filename = destDir + QLatin1Char('/') + fi.fileName();
++    }
++
+     QSaveFile outfile(filename);
+     if (!outfile.open(QIODevice::WriteOnly)) {
+         return false;
+-- 
+cgit v0.11.2
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..e0e353b
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+4ff38aa15487d69021aacad4b078500f77fb4ae8_Fix_Directory_Traversal_problem_in_ktnef.diff

-- 
ktnef packaging



More information about the pkg-kde-commits mailing list