[meta-lts-collab][kirkstone][PATCH V2 1/7] strongswan: Fix CVE-2026-35328
Nitin Wankhade <[email protected]> Tue, 23 Jun 2026 11:39:55 +0530
| Newsgroups | org.yoctoproject.lists.yocto-patches |
|---|---|
| Message-ID | <[email protected]> |
From: Nitin Wankhade <[email protected]> Upstream-Status: Backport [https://snapshot.debian.org/archive/debian-security-debug/20260422T125423Z/pool/updates/main/s/strongswan/strongswan_6.0.1-6%2Bdeb13u5.debian.tar.xz] Signed-off-by: Nitin Wankhade <[email protected]> --- .../strongswan/files/CVE-2026-35328.patch | 42 +++++++++++++++++++ .../strongswan/strongswan_5.9.13.bbappend | 4 ++ 2 files changed, 46 insertions(+) create mode 100644 meta-networking/recipes-support/strongswan/files/CVE-2026-35328.patch create mode 100644 meta-networking/recipes-support/strongswan/strongswan_5.9.13.bbappend diff --git a/meta-networking/recipes-support/strongswan/files/CVE-2026-35328.patch b/meta-networking/recipes-support/strongswan/files/CVE-2026-35328.patch new file mode 100644 index 0000000..32a23b3 --- /dev/null +++ b/meta-networking/recipes-support/strongswan/files/CVE-2026-35328.patch @@ -0,0 +1,42 @@ +From: Tobias Brunner <[email protected]> +Date: Wed, 25 Mar 2026 10:17:46 +0100 +Subject: tls-server: Prevent infinite loop if supported versions are too + short + +If the extension doesn't contain a multiple of two bytes, the previous +code would get stuck in an infinite loop as `remaining()` continued to +return TRUE while `read_uint16()` failed to parse a value. Initiating +several connections with such an extension allows a DoS attack as no +threads would eventually be available to handle packets/events. + +Fixes: 7fbe2e27ecf6 ("tls-server: TLS 1.3 support for TLS server implementation") +Fixes: CVE-2026-35328 + +CVE: CVE-2026-35328 +Upstream-Status: Backport [https://snapshot.debian.org/archive/debian-security-debug/20260422T125423Z/pool/updates/main/s/strongswan/strongswan_6.0.1-6%2Bdeb13u5.debian.tar.xz] +Signed-off-by: Nitin Wankhade <[email protected]> +=== +diff --git a/src/libtls/tls_server.c b/src/libtls/tls_server.c +index 3ad9fd2..7b2238e 100644 +--- a/src/libtls/tls_server.c ++++ b/src/libtls/tls_server.c +@@ -471,15 +471,12 @@ static status_t process_client_hello(private_tls_server_t *this, + bio_reader_t *client_versions; + + client_versions = bio_reader_create(versions); +- while (client_versions->remaining(client_versions)) ++ while (client_versions->read_uint16(client_versions, &version)) + { +- if (client_versions->read_uint16(client_versions, &version)) ++ if (this->tls->set_version(this->tls, version, version)) + { +- if (this->tls->set_version(this->tls, version, version)) +- { +- this->client_version = version; +- break; +- } ++ this->client_version = version; ++ break; + } + } + client_versions->destroy(client_versions); diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.9.13.bbappend b/meta-networking/recipes-support/strongswan/strongswan_5.9.13.bbappend new file mode 100644 index 0000000..9d48481 --- /dev/null +++ b/meta-networking/recipes-support/strongswan/strongswan_5.9.13.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" +SRC_URI += "\ + file://CVE-2026-35328.patch \ +" -- 2.34.1