Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp916821pxb; Wed, 6 Apr 2022 04:12:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhV3rKwXwz5Xh4878FpOPNsF3/UvSnv2T3tdb9hsEZAYVrRisFQmbLu5Hu0Y5IwQoCZwt8 X-Received: by 2002:a63:6443:0:b0:399:54fe:5184 with SMTP id y64-20020a636443000000b0039954fe5184mr6636365pgb.511.1649243552458; Wed, 06 Apr 2022 04:12:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649243552; cv=none; d=google.com; s=arc-20160816; b=skQXjPDfhXLoKhoZlMe3Id9ZdJ/jSE4qTV9ccFLVoFBP6Rk21OVOvYL5FDE0gzx4na OGDkXPUrwSr6YdRKLnAM4Df9Qo3m703mjOisK3CE68RXbBkBtbrkh54UjSa8HIS0RELp YiqMCieIMOYaPghG7ymK7BDGE6sMCMuEQsrq+96aBWyYrlwFLSjTwnRntGg4vZiIQqa6 Ynt/0CAZ74xiIJ0WD3PKt+gtxx8mjH+6NNKdApMmA3UO2q5I5lbRRJ3WsESdP8O6zeiD CXhuFaOnexNO11IXTr0k0EEJsQOjTX5tvR0ODOs/Pemcv/Pav0y9bkxvlmts3yizn3Ia h5mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Uly24Jg6aYHAF+0dVc2bvye/3gb4d4KxhCTj/MEKDp0=; b=b903TtlKse17bcyHhBe9pRv971oCoE/4uhelLL5Z6NqIQ5OuB5k23/iKVxNVsF0kVY KrtPRIZVGDVwbIFhRoto7q5JLRPrBxYnqNMW5OGLGhAsKwqM1jp46Ipv5wYPJD5p5OGi 72j/H+Zj8QEbfAVPHv2mQF7rRbM8B1hzXDoyXqS5wqvjDQaA0Wdx5GcPc02igKoUPXqk V4mfKTusRJ2E+f6aQbnXL7ub7DsA1noyUTRxUS7nT0EpbWPvV3uIj5kd60jbk2TqH8vY cfrn+75XMuzCigut3UAMA645GOpUT4yFx+4Wp+aMRGAFMNDaXRs5C9tyvkK+OhcQzD/j sNCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=l29fCfWE; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id e13-20020a17090a9a8d00b001bf3623d4f5si3233002pjp.50.2022.04.06.04.12.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 04:12:32 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=l29fCfWE; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 8FDB249DE06; Wed, 6 Apr 2022 02:37:50 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1839340AbiDFA7I (ORCPT + 99 others); Tue, 5 Apr 2022 20:59:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355939AbiDEKWP (ORCPT ); Tue, 5 Apr 2022 06:22:15 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14A0FAA028; Tue, 5 Apr 2022 03:05:31 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 7AEBEB81C83; Tue, 5 Apr 2022 10:05:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CCFB8C385A1; Tue, 5 Apr 2022 10:05:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649153129; bh=wxo5Qgm4ML6MQghSIyIPjrQXgvNxgJgLaqb67pNgPhk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l29fCfWEI3Rz6M2cYx1+nX7bH2z+G4kXgRtREj59wJa4ybjVwgjhOamYVJV5tXG9n mCLTOPuu6g7Qy8iKiub14v86VevCMqUfoO9dl3AaMZOMvoQkyH3l/uCHsoEF6n2nwO AIXZyhl/5WML11iIjMeWZoTbYEfJX/nCEUCMTH3U= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tadeusz Struk , Vitaly Chikunov , Eric Biggers , Herbert Xu Subject: [PATCH 5.10 111/599] crypto: rsa-pkcs1pad - restore signature length check Date: Tue, 5 Apr 2022 09:26:45 +0200 Message-Id: <20220405070302.140155099@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Eric Biggers commit d3481accd974541e6a5d6a1fb588924a3519c36e upstream. RSA PKCS#1 v1.5 signatures are required to be the same length as the RSA key size. RFC8017 specifically requires the verifier to check this (https://datatracker.ietf.org/doc/html/rfc8017#section-8.2.2). Commit a49de377e051 ("crypto: Add hash param to pkcs1pad") changed the kernel to allow longer signatures, but didn't explain this part of the change; it seems to be unrelated to the rest of the commit. Revert this change, since it doesn't appear to be correct. We can be pretty sure that no one is relying on overly-long signatures (which would have to be front-padded with zeroes) being supported, given that they would have been broken since commit c7381b012872 ("crypto: akcipher - new verify API for public key algorithms"). Fixes: a49de377e051 ("crypto: Add hash param to pkcs1pad") Cc: # v4.6+ Cc: Tadeusz Struk Suggested-by: Vitaly Chikunov Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- crypto/rsa-pkcs1pad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/crypto/rsa-pkcs1pad.c +++ b/crypto/rsa-pkcs1pad.c @@ -538,7 +538,7 @@ static int pkcs1pad_verify(struct akciph if (WARN_ON(req->dst) || WARN_ON(!req->dst_len) || - !ctx->key_size || req->src_len < ctx->key_size) + !ctx->key_size || req->src_len != ctx->key_size) return -EINVAL; req_ctx->out_buf = kmalloc(ctx->key_size + req->dst_len, GFP_KERNEL);