Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp2852906ybv; Sun, 9 Feb 2020 08:59:40 -0800 (PST) X-Google-Smtp-Source: APXvYqxvUzs2SGeRgFVZyOrMN5FlQlt2UiRzu+I7ywIiM99vug/pRvfRpJiSapZNEIOWj9nJ8TRC X-Received: by 2002:a05:6830:1385:: with SMTP id d5mr7676390otq.61.1581267579885; Sun, 09 Feb 2020 08:59:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581267579; cv=none; d=google.com; s=arc-20160816; b=AAnV158ZUQAOKAww+uJizDM0XBrZ0F3ARJxWnW9oC63vWgGN8zbTVQUumPyLv4Du5H pB4BusY8zPuceDPWIFz9MzaDqfQXkH8r+EuDHbjF7Nsf6waEyki9+lnXF2p64qRXTDQB yeLByAIyJz2eNbGrFLA6iXd/PSFd3ufZsNBbKrQOubWM+ZSj/+BRzhmBQ7SPl8w8tj3b ziBHitVzWJM+DMfus6vjdKBnjdCYczSvgU1dnu7ZgNwCL9BLNY6+AS9zFLN8NudkXkyA T/65SZYhP7dWp3vbEb7A59Lvfjum15Oildx0sYxZpwL0PZWbXa3h/wfB+h/1ceLyj5JU NVOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=e5G2DutCTqhG3erVIUBuVXQOPXOLUNcAn0/L+3l0PHI=; b=KNkodTqTR4TrpgdL9B6UJKveUwfcepr4pbLx9x+0hHYvhSDRF5Uv7yn4jczxmFtuta edS4BHNzDGLB6Goditarq72gup0AOcDL5Z+OJ6evtKl4bVomeA1iD243kknnGvracYXD EX9RoQL7ygWbu8nKnSiIBlkEUi1UGVeehWK0H4MKsQg32V6V5AuutzvPw4NdxBcIQPHA qqm44R+OnQgGEZRjNWO8HjkL3AuX24nfMSiV5rhAR8Gf0hH6/Gp8fMArQ5ax6qkEiA7h M1BF7ihcpPY6HkvmfqJX614ZwkPzXkfIbmgm1bAmS6zDGtx/QmR0cP15vPklPj0KvJ+T zZkQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e22si7239750oiy.124.2020.02.09.08.59.17; Sun, 09 Feb 2020 08:59:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727798AbgBIQ7P (ORCPT + 99 others); Sun, 9 Feb 2020 11:59:15 -0500 Received: from smail.rz.tu-ilmenau.de ([141.24.186.67]:49166 "EHLO smail.rz.tu-ilmenau.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727698AbgBIQ7P (ORCPT ); Sun, 9 Feb 2020 11:59:15 -0500 Received: from isengard.fritz.box (unknown [84.174.247.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smail.rz.tu-ilmenau.de (Postfix) with ESMTPSA id 347B558006E; Sun, 9 Feb 2020 17:59:13 +0100 (CET) From: Markus Theil To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Markus Theil Subject: [PATCH 2/8] iw: scan: fix buffer over-read in print_ies() Date: Sun, 9 Feb 2020 17:58:56 +0100 Message-Id: <20200209165902.44110-3-markus.theil@tu-ilmenau.de> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200209165902.44110-1-markus.theil@tu-ilmenau.de> References: <20200209165902.44110-1-markus.theil@tu-ilmenau.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org This patch correctly checks, if enough data bytes for parsing IEs are present (-2 in check for type and length). Furthermore, it adds a nullptr and length check to ease future fuzzing. Signed-off-by: Markus Theil --- scan.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scan.c b/scan.c index a6cb3bb..14138ca 100644 --- a/scan.c +++ b/scan.c @@ -2181,7 +2181,10 @@ void print_ies(unsigned char *ie, int ielen, bool unknown, .ie = ie, .ielen = ielen }; - while (ielen >= 2 && ielen >= ie[1]) { + if (ie == NULL || ielen < 0) + return; + + while (ielen >= 2 && ielen - 2 >= ie[1]) { if (ie[0] < ARRAY_SIZE(ieprinters) && ieprinters[ie[0]].name && ieprinters[ie[0]].flags & BIT(ptype)) { -- 2.25.0