]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
nl80211: Sanitize array index in parse_txq_params
authorDan Williams <dan.j.williams@intel.com>
Tue, 30 Jan 2018 01:03:15 +0000 (17:03 -0800)
committerSeth Forshee <seth.forshee@canonical.com>
Thu, 8 Feb 2018 03:08:35 +0000 (21:08 -0600)
commitc7cb043b44bdff79922bccb11dbdb67e95e22aa7
tree36e5a57e182bfda0eedb245ca03ba39500213840
parentb45f5dd7fabe51973f910e60ae9715e044fdc612
nl80211: Sanitize array index in parse_txq_params

BugLink: http://bugs.launchpad.net/bugs/1748072
commit 259d8c1e984318497c84eef547bbb6b1d9f4eb05

Wireless drivers rely on parse_txq_params to validate that txq_params->ac
is less than NL80211_NUM_ACS by the time the low-level driver's ->conf_tx()
handler is called. Use a new helper, array_index_nospec(), to sanitize
txq_params->ac with respect to speculation. I.e. ensure that any
speculation into ->conf_tx() handlers is done with a value of
txq_params->ac that is within the bounds of [0, NL80211_NUM_ACS).

Reported-by: Christian Lamparter <chunkeey@gmail.com>
Reported-by: Elena Reshetova <elena.reshetova@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-arch@vger.kernel.org
Cc: kernel-hardening@lists.openwall.com
Cc: gregkh@linuxfoundation.org
Cc: linux-wireless@vger.kernel.org
Cc: torvalds@linux-foundation.org
Cc: "David S. Miller" <davem@davemloft.net>
Cc: alan@linux.intel.com
Link: https://lkml.kernel.org/r/151727419584.33451.7700736761686184303.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
net/wireless/nl80211.c