summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaura Abbott <labbott@redhat.com>2019-10-21 14:58:44 -0400
committerLaura Abbott <labbott@redhat.com>2019-10-21 14:58:44 -0400
commit3ca9f3d998b5bb35bb335152d3fe652af7476c22 (patch)
tree9e3473fa470710bebab08d7aa1b21f6885dbe6ec
parentcd74d7acd33b240b69494f32b72a29c122f94b5a (diff)
downloadkernel-3ca9f3d998b5bb35bb335152d3fe652af7476c22.tar.gz
kernel-3ca9f3d998b5bb35bb335152d3fe652af7476c22.tar.xz
kernel-3ca9f3d998b5bb35bb335152d3fe652af7476c22.zip
Fix CVE-2019-17666 (rhbz 1763692)
-rw-r--r--0001-rtlwifi-Fix-potential-overflow-on-P2P-code.patch52
-rw-r--r--kernel.spec9
2 files changed, 60 insertions, 1 deletions
diff --git a/0001-rtlwifi-Fix-potential-overflow-on-P2P-code.patch b/0001-rtlwifi-Fix-potential-overflow-on-P2P-code.patch
new file mode 100644
index 000000000..f8f40bd82
--- /dev/null
+++ b/0001-rtlwifi-Fix-potential-overflow-on-P2P-code.patch
@@ -0,0 +1,52 @@
+From 5d6fc173fd2963e39be890667d5bf3b1fde351dd Mon Sep 17 00:00:00 2001
+From: Laura Abbott <labbott@redhat.com>
+Date: Wed, 16 Oct 2019 16:45:48 -0400
+Subject: [PATCH v2] rtlwifi: Fix potential overflow on P2P code
+To: Ping-Ke Shih <pkshih@realtek.com>
+To: Kalle Valo <kvalo@codeaurora.org>
+Cc: David S. Miller <davem@davemloft.net>
+Cc: linux-wireless@vger.kernel.org
+Cc: netdev@vger.kernel.org
+Cc: linux-kernel@vger.kernel.org
+Cc: Nicolas Waisman <nico@semmle.com>
+
+Nicolas Waisman noticed that even though noa_len is checked for
+a compatible length it's still possible to overrun the buffers
+of p2pinfo since there's no check on the upper bound of noa_num.
+Bound noa_num against P2P_MAX_NOA_NUM.
+
+Reported-by: Nicolas Waisman <nico@semmle.com>
+Signed-off-by: Laura Abbott <labbott@redhat.com>
+---
+v2: Use P2P_MAX_NOA_NUM instead of erroring out.
+---
+ drivers/net/wireless/realtek/rtlwifi/ps.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/drivers/net/wireless/realtek/rtlwifi/ps.c b/drivers/net/wireless/realtek/rtlwifi/ps.c
+index 70f04c2f5b17..fff8dda14023 100644
+--- a/drivers/net/wireless/realtek/rtlwifi/ps.c
++++ b/drivers/net/wireless/realtek/rtlwifi/ps.c
+@@ -754,6 +754,9 @@ static void rtl_p2p_noa_ie(struct ieee80211_hw *hw, void *data,
+ return;
+ } else {
+ noa_num = (noa_len - 2) / 13;
++ if (noa_num > P2P_MAX_NOA_NUM)
++ noa_num = P2P_MAX_NOA_NUM;
++
+ }
+ noa_index = ie[3];
+ if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
+@@ -848,6 +851,9 @@ static void rtl_p2p_action_ie(struct ieee80211_hw *hw, void *data,
+ return;
+ } else {
+ noa_num = (noa_len - 2) / 13;
++ if (noa_num > P2P_MAX_NOA_NUM)
++ noa_num = P2P_MAX_NOA_NUM;
++
+ }
+ noa_index = ie[3];
+ if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==
+--
+2.21.0
+
diff --git a/kernel.spec b/kernel.spec
index 09c7d18f0..839bc6aa2 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -44,7 +44,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
-%global baserelease 300
+%global baserelease 301
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@@ -604,6 +604,10 @@ Patch511: iwlwifi-pcie-change-qu-with-jf-devices-to-use-qu-configuration.patch
# https://lkml.org/lkml/2019/8/29/1772
Patch505: ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch
+# CVE-2019-17666
+# rhbz 176362
+Patch506: 0001-rtlwifi-Fix-potential-overflow-on-P2P-code.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1805,6 +1809,9 @@ fi
#
#
%changelog
+* Mon Oct 21 2019 Laura Abbott <labbott@redhat.com> - 5.3.7-301
+- Fix CVE-2019-17666 (rhbz 1763692)
+
* Fri Oct 18 2019 Laura Abbott <labbott@redhat.com> - 5.3.7-300
- Linux v5.3.7