mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-10-15 18:27:12 +00:00
strongswan: patch CVE-2026-78132
Use patch[1] provided by strongSwan[2] Details: https://nvd.nist.gov/vuln/detail/cve-2026-78132 [1]https://download.strongswan.org/security/CVE-2026-78132/strongswan-5.1.3-6.0.7_x509_ac_ietfattr_loop.patch [2]https://www.strongswan.org/blog/2026/09/07/strongswan-vulnerability-(cve-2026-78132).html Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com> Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
This commit is contained in:
1 parent
d831ff4ac9
commit
dd3053a1a3
2 files changed
+76
No files matched your search
@@ -0,0 +1,75 @@
|
||||
From d8144c609148eda1ca55eac2ecddcd81bbd799b5 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Brunner <tobias@strongswan.org>
|
||||
Date: Wed, 1 Jul 2026 16:24:23 +0200
|
||||
Subject: [PATCH] x509: Prevent infinite loop when parsing ietfAttrSyntax in
|
||||
attribute certificates
|
||||
|
||||
This is the same issue that was fixed with 407fcca200fd ("asn1-parser:
|
||||
Fix CHOICE parsing") for other CHOICE elements. This one was missed and
|
||||
can be triggered pre-auth by sending an attribute certificate to a peer.
|
||||
Since it's parsed before verifying it, the certificate doesn't have to
|
||||
be valid.
|
||||
|
||||
For versions older than 5.5.3, this patch requires prior application of
|
||||
the fix for CVE-2017-9023, which introduced proper CHOICE handling in
|
||||
the ASN.1 parser.
|
||||
|
||||
Fixes: a17598bc6992 ("x509: Integrate IETF attribute handling, and obsolete ietf_attributes_t")
|
||||
Fixes: CVE-2026-78132
|
||||
|
||||
CVE: CVE-2026-78132
|
||||
Upstream-Status: Backport [https://github.com/strongswan/strongswan/commit/86bf2cbf5d9941b7ef16a1b25f0baf5589e0b64e]
|
||||
|
||||
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
|
||||
---
|
||||
src/libstrongswan/plugins/x509/x509_ac.c | 36 +++++++++++-------------
|
||||
1 file changed, 17 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/libstrongswan/plugins/x509/x509_ac.c b/src/libstrongswan/plugins/x509/x509_ac.c
|
||||
index 11a847e..46c1f58 100644
|
||||
--- a/src/libstrongswan/plugins/x509/x509_ac.c
|
||||
+++ b/src/libstrongswan/plugins/x509/x509_ac.c
|
||||
@@ -249,26 +249,24 @@ static void parse_roleSyntax(chunk_t blob, int level0)
|
||||
*/
|
||||
static const asn1Object_t ietfAttrSyntaxObjects[] =
|
||||
{
|
||||
- { 0, "ietfAttrSyntax", ASN1_SEQUENCE, ASN1_NONE }, /* 0 */
|
||||
- { 1, "policyAuthority", ASN1_CONTEXT_C_0, ASN1_OPT |
|
||||
- ASN1_BODY }, /* 1 */
|
||||
- { 1, "end opt", ASN1_EOC, ASN1_END }, /* 2 */
|
||||
- { 1, "values", ASN1_SEQUENCE, ASN1_LOOP }, /* 3 */
|
||||
- { 2, "octets", ASN1_OCTET_STRING, ASN1_OPT |
|
||||
- ASN1_BODY }, /* 4 */
|
||||
- { 2, "end choice", ASN1_EOC, ASN1_END }, /* 5 */
|
||||
- { 2, "oid", ASN1_OID, ASN1_OPT |
|
||||
- ASN1_BODY }, /* 6 */
|
||||
- { 2, "end choice", ASN1_EOC, ASN1_END }, /* 7 */
|
||||
- { 2, "string", ASN1_UTF8STRING, ASN1_OPT |
|
||||
- ASN1_BODY }, /* 8 */
|
||||
- { 2, "end choice", ASN1_EOC, ASN1_END }, /* 9 */
|
||||
- { 1, "end loop", ASN1_EOC, ASN1_END }, /* 10 */
|
||||
- { 0, "exit", ASN1_EOC, ASN1_EXIT }
|
||||
+ { 0, "ietfAttrSyntax", ASN1_SEQUENCE, ASN1_NONE }, /* 0 */
|
||||
+ { 1, "policyAuthority", ASN1_CONTEXT_C_0, ASN1_OPT|ASN1_BODY }, /* 1 */
|
||||
+ { 1, "end opt", ASN1_EOC, ASN1_END }, /* 2 */
|
||||
+ { 1, "values", ASN1_SEQUENCE, ASN1_LOOP }, /* 3 */
|
||||
+ { 2, "value choice", ASN1_EOC, ASN1_CHOICE }, /* 4 */
|
||||
+ { 3, "octets", ASN1_OCTET_STRING, ASN1_OPT|ASN1_BODY }, /* 5 */
|
||||
+ { 3, "end choice", ASN1_EOC, ASN1_END|ASN1_CH }, /* 6 */
|
||||
+ { 3, "oid", ASN1_OID, ASN1_OPT|ASN1_BODY }, /* 7 */
|
||||
+ { 3, "end choice", ASN1_EOC, ASN1_END|ASN1_CH }, /* 8 */
|
||||
+ { 3, "string", ASN1_UTF8STRING, ASN1_OPT|ASN1_BODY }, /* 9 */
|
||||
+ { 3, "end choice", ASN1_EOC, ASN1_END|ASN1_CH }, /* 10 */
|
||||
+ { 2, "end choices", ASN1_EOC, ASN1_END|ASN1_CHOICE }, /* 11 */
|
||||
+ { 1, "end loop", ASN1_EOC, ASN1_END }, /* 12 */
|
||||
+ { 0, "exit", ASN1_EOC, ASN1_EXIT }
|
||||
};
|
||||
-#define IETF_ATTR_OCTETS 4
|
||||
-#define IETF_ATTR_OID 6
|
||||
-#define IETF_ATTR_STRING 8
|
||||
+#define IETF_ATTR_OCTETS 5
|
||||
+#define IETF_ATTR_OID 7
|
||||
+#define IETF_ATTR_STRING 9
|
||||
|
||||
/**
|
||||
* Parse group memberships, IETF attributes
|
||||
@@ -18,6 +18,7 @@ SRC_URI = "https://download.strongswan.org/strongswan-${PV}.tar.bz2 \
|
||||
file://CVE-2026-78133.patch \
|
||||
file://CVE-2026-78131.patch \
|
||||
file://CVE-2026-78130.patch \
|
||||
file://CVE-2026-78132.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "07df7cedae56a7f3bb07e66d21a1f9f87e961db70e99184e11d3819413e4f87c"
|
||||
|
||||
Reference in new issue
Block a user