ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
Subsystems (2)
PATCH 1/1 ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
The value of "htc_hdr->endpoint_id" comes from skb->data so Smatch marks it as untrusted so we have to check it before using it as an array offset.
This is similar to a bug that syzkaller found in commit e4ff08a4d727 ("ath9k: Fix use-after-free Write in ath9k_htc_rx_msg") so it is probably a real issue.
--- drivers/net/wireless/ath/ath9k/htc_hst.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/net/wireless/ath/ath9k/htc_hst.c +2 -0
@@ -339,6 +339,8 @@ void ath9k_htc_txcompletion_cb(struct htc_target *htc_handle,if (skb) { htc_hdr = (struct htc_frame_hdr *) skb->data; +if (htc_hdr->endpoint_id >=ARRAY_SIZE (htc_handle->endpoint)) + goto ret; endpoint = &htc_handle->endpoint[htc_hdr->endpoint_id];skb_pull (skb,sizeof (struct htc_frame_hdr ));
Signature · 1 line
2.28.0
Quoted 11 lines · Dan Carpenter
The value of "
htc_hdr->endpoint_id" comes fromskb->dataso Smatch marks it as untrusted so we have to check it before using it as an array offset.This is similar to a bug that syzkaller found in commit
e4ff08a4d727("ath9k: Fix use-after-free Write inath9k_htc_rx_msg") so it is probably a real issue.Fixes fb9987d0f748 ("ath9k_htc: Support for AR9271 chipset.")Signed-off-by Dan Carpenter <[email protected]>Signed-off-by Kalle Valo <[email protected]>
Patch applied to ath-next branch of ath.git, thanks.
2705cd7558e7 ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
Signature · 3 lines
https://patchwork.kernel.org/patch/11712553/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches