From patchwork Fri Jul 6 21:02:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khalid Elmously X-Patchwork-Id: 940712 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41MnJD2p1gz9s2g; Sat, 7 Jul 2018 07:03:24 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1fbXsr-0001N5-Pk; Fri, 06 Jul 2018 21:03:17 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1fbXsq-0001Mu-9E for kernel-team@lists.ubuntu.com; Fri, 06 Jul 2018 21:03:16 +0000 Received: from mail-it0-f69.google.com ([209.85.214.69]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1fbXsp-0003Nw-VA for kernel-team@lists.ubuntu.com; Fri, 06 Jul 2018 21:03:16 +0000 Received: by mail-it0-f69.google.com with SMTP id n68-v6so5338560ite.8 for ; Fri, 06 Jul 2018 14:03:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aH11ARUdA/KTq74WiM2dfYpAG1ZYfJPT2XXRRuYJ6BI=; b=CfgpMVI9RGNwoTczee21tDwRIR/by/yRFuPOH8fJgtnDVGBssgKjPbJbUpYSffqqeR hf/BlSvuz0bNOQb2UuhSihK1LHvewsf/trckbcc7Tc3gG19tMrY3ImcboV39Joh1IJBh YuwXbXRWsQrwcsjRJ3KxdlYdNc4/4aMhdXEn4V6kVhGeECjKyUOQgoXXI/BRzt0tC18j 3OjvYptW4cYtpHCyUQivWr2Fvn8BsT+5FJez9IbKfH1utdtxCH9WUSBEgtAu/X6FlZzb 0w4FZap1HXgjH/zamjw+YZkQkAA+wCKXEFBxHrH3XOgG/85ml4qwR1Yy0OyW5GAEz/6o CxaQ== X-Gm-Message-State: AOUpUlHMP6CltdtwnaKSkP8ZllAFQ02kP9mdxTI4nHgnive9/VJaeWGG KhavdqUcA4gNxAXTAVADarH1aoe63/NoLgqcCZtSNup4nFAkKp8iF03H09D2EQdiMiUv6jVDB/P 9hOTMr1SOWERJEbYytn7SSNAtyn75PBZXtQBksyxEfg== X-Received: by 2002:a6b:b0c5:: with SMTP id z188-v6mr9664010ioe.220.1530910994603; Fri, 06 Jul 2018 14:03:14 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcxUTfpYDBWOdQa+KuWuN8J8fMi4EOdn2Bg3ht4fNLsktr5KUJKjm3sbAYX6irHQN5E+nr8hg== X-Received: by 2002:a6b:b0c5:: with SMTP id z188-v6mr9663996ioe.220.1530910994439; Fri, 06 Jul 2018 14:03:14 -0700 (PDT) Received: from kbuntu.fuzzbuzz.org (198-84-180-15.cpe.teksavvy.com. [198.84.180.15]) by smtp.gmail.com with ESMTPSA id n124-v6sm4996307itg.7.2018.07.06.14.03.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 06 Jul 2018 14:03:13 -0700 (PDT) From: Khalid Elmously To: kernel-team@lists.ubuntu.com Subject: [SRU][T][PATCH 1/1] ext4: always initialize the crc32c checksum driver Date: Fri, 6 Jul 2018 17:02:57 -0400 Message-Id: <20180706210258.3630-2-khalid.elmously@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180706210258.3630-1-khalid.elmously@canonical.com> References: <20180706210258.3630-1-khalid.elmously@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Theodore Ts'o CVE-2018-1094 The extended attribute code now uses the crc32c checksum for hashing purposes, so we should just always always initialize it. We also want to prevent NULL pointer dereferences if one of the metadata checksum features is enabled after the file sytsem is originally mounted. This issue has been assigned CVE-2018-1094. https://bugzilla.kernel.org/show_bug.cgi?id=199183 https://bugzilla.redhat.com/show_bug.cgi?id=1560788 Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org (backported from a45403b51582a87872927a3e0fc0a389c26867f1) Signed-off-by: Khalid Elmously --- fs/ext4/super.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 3b313429b83f..26552bf46ca8 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3457,15 +3457,12 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) } /* Load the checksum driver */ - if (EXT4_HAS_RO_COMPAT_FEATURE(sb, - EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)) { - sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0, 0); - if (IS_ERR(sbi->s_chksum_driver)) { - ext4_msg(sb, KERN_ERR, "Cannot load crc32c driver."); - ret = PTR_ERR(sbi->s_chksum_driver); - sbi->s_chksum_driver = NULL; - goto failed_mount; - } + sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0, 0); + if (IS_ERR(sbi->s_chksum_driver)) { + ext4_msg(sb, KERN_ERR, "Cannot load crc32c driver."); + ret = PTR_ERR(sbi->s_chksum_driver); + sbi->s_chksum_driver = NULL; + goto failed_mount; } /* Check superblock checksum */