summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPawan Badganchi <badganchipv@gmail.com>2023-03-22 13:45:01 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-03-28 22:31:53 +0100
commit64eba948a9794c4f37d2473ad2bc3a17db2c3766 (patch)
tree404f3a0f2ed181ca57b34d1683b22cf8ab562cab
parent85661be8ff3623faf05525bc9f27a2457381f8e9 (diff)
downloadpoky-64eba948a9794c4f37d2473ad2bc3a17db2c3766.tar.gz
curl: Add fix for CVE-2023-23914, CVE-2023-23915
Add below patches to fix CVE-2023-23914 [1], CVE-2023-23915 [2] CVE-2023-23914_5-1.patch CVE-2023-23914_5-2.patch CVE-2023-23914_5-3.patch CVE-2023-23914_5-4.patch CVE-2023-23914_5-5.patch [1] https://curl.se/docs/CVE-2023-23914.html [2] https://curl.se/docs/CVE-2023-23915.html (From OE-Core rev: c80ede99b60cfbb0e7b339e1a7dc9f082f0da1f3) Signed-off-by: Pawan Badganchi <Pawan.Badganchi@kpit.com> Signed-off-by: pawan <badganchipv@gmail.com> Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-support/curl/curl/CVE-2023-23914_5-1.patch280
-rw-r--r--meta/recipes-support/curl/curl/CVE-2023-23914_5-2.patch23
-rw-r--r--meta/recipes-support/curl/curl/CVE-2023-23914_5-3.patch45
-rw-r--r--meta/recipes-support/curl/curl/CVE-2023-23914_5-4.patch48
-rw-r--r--meta/recipes-support/curl/curl/CVE-2023-23914_5-5.patch118
-rw-r--r--meta/recipes-support/curl/curl_7.82.0.bb5
6 files changed, 519 insertions, 0 deletions
diff --git a/meta/recipes-support/curl/curl/CVE-2023-23914_5-1.patch b/meta/recipes-support/curl/curl/CVE-2023-23914_5-1.patch
new file mode 100644
index 0000000000..d357cee76c
--- /dev/null
+++ b/meta/recipes-support/curl/curl/CVE-2023-23914_5-1.patch
@@ -0,0 +1,280 @@
1From 076a2f629119222aeeb50f5a03bf9f9052fabb9a Mon Sep 17 00:00:00 2001
2From: Daniel Stenberg <daniel@haxx.se>
3Date: Tue, 27 Dec 2022 11:50:20 +0100
4Subject: [PATCH] share: add sharing of HSTS cache among handles
5
6Closes #10138
7
8CVE: CVE-2023-23914 CVE-2023-23915
9Upstream-Status: Backport [https://github.com/curl/curl/commit/076a2f629119222aeeb50f5a03bf9f9052fabb9a]
10Comment: Refreshed hunk from hsts.c and urldata.h
11Signed-off-by: Pawan Badganchi <Pawan.Badganchi@kpit.com>
12Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
13---
14 include/curl/curl.h | 1 +
15 lib/hsts.c | 15 +++++++++
16 lib/hsts.h | 2 ++
17 lib/setopt.c | 48 ++++++++++++++++++++++++-----
18 lib/share.c | 32 +++++++++++++++++--
19 lib/share.h | 6 +++-
20 lib/transfer.c | 3 ++
21 lib/url.c | 6 +++-
22 lib/urldata.h | 2 ++
23 9 files changed, 109 insertions(+), 11 deletions(-)
24
25--- a/include/curl/curl.h
26+++ b/include/curl/curl.h
27@@ -2953,6 +2953,7 @@ typedef enum {
28 CURL_LOCK_DATA_SSL_SESSION,
29 CURL_LOCK_DATA_CONNECT,
30 CURL_LOCK_DATA_PSL,
31+ CURL_LOCK_DATA_HSTS,
32 CURL_LOCK_DATA_LAST
33 } curl_lock_data;
34
35--- a/lib/hsts.c
36+++ b/lib/hsts.c
37@@ -37,6 +37,7 @@
38 #include "parsedate.h"
39 #include "rand.h"
40 #include "rename.h"
41+#include "share.h"
42 #include "strtoofft.h"
43
44 /* The last 3 #include files should be in this order */
45@@ -561,4 +562,18 @@
46 return CURLE_OK;
47 }
48
49+void Curl_hsts_loadfiles(struct Curl_easy *data)
50+{
51+ struct curl_slist *l = data->set.hstslist;
52+ if(l) {
53+ Curl_share_lock(data, CURL_LOCK_DATA_HSTS, CURL_LOCK_ACCESS_SINGLE);
54+
55+ while(l) {
56+ (void)Curl_hsts_loadfile(data, data->hsts, l->data);
57+ l = l->next;
58+ }
59+ Curl_share_unlock(data, CURL_LOCK_DATA_HSTS);
60+ }
61+}
62+
63 #endif /* CURL_DISABLE_HTTP || CURL_DISABLE_HSTS */
64--- a/lib/hsts.h
65+++ b/lib/hsts.h
66@@ -59,9 +59,11 @@ CURLcode Curl_hsts_loadfile(struct Curl_
67 struct hsts *h, const char *file);
68 CURLcode Curl_hsts_loadcb(struct Curl_easy *data,
69 struct hsts *h);
70+void Curl_hsts_loadfiles(struct Curl_easy *data);
71 #else
72 #define Curl_hsts_cleanup(x)
73 #define Curl_hsts_loadcb(x,y) CURLE_OK
74 #define Curl_hsts_save(x,y,z)
75+#define Curl_hsts_loadfiles(x)
76 #endif /* CURL_DISABLE_HTTP || CURL_DISABLE_HSTS */
77 #endif /* HEADER_CURL_HSTS_H */
78--- a/lib/setopt.c
79+++ b/lib/setopt.c
80@@ -2260,9 +2260,14 @@ CURLcode Curl_vsetopt(struct Curl_easy *
81 data->cookies = NULL;
82 #endif
83
84+#ifndef CURL_DISABLE_HSTS
85+ if(data->share->hsts == data->hsts)
86+ data->hsts = NULL;
87+#endif
88+#ifdef USE_SSL
89 if(data->share->sslsession == data->state.session)
90 data->state.session = NULL;
91-
92+#endif
93 #ifdef USE_LIBPSL
94 if(data->psl == &data->share->psl)
95 data->psl = data->multi? &data->multi->psl: NULL;
96@@ -2296,10 +2301,19 @@ CURLcode Curl_vsetopt(struct Curl_easy *
97 data->cookies = data->share->cookies;
98 }
99 #endif /* CURL_DISABLE_HTTP */
100+#ifndef CURL_DISABLE_HSTS
101+ if(data->share->hsts) {
102+ /* first free the private one if any */
103+ Curl_hsts_cleanup(&data->hsts);
104+ data->hsts = data->share->hsts;
105+ }
106+#endif /* CURL_DISABLE_HTTP */
107+#ifdef USE_SSL
108 if(data->share->sslsession) {
109 data->set.general_ssl.max_ssl_sessions = data->share->max_ssl_sessions;
110 data->state.session = data->share->sslsession;
111 }
112+#endif
113 #ifdef USE_LIBPSL
114 if(data->share->specifier & (1 << CURL_LOCK_DATA_PSL))
115 data->psl = &data->share->psl;
116@@ -3049,19 +3063,39 @@ CURLcode Curl_vsetopt(struct Curl_easy *
117 case CURLOPT_HSTSWRITEDATA:
118 data->set.hsts_write_userp = va_arg(param, void *);
119 break;
120- case CURLOPT_HSTS:
121+ case CURLOPT_HSTS: {
122+ struct curl_slist *h;
123 if(!data->hsts) {
124 data->hsts = Curl_hsts_init();
125 if(!data->hsts)
126 return CURLE_OUT_OF_MEMORY;
127 }
128 argptr = va_arg(param, char *);
129- result = Curl_setstropt(&data->set.str[STRING_HSTS], argptr);
130- if(result)
131- return result;
132- if(argptr)
133- (void)Curl_hsts_loadfile(data, data->hsts, argptr);
134+ if(argptr) {
135+ result = Curl_setstropt(&data->set.str[STRING_HSTS], argptr);
136+ if(result)
137+ return result;
138+ /* this needs to build a list of file names to read from, so that it can
139+ read them later, as we might get a shared HSTS handle to load them
140+ into */
141+ h = curl_slist_append(data->set.hstslist, argptr);
142+ if(!h) {
143+ curl_slist_free_all(data->set.hstslist);
144+ data->set.hstslist = NULL;
145+ return CURLE_OUT_OF_MEMORY;
146+ }
147+ data->set.hstslist = h; /* store the list for later use */
148+ }
149+ else {
150+ /* clear the list of HSTS files */
151+ curl_slist_free_all(data->set.hstslist);
152+ data->set.hstslist = NULL;
153+ if(!data->share || !data->share->hsts)
154+ /* throw away the HSTS cache unless shared */
155+ Curl_hsts_cleanup(&data->hsts);
156+ }
157 break;
158+ }
159 case CURLOPT_HSTS_CTRL:
160 arg = va_arg(param, long);
161 if(arg & CURLHSTS_ENABLE) {
162--- a/lib/share.c
163+++ b/lib/share.c
164@@ -29,9 +29,11 @@
165 #include "share.h"
166 #include "psl.h"
167 #include "vtls/vtls.h"
168-#include "curl_memory.h"
169+#include "hsts.h"
170
171-/* The last #include file should be: */
172+/* The last 3 #include files should be in this order */
173+#include "curl_printf.h"
174+#include "curl_memory.h"
175 #include "memdebug.h"
176
177 struct Curl_share *
178@@ -89,6 +91,18 @@ curl_share_setopt(struct Curl_share *sha
179 #endif
180 break;
181
182+ case CURL_LOCK_DATA_HSTS:
183+#ifndef CURL_DISABLE_HSTS
184+ if(!share->hsts) {
185+ share->hsts = Curl_hsts_init();
186+ if(!share->hsts)
187+ res = CURLSHE_NOMEM;
188+ }
189+#else /* CURL_DISABLE_HSTS */
190+ res = CURLSHE_NOT_BUILT_IN;
191+#endif
192+ break;
193+
194 case CURL_LOCK_DATA_SSL_SESSION:
195 #ifdef USE_SSL
196 if(!share->sslsession) {
197@@ -141,6 +155,16 @@ curl_share_setopt(struct Curl_share *sha
198 #endif
199 break;
200
201+ case CURL_LOCK_DATA_HSTS:
202+#ifndef CURL_DISABLE_HSTS
203+ if(share->hsts) {
204+ Curl_hsts_cleanup(&share->hsts);
205+ }
206+#else /* CURL_DISABLE_HSTS */
207+ res = CURLSHE_NOT_BUILT_IN;
208+#endif
209+ break;
210+
211 case CURL_LOCK_DATA_SSL_SESSION:
212 #ifdef USE_SSL
213 Curl_safefree(share->sslsession);
214@@ -207,6 +231,10 @@ curl_share_cleanup(struct Curl_share *sh
215 Curl_cookie_cleanup(share->cookies);
216 #endif
217
218+#ifndef CURL_DISABLE_HSTS
219+ Curl_hsts_cleanup(&share->hsts);
220+#endif
221+
222 #ifdef USE_SSL
223 if(share->sslsession) {
224 size_t i;
225--- a/lib/share.h
226+++ b/lib/share.h
227@@ -59,10 +59,14 @@ struct Curl_share {
228 #ifdef USE_LIBPSL
229 struct PslCache psl;
230 #endif
231-
232+#ifndef CURL_DISABLE_HSTS
233+ struct hsts *hsts;
234+#endif
235+#ifdef USE_SSL
236 struct Curl_ssl_session *sslsession;
237 size_t max_ssl_sessions;
238 long sessionage;
239+#endif
240 };
241
242 CURLSHcode Curl_share_lock(struct Curl_easy *, curl_lock_data,
243--- a/lib/transfer.c
244+++ b/lib/transfer.c
245@@ -1398,6 +1398,9 @@ CURLcode Curl_pretransfer(struct Curl_ea
246 if(data->state.resolve)
247 result = Curl_loadhostpairs(data);
248
249+ /* If there is a list of hsts files to read */
250+ Curl_hsts_loadfiles(data);
251+
252 if(!result) {
253 /* Allow data->set.use_port to set which port to use. This needs to be
254 * disabled for example when we follow Location: headers to URLs using
255--- a/lib/url.c
256+++ b/lib/url.c
257@@ -434,7 +434,11 @@ CURLcode Curl_close(struct Curl_easy **d
258 Curl_altsvc_save(data, data->asi, data->set.str[STRING_ALTSVC]);
259 Curl_altsvc_cleanup(&data->asi);
260 Curl_hsts_save(data, data->hsts, data->set.str[STRING_HSTS]);
261- Curl_hsts_cleanup(&data->hsts);
262+#ifndef CURL_DISABLE_HSTS
263+ if(!data->share || !data->share->hsts)
264+ Curl_hsts_cleanup(&data->hsts);
265+ curl_slist_free_all(data->set.hstslist); /* clean up list */
266+#endif
267 #if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_CRYPTO_AUTH)
268 Curl_http_auth_cleanup_digest(data);
269 #endif
270--- a/lib/urldata.h
271+++ b/lib/urldata.h
272@@ -1670,6 +1670,8 @@
273
274 void *seek_client; /* pointer to pass to the seek callback */
275 #ifndef CURL_DISABLE_HSTS
276+ struct curl_slist *hstslist; /* list of HSTS files set by
277+ curl_easy_setopt(HSTS) calls */
278 curl_hstsread_callback hsts_read;
279 void *hsts_read_userp;
280 curl_hstswrite_callback hsts_write;
diff --git a/meta/recipes-support/curl/curl/CVE-2023-23914_5-2.patch b/meta/recipes-support/curl/curl/CVE-2023-23914_5-2.patch
new file mode 100644
index 0000000000..668972cb3f
--- /dev/null
+++ b/meta/recipes-support/curl/curl/CVE-2023-23914_5-2.patch
@@ -0,0 +1,23 @@
1From 0bf8b796a0ea98395b390c7807187982215f5c11 Mon Sep 17 00:00:00 2001
2From: Daniel Stenberg <daniel@haxx.se>
3Date: Tue, 27 Dec 2022 11:50:23 +0100
4Subject: [PATCH] tool_operate: share HSTS between handles
5
6CVE: CVE-2023-23914 CVE-2023-23915
7Upstream-Status: Backport [https://github.com/curl/curl/pull/10138/commits/ca17cfed2df001356cfe2841f166569bac0f5e8c]
8Signed-off-by: Pawan Badganchi <Pawan.Badganchi@kpit.com>
9Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
10---
11 src/tool_operate.c | 1 +
12 1 file changed, 1 insertion(+)
13
14--- a/src/tool_operate.c
15+++ b/src/tool_operate.c
16@@ -2722,6 +2722,7 @@ CURLcode operate(struct GlobalConfig *gl
17 curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
18 curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT);
19 curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_PSL);
20+ curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_HSTS);
21
22 /* Get the required arguments for each operation */
23 do {
diff --git a/meta/recipes-support/curl/curl/CVE-2023-23914_5-3.patch b/meta/recipes-support/curl/curl/CVE-2023-23914_5-3.patch
new file mode 100644
index 0000000000..4422b26834
--- /dev/null
+++ b/meta/recipes-support/curl/curl/CVE-2023-23914_5-3.patch
@@ -0,0 +1,45 @@
1From ca02a77f05bd5cef20618c8f741aa48b7be0a648 Mon Sep 17 00:00:00 2001
2From: Daniel Stenberg <daniel@haxx.se>
3Date: Tue, 27 Dec 2022 11:50:23 +0100
4Subject: [PATCH] hsts: handle adding the same host name again
5
6It will then use the largest expire time of the two entries.
7
8CVE: CVE-2023-23914 CVE-2023-23915
9Upstream-Status: Backport [https://github.com/curl/curl/pull/10138/commits/e077b30a42272d964d76e5b815a0af7dc65d8360]
10Signed-off-by: Pawan Badganchi <Pawan.Badganchi@kpit.com>
11Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
12---
13 lib/hsts.c | 13 +++++++++++--
14 1 file changed, 11 insertions(+), 2 deletions(-)
15
16diff --git a/lib/hsts.c b/lib/hsts.c
17index 339237be1c621..8d6723ee587d2 100644
18--- a/lib/hsts.c
19+++ b/lib/hsts.c
20@@ -426,14 +426,23 @@ static CURLcode hsts_add(struct hsts *h, char *line)
21 if(2 == rc) {
22 time_t expires = strcmp(date, UNLIMITED) ? Curl_getdate_capped(date) :
23 TIME_T_MAX;
24- CURLcode result;
25+ CURLcode result = CURLE_OK;
26 char *p = host;
27 bool subdomain = FALSE;
28+ struct stsentry *e;
29 if(p[0] == '.') {
30 p++;
31 subdomain = TRUE;
32 }
33- result = hsts_create(h, p, subdomain, expires);
34+ /* only add it if not already present */
35+ e = Curl_hsts(h, p, subdomain);
36+ if(!e)
37+ result = hsts_create(h, p, subdomain, expires);
38+ else {
39+ /* the same host name, use the largest expire time */
40+ if(expires > e->expires)
41+ e->expires = expires;
42+ }
43 if(result)
44 return result;
45 }
diff --git a/meta/recipes-support/curl/curl/CVE-2023-23914_5-4.patch b/meta/recipes-support/curl/curl/CVE-2023-23914_5-4.patch
new file mode 100644
index 0000000000..865b3f93a5
--- /dev/null
+++ b/meta/recipes-support/curl/curl/CVE-2023-23914_5-4.patch
@@ -0,0 +1,48 @@
1From dc0725244a3163f1e2d5f51165db3a1a430f3ba0 Mon Sep 17 00:00:00 2001
2From: Daniel Stenberg <daniel@haxx.se>
3Date: Tue, 27 Dec 2022 11:50:23 +0100
4Subject: [PATCH] runtests: support crlf="yes" for verify/proxy
5
6CVE: CVE-2023-23914 CVE-2023-23915
7Upstream-Status: Backport [https://github.com/curl/curl/pull/10138/commits/fd7e1a557e414dd803c9225e37a2ca84e1df2269]
8Comment: Refreshed hunk from FILEFORMAT.md
9Signed-off-by: Pawan Badganchi <Pawan.Badganchi@kpit.com>
10Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
11---
12 tests/FILEFORMAT.md | 4 ++--
13 tests/runtests.pl | 5 +++++
14 2 files changed, 7 insertions(+), 2 deletions(-)
15
16--- a/tests/FILEFORMAT.md
17+++ b/tests/FILEFORMAT.md
18@@ -540,14 +540,14 @@
19 One perl op per line that operates on the protocol dump. This is pretty
20 advanced. Example: `s/^EPRT .*/EPRT stripped/`.
21
22-### `<protocol [nonewline="yes"]>`
23+### `<protocol [nonewline="yes"][crlf="yes"]>`
24
25 the protocol dump curl should transmit, if 'nonewline' is set, we will cut off
26 the trailing newline of this given data before comparing with the one actually
27 sent by the client The `<strip>` and `<strippart>` rules are applied before
28 comparisons are made.
29
30-### `<proxy [nonewline="yes"]>`
31+### `<proxy [nonewline="yes"][crlf="yes"]>`
32
33 The protocol dump curl should transmit to a HTTP proxy (when the http-proxy
34 server is used), if 'nonewline' is set, we will cut off the trailing newline
35--- a/tests/runtests.pl
36+++ b/tests/runtests.pl
37@@ -4744,6 +4744,11 @@ sub singletest {
38 }
39 }
40
41+ if($hash{'crlf'} ||
42+ ($has_hyper && ($keywords{"HTTP"} || $keywords{"HTTPS"}))) {
43+ map subNewlines(0, \$_), @protstrip;
44+ }
45+
46 $res = compare($testnum, $testname, "proxy", \@out, \@protstrip);
47 if($res) {
48 return $errorreturncode;
diff --git a/meta/recipes-support/curl/curl/CVE-2023-23914_5-5.patch b/meta/recipes-support/curl/curl/CVE-2023-23914_5-5.patch
new file mode 100644
index 0000000000..1a363f0b4b
--- /dev/null
+++ b/meta/recipes-support/curl/curl/CVE-2023-23914_5-5.patch
@@ -0,0 +1,118 @@
1From ea5aaaa5ede53819f8bc7ae767fc2d13d3704d37 Mon Sep 17 00:00:00 2001
2From: Daniel Stenberg <daniel@haxx.se>
3Date: Tue, 27 Dec 2022 11:50:23 +0100
4Subject: [PATCH] test446: verify hsts with two URLs
5
6CVE: CVE-2023-23914 CVE-2023-23915
7Upstream-Status: Backport [https://github.com/curl/curl/pull/10138/commits/7e89dfd463597701dd1defcad7be54f7d3c9d55d]
8Comment: Refreshed hunk from Makefile.inc
9Signed-off-by: Pawan Badganchi <Pawan.Badganchi@kpit.com>
10Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
11---
12 tests/data/Makefile.inc | 2 +-
13 tests/data/test446 | 84 +++++++++++++++++++++++++++++++++++++++++
14 2 files changed, 85 insertions(+), 1 deletion(-)
15 create mode 100644 tests/data/test446
16
17diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
18index 3a6356bd122bc..fe1bb1c74c2ab 100644
19--- a/tests/data/Makefile.inc
20+++ b/tests/data/Makefile.inc
21@@ -72,6 +72,7 @@
22 \
23 test430 test431 test432 test433 test434 test435 test436 \
24 \
25+test446 \
26 test490 test491 test492 test493 test494 \
27 \
28 test500 test501 test502 test503 test504 test505 test506 test507 test508 \
29diff --git a/tests/data/test446 b/tests/data/test446
30new file mode 100644
31index 0000000000000..0e2dfdcfe33b6
32--- /dev/null
33+++ b/tests/data/test446
34@@ -0,0 +1,84 @@
35+<?xml version="1.0" encoding="ISO-8859-1"?>
36+<testcase>
37+<info>
38+<keywords>
39+HTTP
40+HTTP proxy
41+HSTS
42+trailing-dot
43+</keywords>
44+</info>
45+
46+<reply>
47+
48+# we use this as response to a CONNECT
49+<connect nocheck="yes">
50+HTTP/1.1 200 OK
51+
52+</connect>
53+<data crlf="yes">
54+HTTP/1.1 200 OK
55+Content-Length: 6
56+Strict-Transport-Security: max-age=604800
57+
58+-foo-
59+</data>
60+<data2 crlf="yes">
61+HTTP/1.1 200 OK
62+Content-Length: 6
63+Strict-Transport-Security: max-age=6048000
64+
65+-baa-
66+</data2>
67+</reply>
68+
69+<client>
70+<server>
71+https
72+http-proxy
73+</server>
74+<features>
75+HSTS
76+proxy
77+https
78+debug
79+</features>
80+<setenv>
81+CURL_HSTS_HTTP=yes
82+CURL_TIME=2000000000
83+</setenv>
84+
85+<name>
86+HSTS with two URLs
87+</name>
88+<command>
89+-x http://%HOSTIP:%PROXYPORT --hsts log/hsts%TESTNUMBER http://this.hsts.example./%TESTNUMBER http://another.example.com/%TESTNUMBER0002
90+</command>
91+</client>
92+
93+<verify>
94+# we let it CONNECT to the server to confirm HSTS but deny from there
95+<proxy crlf="yes">
96+GET http://this.hsts.example./%TESTNUMBER HTTP/1.1
97+Host: this.hsts.example.
98+User-Agent: curl/%VERSION
99+Accept: */*
100+Proxy-Connection: Keep-Alive
101+
102+GET http://another.example.com/%TESTNUMBER0002 HTTP/1.1
103+Host: another.example.com
104+User-Agent: curl/%VERSION
105+Accept: */*
106+Proxy-Connection: Keep-Alive
107+
108+</proxy>
109+
110+<file name="log/hsts%TESTNUMBER" mode="text">
111+# Your HSTS cache. https://curl.se/docs/hsts.html
112+# This file was generated by libcurl! Edit at your own risk.
113+this.hsts.example "20330525 03:33:20"
114+another.example.com "20330727 03:33:20"
115+</file>
116+
117+</verify>
118+</testcase>
diff --git a/meta/recipes-support/curl/curl_7.82.0.bb b/meta/recipes-support/curl/curl_7.82.0.bb
index b08af29059..b583060889 100644
--- a/meta/recipes-support/curl/curl_7.82.0.bb
+++ b/meta/recipes-support/curl/curl_7.82.0.bb
@@ -34,6 +34,11 @@ SRC_URI = "https://curl.se/download/${BP}.tar.xz \
34 file://CVE-2022-42915.patch \ 34 file://CVE-2022-42915.patch \
35 file://CVE-2022-43551.patch \ 35 file://CVE-2022-43551.patch \
36 file://CVE-2022-43552.patch \ 36 file://CVE-2022-43552.patch \
37 file://CVE-2023-23914_5-1.patch \
38 file://CVE-2023-23914_5-2.patch \
39 file://CVE-2023-23914_5-3.patch \
40 file://CVE-2023-23914_5-4.patch \
41 file://CVE-2023-23914_5-5.patch \
37 " 42 "
38SRC_URI[sha256sum] = "0aaa12d7bd04b0966254f2703ce80dd5c38dbbd76af0297d3d690cdce58a583c" 43SRC_URI[sha256sum] = "0aaa12d7bd04b0966254f2703ce80dd5c38dbbd76af0297d3d690cdce58a583c"
39 44