summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2019-07-03 17:26:29 +0200
committerThorsten Leemhuis <fedora@leemhuis.info>2019-07-03 17:26:29 +0200
commitc0703782681d7bc47b3a793ffbe379c2c56c6cfe (patch)
tree55348f6ea125448d453c516696993e5ecfe01242
parent46d197579b8cf071ad23f64925cae0f2cb89d427 (diff)
parent4e36521cb45e624d231dfbd3be8db94a1d43921c (diff)
downloadkernel-c0703782681d7bc47b3a793ffbe379c2c56c6cfe.tar.gz
kernel-c0703782681d7bc47b3a793ffbe379c2c56c6cfe.tar.xz
kernel-c0703782681d7bc47b3a793ffbe379c2c56c6cfe.zip
Merge remote-tracking branch 'origin/f30' into f30-user-thl-vanilla-fedora
-rw-r--r--kernel.spec7
-rw-r--r--netfilter-ctnetlink-Fix-regression-in-conntrack-entry.patch62
2 files changed, 69 insertions, 0 deletions
diff --git a/kernel.spec b/kernel.spec
index 09302a336..7c1496671 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -642,6 +642,9 @@ Patch542: 0001-platform-x86-asus-wmi-Only-Tell-EC-the-OS-will-handl.patch
Patch544: drm-panel-orientation-quirks.patch
Patch545: efi-bgrt-acpi6.2-support.patch
+# Accepted upstream; rhbz 1724357
+Patch546: netfilter-ctnetlink-Fix-regression-in-conntrack-entry.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1883,6 +1886,10 @@ fi
#
#
%changelog
+* Wed Jul 03 2019 Jeremy Cline <jcline@redhat.com> - 5.1.16-300
+- Linux v5.1.16
+- Fix an issue with deleting singular conntrack entries (rhbz 1724357)
+
* Tue Jun 25 2019 Jeremy Cline <jcline@redhat.com> - 5.1.15-300
- Linux v5.1.15
- Fixes CVE-2019-12817 (rhbz 1720616 1723697)
diff --git a/netfilter-ctnetlink-Fix-regression-in-conntrack-entry.patch b/netfilter-ctnetlink-Fix-regression-in-conntrack-entry.patch
new file mode 100644
index 000000000..750d884df
--- /dev/null
+++ b/netfilter-ctnetlink-Fix-regression-in-conntrack-entry.patch
@@ -0,0 +1,62 @@
+From e7600865db32b69deb0109b8254244dca592adcf Mon Sep 17 00:00:00 2001
+From: Felix Kaechele <felix@kaechele.ca>
+Date: Tue, 25 Jun 2019 16:48:59 -0400
+Subject: [PATCH] netfilter: ctnetlink: Fix regression in conntrack entry
+ deletion
+
+Commit f8e608982022 ("netfilter: ctnetlink: Resolve conntrack
+L3-protocol flush regression") introduced a regression in which deletion
+of conntrack entries would fail because the L3 protocol information
+is replaced by AF_UNSPEC. As a result the search for the entry to be
+deleted would turn up empty due to the tuple used to perform the search
+is now different from the tuple used to initially set up the entry.
+
+For flushing the conntrack table we do however want to keep the option
+for nfgenmsg->version to have a non-zero value to allow for newer
+user-space tools to request treatment under the new behavior. With that
+it is possible to independently flush tables for a defined L3 protocol.
+This was introduced with the enhancements in in commit 59c08c69c278
+("netfilter: ctnetlink: Support L3 protocol-filter on flush").
+
+Older user-space tools will retain the behavior of flushing all tables
+regardless of defined L3 protocol.
+
+Fixes: f8e608982022 ("netfilter: ctnetlink: Resolve conntrack L3-protocol flush regression")
+Suggested-by: Pablo Neira Ayuso <pablo@netfilter.org>
+Signed-off-by: Felix Kaechele <felix@kaechele.ca>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+---
+ net/netfilter/nf_conntrack_netlink.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
+index 7db79c1b8084..1b77444d5b52 100644
+--- a/net/netfilter/nf_conntrack_netlink.c
++++ b/net/netfilter/nf_conntrack_netlink.c
+@@ -1256,7 +1256,6 @@ static int ctnetlink_del_conntrack(struct net *net, struct sock *ctnl,
+ struct nf_conntrack_tuple tuple;
+ struct nf_conn *ct;
+ struct nfgenmsg *nfmsg = nlmsg_data(nlh);
+- u_int8_t u3 = nfmsg->version ? nfmsg->nfgen_family : AF_UNSPEC;
+ struct nf_conntrack_zone zone;
+ int err;
+
+@@ -1266,11 +1265,13 @@ static int ctnetlink_del_conntrack(struct net *net, struct sock *ctnl,
+
+ if (cda[CTA_TUPLE_ORIG])
+ err = ctnetlink_parse_tuple(cda, &tuple, CTA_TUPLE_ORIG,
+- u3, &zone);
++ nfmsg->nfgen_family, &zone);
+ else if (cda[CTA_TUPLE_REPLY])
+ err = ctnetlink_parse_tuple(cda, &tuple, CTA_TUPLE_REPLY,
+- u3, &zone);
++ nfmsg->nfgen_family, &zone);
+ else {
++ u_int8_t u3 = nfmsg->version ? nfmsg->nfgen_family : AF_UNSPEC;
++
+ return ctnetlink_flush_conntrack(net, cda,
+ NETLINK_CB(skb).portid,
+ nlmsg_report(nlh), u3);
+--
+2.21.0
+