[linux] 01/07: ping: implement proper locking (CVE-2017-2671)
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Wed Apr 19 17:58:40 UTC 2017
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch jessie
in repository linux.
commit 16a28b76e5937509f1b377322a5fd48024d34fb7
Author: Ben Hutchings <ben at decadent.org.uk>
Date: Wed Apr 19 18:30:19 2017 +0100
ping: implement proper locking (CVE-2017-2671)
---
debian/changelog | 1 +
.../bugfix/all/ping-implement-proper-locking.patch | 49 ++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 51 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 086790d..5ae11b0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -594,6 +594,7 @@ linux (3.16.43-1) UNRELEASED; urgency=medium
- [s390*] redefine randomize_et_dyn for ELF_ET_DYN_BASE
- mm: split ET_DYN ASLR from mmap ASLR
- mm: fold arch_randomize_brk into ARCH_HAS_ELF_RANDOMIZE
+ * ping: implement proper locking (CVE-2017-2671)
[ Salvatore Bonaccorso ]
* sunrpc: fix refcounting problems with auth_gss messages.
diff --git a/debian/patches/bugfix/all/ping-implement-proper-locking.patch b/debian/patches/bugfix/all/ping-implement-proper-locking.patch
new file mode 100644
index 0000000..0d8e5f3
--- /dev/null
+++ b/debian/patches/bugfix/all/ping-implement-proper-locking.patch
@@ -0,0 +1,49 @@
+From: Eric Dumazet <edumazet at google.com>
+Date: Fri, 24 Mar 2017 19:36:13 -0700
+Subject: ping: implement proper locking
+Origin: https://git.kernel.org/linus/43a6684519ab0a6c52024b5e25322476cabad893
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-2671
+
+We got a report of yet another bug in ping
+
+http://www.openwall.com/lists/oss-security/2017/03/24/6
+
+->disconnect() is not called with socket lock held.
+
+Fix this by acquiring ping rwlock earlier.
+
+Thanks to Daniel, Alexander and Andrey for letting us know this problem.
+
+Fixes: c319b4d76b9e ("net: ipv4: add IPPROTO_ICMP socket kind")
+Signed-off-by: Eric Dumazet <edumazet at google.com>
+Reported-by: Daniel Jiang <danieljiang0415 at gmail.com>
+Reported-by: Solar Designer <solar at openwall.com>
+Reported-by: Andrey Konovalov <andreyknvl at google.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ net/ipv4/ping.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/net/ipv4/ping.c
++++ b/net/ipv4/ping.c
+@@ -154,17 +154,18 @@ void ping_hash(struct sock *sk)
+ void ping_unhash(struct sock *sk)
+ {
+ struct inet_sock *isk = inet_sk(sk);
++
+ pr_debug("ping_unhash(isk=%p,isk->num=%u)\n", isk, isk->inet_num);
++ write_lock_bh(&ping_table.lock);
+ if (sk_hashed(sk)) {
+- write_lock_bh(&ping_table.lock);
+ hlist_nulls_del(&sk->sk_nulls_node);
+ sk_nulls_node_init(&sk->sk_nulls_node);
+ sock_put(sk);
+ isk->inet_num = 0;
+ isk->inet_sport = 0;
+ sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
+- write_unlock_bh(&ping_table.lock);
+ }
++ write_unlock_bh(&ping_table.lock);
+ }
+ EXPORT_SYMBOL_GPL(ping_unhash);
+
diff --git a/debian/patches/series b/debian/patches/series
index 8869f31..1212e47 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -675,6 +675,7 @@ bugfix/all/pie-aslr/mm-fold-arch_randomize_brk-into-arch_has_elf_randomi.patch
# Security fixes
bugfix/all/timer-restrict-timer_stats-to-initial-pid-namespace.patch
bugfix/all/mbcache-reschedule-before-restarting-iteration-in-mb_cache_entry_alloc.patch
+bugfix/all/ping-implement-proper-locking.patch
# Fix ABI changes
debian/of-fix-abi-changes.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git
More information about the Kernel-svn-changes
mailing list