From patchwork Sun Dec 17 23:53:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Tobin C. Harding" X-Patchwork-Id: 849729 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=tobin.cc header.i=@tobin.cc header.b="CEtCj/Cf"; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="cxjOrePS"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z0LcH5TBvz9sDB for ; Mon, 18 Dec 2017 10:54:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932186AbdLQXx6 (ORCPT ); Sun, 17 Dec 2017 18:53:58 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:57363 "EHLO out3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757191AbdLQXxw (ORCPT ); Sun, 17 Dec 2017 18:53:52 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 60B3020DCE; Sun, 17 Dec 2017 18:53:51 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute5.internal (MEProxy); Sun, 17 Dec 2017 18:53:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tobin.cc; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=mv9z9HTaqkDGkbVRI JoZECVXAOGc9V23vp+CWvUA21A=; b=CEtCj/Cf/fnMJNS1OcSCTLFj7znv+zADj hrRJzgkKFKb4hUaYfHnX+CGe0EP/TfiS8Usa/bpY5FPkylxa17ZGf+OzcPXVrjlm kxyPN8lx2jDxWBpLqsGT2HRCKAT8tKuu0EokFYN7fjwhuJvZ9hC6qOpjTpiWzlI/ jfOjOtsMsk0Wy/rXA9xqHTHK1STY0mWng5n9xEES6q9ecc25nYa/+69eRLbmaaCe BHJ17vc0x79Dj6pFlKNAmiA5/aUXFrbFgDpl2kRun51H1TrIbZhxPgDPdlvPLbi1 3YBhMYPNKMLh1zO6IP2X0CEZbOVL2ML7mKu6s8iUUKc5L9yHr+kmw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=mv9z9HTaqkDGkbVRIJoZECVXAOGc9V23vp+CWvUA21A=; b=cxjOrePS damDF2NRl5mnBW/ky8xQ7s4T1qtCwmxsW07E6+K4ut3CkLG+K3T45eeeqebadqEH lJsBXo6NkwPF2spQw6f8hrYOTbEpeyip5/e+D3WTBHV/zV2kCc8o8zJ3cQJjpMTn Ct1mrTLxtT9A8ANqhGbmGNtJ63T+xAj0+TeKwi9raqy6Zmmkflp+MNTyFM96Gba7 UGoCFziGqFhKRAXv4UiSdGzPKPgPqwRBz2JGUNhQ/+npLL1pvcKHi/Xd5YinIx61 Ao7xk/bY5crTR2q2XtNfYXZrmAR2/VUhuNJyqxWAZsCqm6KzZW9bZj3SQ7HIO5nO waC4L6sA5Z6aNw== X-ME-Sender: Received: from localhost (unknown [124.170.221.129]) by mail.messagingengine.com (Postfix) with ESMTPA id A5E587E497; Sun, 17 Dec 2017 18:53:50 -0500 (EST) From: "Tobin C. Harding" To: kernel-hardening@lists.openwall.com Cc: "Tobin C. Harding" , Steven Rostedt , Tycho Andersen , Linus Torvalds , Kees Cook , Andrew Morton , Daniel Borkmann , Masahiro Yamada , Alexei Starovoitov , linux-kernel@vger.kernel.org, Network Development Subject: [PATCH 1/3] kallsyms: don't leak address when symbol not found Date: Mon, 18 Dec 2017 10:53:30 +1100 Message-Id: <1513554812-13014-2-git-send-email-me@tobin.cc> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1513554812-13014-1-git-send-email-me@tobin.cc> References: <1513554812-13014-1-git-send-email-me@tobin.cc> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Currently if kallsyms_lookup() fails to find the symbol then the address is printed. This potentially leaks sensitive information. Instead of printing the address we can return an error, giving the calling code the option to print the address or print some sanitized message. Return error instead of printing address to argument buffer. Leave buffer in a sane state. Signed-off-by: Tobin C. Harding --- kernel/kallsyms.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index d5fa4116688a..23b9336c1461 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -394,8 +394,10 @@ static int __sprint_symbol(char *buffer, unsigned long address, address += symbol_offset; name = kallsyms_lookup(address, &size, &offset, &modname, buffer); - if (!name) - return sprintf(buffer, "0x%lx", address - symbol_offset); + if (!name) { + buffer[0] = '\0'; + return -1; + } if (name != buffer) strcpy(buffer, name);