[Pkg-swan-devel] [strongswan] 04/12: remove strongswan-5.2.2-5.3.0_unknown_payload.patch, included upstream

Yves-Alexis Perez corsac at moszumanska.debian.org
Mon Jun 8 14:51:57 UTC 2015


This is an automated email from the git hooks/post-receive script.

corsac pushed a commit to branch master
in repository strongswan.

commit d4ef7a92f876acfedc8eb39b21ed2c65daddac31
Author: Yves-Alexis Perez <corsac at debian.org>
Date:   Mon Jun 1 15:01:27 2015 +0200

    remove strongswan-5.2.2-5.3.0_unknown_payload.patch, included upstream
---
 debian/changelog                                   |   2 +
 debian/patches/series                              |   1 -
 .../strongswan-5.2.2-5.3.0_unknown_payload.patch   | 166 ---------------------
 3 files changed, 2 insertions(+), 167 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index fb4aa98..01e388b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 strongswan (5.3.1-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * debian/patches:
+    - strongswan-5.2.2-5.3.0_unknown_payload dropped, included upstream.
 
  -- Yves-Alexis Perez <corsac at debian.org>  Mon, 01 Jun 2015 15:00:41 +0200
 
diff --git a/debian/patches/series b/debian/patches/series
index fbdfbb4..6d7cc1d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
 01_fix-manpages.patch
 03_systemd-service.patch
 04_disable-libtls-tests.patch
-strongswan-5.2.2-5.3.0_unknown_payload.patch
diff --git a/debian/patches/strongswan-5.2.2-5.3.0_unknown_payload.patch b/debian/patches/strongswan-5.2.2-5.3.0_unknown_payload.patch
deleted file mode 100644
index b01db1b..0000000
--- a/debian/patches/strongswan-5.2.2-5.3.0_unknown_payload.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 7733b99198111ef1f30a964e15e93cb1e6d27a85 Mon Sep 17 00:00:00 2001
-From: Tobias Brunner <tobias at strongswan.org>
-Date: Fri, 15 May 2015 11:15:57 +0200
-Subject: [PATCH] unknown-payload: Use a new private payload type and make
- original type available
-
-This fixes a DoS and potential remote code execution vulnerability that was
-caused because the original payload type that was returned previously was
-used to cast such payload objects to payloads of the indicated type (e.g.
-when logging notify payloads with a payload type for the wrong IKE version).
-
-Fixes CVE-2015-3991.
----
- src/libcharon/encoding/message.c                  |  2 +-
- src/libcharon/encoding/payloads/payload.c         |  2 ++
- src/libcharon/encoding/payloads/payload.h         |  7 ++++++-
- src/libcharon/encoding/payloads/unknown_payload.c |  8 ++++++++
- src/libcharon/encoding/payloads/unknown_payload.h |  8 ++++++++
- src/libcharon/sa/ikev2/task_manager_v2.c          | 18 ++++++++++--------
- 6 files changed, 35 insertions(+), 10 deletions(-)
-
-diff --git a/src/libcharon/encoding/message.c b/src/libcharon/encoding/message.c
-index 1ee2cf81b035..478f531eae28 100644
---- a/src/libcharon/encoding/message.c
-+++ b/src/libcharon/encoding/message.c
-@@ -2513,7 +2513,7 @@ static status_t decrypt_payloads(private_message_t *this, keymat_t *keymat)
- 			was_encrypted = "encrypted fragment payload";
- 		}
- 
--		if (payload_is_known(type, this->major_version) && !was_encrypted &&
-+		if (type != PL_UNKNOWN && !was_encrypted &&
- 			!is_connectivity_check(this, payload) &&
- 			this->exchange_type != AGGRESSIVE)
- 		{
-diff --git a/src/libcharon/encoding/payloads/payload.c b/src/libcharon/encoding/payloads/payload.c
-index a1cd2f945588..f7c2754e05c3 100644
---- a/src/libcharon/encoding/payloads/payload.c
-+++ b/src/libcharon/encoding/payloads/payload.c
-@@ -97,6 +97,7 @@ ENUM_NEXT(payload_type_names, PLV1_NAT_D_DRAFT_00_03, PLV1_FRAGMENT, PLV2_FRAGME
- #endif /* ME */
- ENUM_NEXT(payload_type_names, PL_HEADER, PLV1_ENCRYPTED, PLV1_FRAGMENT,
- 	"HEADER",
-+	"UNKNOWN",
- 	"PROPOSAL_SUBSTRUCTURE",
- 	"PROPOSAL_SUBSTRUCTURE_V1",
- 	"TRANSFORM_SUBSTRUCTURE",
-@@ -167,6 +168,7 @@ ENUM_NEXT(payload_type_short_names, PLV1_NAT_D_DRAFT_00_03, PLV1_FRAGMENT, PLV2_
- #endif /* ME */
- ENUM_NEXT(payload_type_short_names, PL_HEADER, PLV1_ENCRYPTED, PLV1_FRAGMENT,
- 	"HDR",
-+	"UNKN",
- 	"PROP",
- 	"PROP",
- 	"TRANS",
-diff --git a/src/libcharon/encoding/payloads/payload.h b/src/libcharon/encoding/payloads/payload.h
-index 920779bd1032..72003894f307 100644
---- a/src/libcharon/encoding/payloads/payload.h
-+++ b/src/libcharon/encoding/payloads/payload.h
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2007 Tobias Brunner
-+ * Copyright (C) 2007-2015 Tobias Brunner
-  * Copyright (C) 2005-2006 Martin Willi
-  * Copyright (C) 2005 Jan Hutter
-  * Hochschule fuer Technik Rapperswil
-@@ -264,6 +264,11 @@ enum payload_type_t {
- 	PL_HEADER = 256,
- 
- 	/**
-+	 * Used to handle unknown or invalid payload types.
-+	 */
-+	PL_UNKNOWN,
-+
-+	/**
- 	 * PLV2_PROPOSAL_SUBSTRUCTURE, IKEv2 proposals in a SA payload.
- 	 */
- 	PLV2_PROPOSAL_SUBSTRUCTURE,
-diff --git a/src/libcharon/encoding/payloads/unknown_payload.c b/src/libcharon/encoding/payloads/unknown_payload.c
-index 45b91fd0b32f..c69254fc008c 100644
---- a/src/libcharon/encoding/payloads/unknown_payload.c
-+++ b/src/libcharon/encoding/payloads/unknown_payload.c
-@@ -1,4 +1,5 @@
- /*
-+ * Copyright (C) 2015 Tobias Brunner
-  * Copyright (C) 2005-2006 Martin Willi
-  * Copyright (C) 2005 Jan Hutter
-  * Hochschule fuer Technik Rapperswil
-@@ -121,6 +122,12 @@ METHOD(payload_t, get_header_length, int,
- METHOD(payload_t, get_payload_type, payload_type_t,
- 	private_unknown_payload_t *this)
- {
-+	return PL_UNKNOWN;
-+}
-+
-+METHOD(unknown_payload_t, get_type, payload_type_t,
-+	private_unknown_payload_t *this)
-+{
- 	return this->type;
- }
- 
-@@ -181,6 +188,7 @@ unknown_payload_t *unknown_payload_create(payload_type_t type)
- 				.destroy = _destroy,
- 			},
- 			.is_critical = _is_critical,
-+			.get_type = _get_type,
- 			.get_data = _get_data,
- 			.destroy = _destroy,
- 		},
-diff --git a/src/libcharon/encoding/payloads/unknown_payload.h b/src/libcharon/encoding/payloads/unknown_payload.h
-index 326b550cd872..09341bcc79b5 100644
---- a/src/libcharon/encoding/payloads/unknown_payload.h
-+++ b/src/libcharon/encoding/payloads/unknown_payload.h
-@@ -1,4 +1,5 @@
- /*
-+ * Copyright (C) 2015 Tobias Brunner
-  * Copyright (C) 2005-2006 Martin Willi
-  * Copyright (C) 2005 Jan Hutter
-  * Hochschule fuer Technik Rapperswil
-@@ -42,6 +43,13 @@ struct unknown_payload_t {
- 	payload_t payload_interface;
- 
- 	/**
-+	 * Get the original payload type as sent by the peer.
-+	 *
-+	 * @return				type of the original payload
-+	 */
-+	payload_type_t (*get_type) (unknown_payload_t *this);
-+
-+	/**
- 	 * Get the raw data of this payload, without
- 	 * the generic payload header.
- 	 *
-diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c
-index 298167703cbf..4676867dfec2 100644
---- a/src/libcharon/sa/ikev2/task_manager_v2.c
-+++ b/src/libcharon/sa/ikev2/task_manager_v2.c
-@@ -1184,15 +1184,17 @@ static status_t parse_message(private_task_manager_t *this, message_t *msg)
- 		enumerator = msg->create_payload_enumerator(msg);
- 		while (enumerator->enumerate(enumerator, &payload))
- 		{
--			unknown = (unknown_payload_t*)payload;
--			type = payload->get_type(payload);
--			if (!payload_is_known(type, msg->get_major_version(msg)) &&
--				unknown->is_critical(unknown))
-+			if (payload->get_type(payload) == PL_UNKNOWN)
- 			{
--				DBG1(DBG_ENC, "payload type %N is not supported, "
--					 "but its critical!", payload_type_names, type);
--				status = NOT_SUPPORTED;
--				break;
-+				unknown = (unknown_payload_t*)payload;
-+				if (unknown->is_critical(unknown))
-+				{
-+					type = unknown->get_type(unknown);
-+					DBG1(DBG_ENC, "payload type %N is not supported, "
-+						 "but its critical!", payload_type_names, type);
-+					status = NOT_SUPPORTED;
-+					break;
-+				}
- 			}
- 		}
- 		enumerator->destroy(enumerator);
--- 
-1.9.1
-
-
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-swan/strongswan.git



More information about the Pkg-swan-devel mailing list