summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYi Zhao <yi.zhao@windriver.com>2021-11-11 20:57:23 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-11-24 21:12:46 +0000
commite013219d8c0b3e52e3f52e05caf2f53927004c73 (patch)
treeb5e9466ddd7813dd59f7471ff307afa520644992
parentf5d1d23c1bc03c6d7ff7ca8b3d9de33a0ddaf4d6 (diff)
downloadpoky-e013219d8c0b3e52e3f52e05caf2f53927004c73.tar.gz
inetutils: fix CVE-2021-40491
CVE-2021-40491: The ftp client in GNU Inetutils before 2.2 does not validate addresses returned by PASV/LSPV responses to make sure they match the server address. This is similar to CVE-2020-8284 for curl. References: https://nvd.nist.gov/vuln/detail/CVE-2021-40491 Patch from: https://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=58cb043b190fd04effdaea7c9403416b436e50dd (From OE-Core rev: 1b857807f1cf8fee3175f8479a0c7cb1850bd9a9) drop changes to NEWS (From OE-Core rev: 217e5f0857e0a542c4e02bbead4e91edc6eb9ecc) Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils/CVE-2021-40491.patch67
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils_2.0.bb1
2 files changed, 68 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/inetutils/inetutils/CVE-2021-40491.patch b/meta/recipes-connectivity/inetutils/inetutils/CVE-2021-40491.patch
new file mode 100644
index 0000000000..f05c696929
--- /dev/null
+++ b/meta/recipes-connectivity/inetutils/inetutils/CVE-2021-40491.patch
@@ -0,0 +1,67 @@
1From 98ccabf68e5b3f0a177bd1925581753d10041448 Mon Sep 17 00:00:00 2001
2From: Simon Josefsson <simon@josefsson.org>
3Date: Wed, 1 Sep 2021 09:09:50 +0200
4Subject: [PATCH] ftp: check that PASV/LSPV addresses match.
5
6* NEWS: Mention change.
7* ftp/ftp.c (initconn): Validate returned addresses.
8
9CVE: CVE-2021-40491
10
11Upstream-Status: Backport
12[https://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=58cb043b190fd04effdaea7c9403416b436e50dd]
13
14Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
15---
16 ftp/ftp.c | 21 +++++++++++++++++++++
17 1 files changed, 21 insertions(+)
18
19diff --git a/ftp/ftp.c b/ftp/ftp.c
20index d21dbdd..7513539 100644
21--- a/ftp/ftp.c
22+++ b/ftp/ftp.c
23@@ -1365,6 +1365,13 @@ initconn (void)
24 uint32_t *pu32 = (uint32_t *) &data_addr_sa4->sin_addr.s_addr;
25 pu32[0] = htonl ( (h[0] << 24) | (h[1] << 16) | (h[2] << 8) | h[3]);
26 }
27+ if (data_addr_sa4->sin_addr.s_addr
28+ != ((struct sockaddr_in *) &hisctladdr)->sin_addr.s_addr)
29+ {
30+ printf ("Passive mode address mismatch.\n");
31+ (void) command ("ABOR"); /* Cancel any open connection. */
32+ goto bad;
33+ }
34 } /* LPSV IPv4 */
35 else /* IPv6 */
36 {
37@@ -1395,6 +1402,13 @@ initconn (void)
38 pu32[2] = htonl ( (h[8] << 24) | (h[9] << 16) | (h[10] << 8) | h[11]);
39 pu32[3] = htonl ( (h[12] << 24) | (h[13] << 16) | (h[14] << 8) | h[15]);
40 }
41+ if (data_addr_sa6->sin6_addr.s6_addr
42+ != ((struct sockaddr_in6 *) &hisctladdr)->sin6_addr.s6_addr)
43+ {
44+ printf ("Passive mode address mismatch.\n");
45+ (void) command ("ABOR"); /* Cancel any open connection. */
46+ goto bad;
47+ }
48 } /* LPSV IPv6 */
49 }
50 else /* !EPSV && !LPSV */
51@@ -1415,6 +1429,13 @@ initconn (void)
52 | ((a2 & 0xff) << 8) | (a3 & 0xff) );
53 data_addr_sa4->sin_port =
54 htons (((p0 & 0xff) << 8) | (p1 & 0xff));
55+ if (data_addr_sa4->sin_addr.s_addr
56+ != ((struct sockaddr_in *) &hisctladdr)->sin_addr.s_addr)
57+ {
58+ printf ("Passive mode address mismatch.\n");
59+ (void) command ("ABOR"); /* Cancel any open connection. */
60+ goto bad;
61+ }
62 } /* PASV */
63 else
64 {
65--
662.17.1
67
diff --git a/meta/recipes-connectivity/inetutils/inetutils_2.0.bb b/meta/recipes-connectivity/inetutils/inetutils_2.0.bb
index a4d05b0542..d299bc359e 100644
--- a/meta/recipes-connectivity/inetutils/inetutils_2.0.bb
+++ b/meta/recipes-connectivity/inetutils/inetutils_2.0.bb
@@ -20,6 +20,7 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.xz \
20 file://tftpd.xinetd.inetutils \ 20 file://tftpd.xinetd.inetutils \
21 file://inetutils-1.9-PATH_PROCNET_DEV.patch \ 21 file://inetutils-1.9-PATH_PROCNET_DEV.patch \
22 file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \ 22 file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \
23 file://CVE-2021-40491.patch \
23" 24"
24 25
25SRC_URI[md5sum] = "5e1018502cd131ed8e42339f6b5c98aa" 26SRC_URI[md5sum] = "5e1018502cd131ed8e42339f6b5c98aa"