Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp2516613ybb; Sat, 30 Mar 2019 07:01:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqzyldxGBb6/V/N0TxyYrwAr5yKVGkCc2yalNHJ0RbOk5mtIWKmowxkfGhf3seR0TiqoGr+4 X-Received: by 2002:a62:b502:: with SMTP id y2mr20408289pfe.212.1553954500353; Sat, 30 Mar 2019 07:01:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553954500; cv=none; d=google.com; s=arc-20160816; b=uR6ukLVIAlRieIcpYX6HQn2YU1cWu5GGQwxr6xU/req3mgEX5ITP4fcj/Lh+i+t9fo a4fvJFcFb7nSp7uU69ESY3merrL7LknoiZttH9fQngXoSJiBZYROJEtg4V+LG/+lLHtj yfHZoqnjzauKzzeKITX+0PtIErGAj5diBgDTODMb/d5gPExtxtz6+Ur4JZXRbQd2nCi8 opPdfKeQS2sXRQ//nm9ahvRYKfzxChI4ticJG46nV8rrT/ytawFv+nlR3N+mpXvTNCd+ ewEfq7cibPN6YLFhYyotPXea2XAp7YAQyMp6+kBzQEPSoRsyNXqZkHo15WVnWRnrg3oJ iAHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date:dkim-signature; bh=y7FJXynrvmLzvIGrXvU6Xe2QOSdrESdZWkkL9RjV1FY=; b=wfkH/f1ZKZstZc/n58Ez4rGkehQkp2ftsxT3K+vL0cm0P0Bl6CSFdniPsK041u6x0F jljZdTW2TZNoQgpJpZzcc7G5UClhQeiLkCRhDJGNf1f/g4UIuJrJesXkilSU8qOAJDkw VjM3tLGlL19ysQNy23QWvt6R4yi9I6CiEahjBTgKALgHRFbm+/g/5Q7OG8CYKJweOq3y QBiVe1BBNDhSmhRLxoJdHPQw+X8aw/7H0RnrS46/KI7Q4m/HDghyX9SZUaC5noDJDQOE ae3gqvBhqkbxSF9mnMSONM5AxPJUUPOSoMHWQ6CsfP5dc5JcNdAUtBGgEl97u8k4qVKY Iwdg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=RZvBTV6l; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d10si4532522pla.42.2019.03.30.07.01.22; Sat, 30 Mar 2019 07:01:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=RZvBTV6l; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730856AbfC3OAp (ORCPT + 99 others); Sat, 30 Mar 2019 10:00:45 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:35637 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730813AbfC3OAo (ORCPT ); Sat, 30 Mar 2019 10:00:44 -0400 Received: by mail-pl1-f194.google.com with SMTP id p19so2345411plo.2; Sat, 30 Mar 2019 07:00:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=y7FJXynrvmLzvIGrXvU6Xe2QOSdrESdZWkkL9RjV1FY=; b=RZvBTV6lxJqOo3NgKKWCOoPbJ/f+KkrDiFE8ERA4n5/rgAXv2R0c7BGyt+1W+O5b0e jULA7PV/pYqGRFa6S0DuCYwW8f3tb3I73S3EcELJgO+vDL5BzMSAAjSUtBlU3YEc7I1Q cCa+AXgtqLNA2SQb8nMrYT/8sRhVIDdiJWikDi/kq75RSGF/N69R2XSxBRmnGozL6HIn ZnPtPcoP7S0fe1wpiPfa7uok3fbZumbDJpi94dSTbvwTMj0/riBKYuFQDRmZNRTgE0qG MiWc5hnXIkt7VxvmhtvslrEJv3SwT8TFQpoUEqB+UzLP+z4YjBg/lkLn4BPQttukSfTi MZhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mime-version:content-disposition:user-agent; bh=y7FJXynrvmLzvIGrXvU6Xe2QOSdrESdZWkkL9RjV1FY=; b=k/KG/SQI1ttC2uVhobhRETVIqrYIdbsuVd/wckC7hMkwNg+u/gYfDbuI0dB4uyQ8oW ODubQIKG/6iMukpfq+dt/KvE7eKw6hyBBtssV5G63S5RsXeZxi+nXoEXk8RVmzb23nWH h5VIjg6T4FQlnQ/yVv0ro/JIYcDojG1qDXh0+zO1NUt4ZgROQLx/hc8wgFIrkmyvl0q8 2Q53nwUl4Q4NwMnk4KOdKHTXlxTaHfVYe1boLEF2OL01oPH/tlhMGOwx9o9s55/bQA4b 8a9ABnFnz/UKqQyGyujZIB99t2grkLoJ8y4lFTGIJRmXqfowULEolGjY1PPHOeX0LDtK HIOg== X-Gm-Message-State: APjAAAWaN4fj5NqG8BdfmOs+04lhvzbQDzMTX4HLgeebWO9SrCglE7S9 ZXUgappMGk4SJzgn/RxI0wBKke0Au6w= X-Received: by 2002:a17:902:362:: with SMTP id 89mr52248123pld.172.1553954444228; Sat, 30 Mar 2019 07:00:44 -0700 (PDT) Received: from vostro (173-228-88-115.dsl.dynamic.fusionbroadband.com. [173.228.88.115]) by smtp.gmail.com with ESMTPSA id t129sm6888524pfb.127.2019.03.30.07.00.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 07:00:43 -0700 (PDT) Date: Sat, 30 Mar 2019 07:00:32 -0700 From: Nikitas Angelinas To: Alexander Viro , Alexey Dobriyan , Andrew Morton , Linus Torvalds , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, syzbot+0d1fcd7268b21baced4a@syzkaller.appspotmail.com Cc: nikitas.angelinas@gmail.com Subject: [PATCH] fs/binfmt_elf.c: fix GPF when dereferencing invalid interpreter Message-ID: <20190330140032.GA1527@vostro> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.7.0 (2016-08-17) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Syzkaller found an issue where an invalid interpreter pointer is dereferenced in load_elf_binary()->allow_write_access(). Fix this by jumping to a different label in the cleanup path. This patch applies against the latest linux-next tree. I have not tested that the patch addresses the issue, but it should, imho. Signed-off-by: Nikitas Angelinas Reported-by: syzbot+0d1fcd7268b21baced4a@syzkaller.appspotmail.com Fixes: 44e63c4a0263 ("fs/binfmt_elf.c: free PT_INTERP filename ASAP") --- fs/binfmt_elf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 51bc894..09e76b2 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -777,7 +777,7 @@ static int load_elf_binary(struct linux_binprm *bprm) kfree(elf_interpreter); retval = PTR_ERR(interpreter); if (IS_ERR(interpreter)) - goto out_free_dentry; + goto out_free_ph; /* * If the binary is not readable then enforce -- 2.10.0