From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751826AbcEUCaE (ORCPT ); Fri, 20 May 2016 22:30:04 -0400 Received: from lists.s-osg.org ([54.187.51.154]:45593 "EHLO lists.s-osg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751647AbcEUCaB (ORCPT ); Fri, 20 May 2016 22:30:01 -0400 Subject: Re: [PATCH] pinctrl: samsung: Suppress unbinding to prevent theoretical attacks To: Krzysztof Kozlowski , Tomasz Figa , Sylwester Nawrocki , Linus Walleij , Kukjin Kim , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org References: <1463464926-17482-1-git-send-email-k.kozlowski@samsung.com> Cc: Marek Szyprowski , Bartlomiej Zolnierkiewicz From: Javier Martinez Canillas Message-ID: <7d725a0a-216e-40d9-8a65-62eeb2faaf34@osg.samsung.com> Date: Fri, 20 May 2016 22:29:50 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <1463464926-17482-1-git-send-email-k.kozlowski@samsung.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Krzysztof, On 05/17/2016 02:02 AM, Krzysztof Kozlowski wrote: > Although unbinding a pinctrl driver requires root privileges but it > still might be used theoretically in certain attacks (by triggering NULL > pointer exception or memory corruption). > > Samsung pincontrol drivers are essential for system operation so their > removal is not expected. They do not implement remove() driver callback > and they are not buildable as modules. > > Suppression of the unbinding will prevent triggering NULL pointer > exception like this (Odroid XU3): > > $ echo 13400000.pinctrl > /sys/bus/platform/drivers/samsung-pinctrl/unbind > $ cat /sys/kernel/debug/gpio > > Unable to handle kernel NULL pointer dereference at virtual address 00000c44 > pgd = ec41c000 > [00000c44] *pgd=6d448835, *pte=00000000, *ppte=00000000 > Internal error: Oops: 17 [#1] PREEMPT SMP ARM > (samsung_gpio_get) from [] (gpiolib_seq_show+0x1b0/0x26c) > (gpiolib_seq_show) from [] (seq_read+0x304/0x4b8) > (seq_read) from [] (full_proxy_read+0x4c/0x64) > (full_proxy_read) from [] (__vfs_read+0x2c/0x110) > (__vfs_read) from [] (vfs_read+0x8c/0x110) > (vfs_read) from [] (SyS_read+0x40/0x8c) > (SyS_read) from [] (ret_fast_syscall+0x0/0x3c) > > Suggested-by: Marek Szyprowski > Signed-off-by: Krzysztof Kozlowski > --- Reviewed-by: Javier Martinez Canillas Best regards, -- Javier Martinez Canillas Open Source Group Samsung Research America