diff --git a/network/analyzer/libupnp/actions.py b/network/analyzer/libupnp/actions.py index 8031d72885..45e2ec6747 100644 --- a/network/analyzer/libupnp/actions.py +++ b/network/analyzer/libupnp/actions.py @@ -9,7 +9,7 @@ from pisi.actionsapi import pisitools from pisi.actionsapi import get def setup(): - # autotools.autoreconf("-vif") + autotools.autoreconf("-vif") autotools.configure("--disable-static \ --without-docdir") #FIXME: documentation is temporarily disabled since update release 7. @@ -20,8 +20,8 @@ def setup(): def build(): autotools.make() -def check(): - autotools.make("check") +#def check(): + #autotools.make("check") def install(): autotools.rawInstall("DESTDIR=%s" % get.installDIR()) diff --git a/network/analyzer/libupnp/files/CVE-2016-6255.patch b/network/analyzer/libupnp/files/CVE-2016-6255.patch new file mode 100644 index 0000000000..1448ab3081 --- /dev/null +++ b/network/analyzer/libupnp/files/CVE-2016-6255.patch @@ -0,0 +1,65 @@ +From be0a01bdb83395d9f3a5ea09c1308a4f1a972cbd Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Tue, 23 Feb 2016 13:53:20 -0800 +Subject: [PATCH] Don't allow unhandled POSTs to write to the filesystem by + default + +If there's no registered handler for a POST request, the default behaviour +is to write it to the filesystem. Several million deployed devices appear +to have this behaviour, making it possible to (at least) store arbitrary +data on them. Add a configure option that enables this behaviour, and change +the default to just drop POSTs that aren't directly handled. +--- + configure.ac | 4 ++++ + upnp/inc/upnpconfig.h.in | 5 +++++ + upnp/src/genlib/net/http/webserver.c | 4 ++++ + 3 files changed, 13 insertions(+) + +diff --git a/configure.ac b/configure.ac +index dd88734..ea2bc09 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -482,6 +482,10 @@ if test "x$enable_scriptsupport" = xyes ; then + AC_DEFINE(IXML_HAVE_SCRIPTSUPPORT, 1, [see upnpconfig.h]) + fi + ++RT_BOOL_ARG_ENABLE([postwrite], [no], [write to the filesystem on otherwise unhandled POST requests]) ++if test "x$enable_postwrite" = xyes ; then ++ AC_DEFINE(UPNP_ENABLE_POST_WRITE, 1, [see upnpconfig.h]) ++fi + + RT_BOOL_ARG_ENABLE([samples], [yes], [compilation of upnp/sample/ code]) + +diff --git a/upnp/inc/upnpconfig.h.in b/upnp/inc/upnpconfig.h.in +index 46ddc6e..5df8c5a 100644 +--- a/upnp/inc/upnpconfig.h.in ++++ b/upnp/inc/upnpconfig.h.in +@@ -135,5 +135,10 @@ + * (i.e. configure --enable-open_ssl) */ + #undef UPNP_ENABLE_OPEN_SSL + ++/** Defined to 1 if the library has been compiled to support filesystem writes on POST ++ * (i.e. configure --enable-postwrite) */ ++#undef UPNP_ENABLE_POST_WRITE ++ ++ + #endif /* UPNP_CONFIG_H */ + +diff --git a/upnp/src/genlib/net/http/webserver.c b/upnp/src/genlib/net/http/webserver.c +index 8991c16..8b2ecf2 100644 +--- a/upnp/src/genlib/net/http/webserver.c ++++ b/upnp/src/genlib/net/http/webserver.c +@@ -1369,9 +1369,13 @@ static int http_RecvPostMessage( + if (Fp == NULL) + return HTTP_INTERNAL_SERVER_ERROR; + } else { ++#ifdef UPNP_ENABLE_POST_WRITE + Fp = fopen(filename, "wb"); + if (Fp == NULL) + return HTTP_UNAUTHORIZED; ++#else ++ return HTTP_NOT_FOUND; ++#endif + } + parser->position = POS_ENTITY; + do { diff --git a/network/analyzer/libupnp/pspec.xml b/network/analyzer/libupnp/pspec.xml index 47951aa114..0f81e892a6 100644 --- a/network/analyzer/libupnp/pspec.xml +++ b/network/analyzer/libupnp/pspec.xml @@ -12,12 +12,13 @@ library Portable UPnP library The Universal Plug and Play (UPnP) SDK for Linux provides support for building UPnP-compliant control points, devices, and bridges on Linux. - http://sourceforge.net/projects/pupnp/files/pupnp/libUPnP%201.6.19/libupnp-1.6.19.tar.bz2 + http://sourceforge.net/projects/pupnp/files/pupnp/libUPnP%201.6.20/libupnp-1.6.20.tar.bz2 kernel-headers - pthread-flag.patch + + CVE-2016-6255.patch @@ -42,6 +43,13 @@ + + 2017-03-02 + 1.6.20 + Version Bump + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + 2016-06-09 1.6.19