lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180111183313.7ub2t3xkeko5yb3z@pd.tnic>
Date:   Thu, 11 Jan 2018 19:33:14 +0100
From:   Borislav Petkov <bp@...en8.de>
To:     Tom Lendacky <thomas.lendacky@....com>
Cc:     x86@...nel.org, Brijesh Singh <brijesh.singh@....com>,
        linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...hat.com>,
        "H. Peter Anvin" <hpa@...or.com>,
        Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH v3 0/5] x86: SME: BSP/SME microcode update fix

On Wed, Jan 10, 2018 at 01:25:45PM -0600, Tom Lendacky wrote:
> This patch series addresses an issue when SME is active and the BSP
> is attempting to check for and load microcode during load_ucode_bsp().
> Since the initrd has not been decrypted (yet) and the virtual address
> of the initrd treats the memory as encrypted, the CPIO archive parsing
> fails to locate the microcode.
> 
> This series moves the encryption of the initrd into the early boot code
> and encrypts it at the same time that the kernel is encrypted.  Since
> the initrd is now encrypted, the CPIO archive parsing succeeds in
> properly locating the microcode.
> 
> The following patches are included in this fix:
> - Cleanup register saving in arch/x86/mm/mem_encrypt_boot.S
> - Reduce parameters and complexity for creating the SME PGD mappings
> - Centralize the use of the PMD flags used in sme_encrypt_kernel() in
>   preparation for using PTE flags also.
> - Prepare sme_encrypt_kernel() to handle PAGE aligned encryption, not
>   just 2MB large page aligned encryption.
> - Encrypt the initrd in sme_encrypt_kernel() when the kernel is being
>   encrypted.
> 
> This patch series is based on tip/master.
> 
> ---
> 
> Changes from v2:
> - General code cleanup based on feedback.
> 
> Changes from v1:
> - Additional patch to cleanup the register saving performed in
>   arch/x86/mm/mem_encrypt_boot.S in prep for changes made in the
>   remainder of the patchset.
> - Additional patch to reduce parameters and complexity for creating the
>   SME PGD mappings by introducing and using a structure for referencing
>   the PGD to populate, the pagetable allocation area, the virtual/physical
>   addresses being mapped and the pagetable flags to be used.
> - Consolidate PMD/PTE mapping code to reduce duplication.
> 
> Tom Lendacky (5):
>       x86/mm: Cleanup register saving in mem_encrypt_boot.S
>       x86/mm: Use a struct to reduce parameters for SME PGD mapping
>       x86/mm: Centralize PMD flags in sme_encrypt_kernel()
>       x86/mm: Prepare sme_encrypt_kernel() for PAGE aligned encryption
>       x86/mm: Encrypt the initrd earlier for BSP microcode update
> 
> 
>  arch/x86/include/asm/mem_encrypt.h |    4 
>  arch/x86/kernel/head64.c           |    4 
>  arch/x86/kernel/setup.c            |   10 -
>  arch/x86/mm/mem_encrypt.c          |  356 ++++++++++++++++++++++++++----------
>  arch/x86/mm/mem_encrypt_boot.S     |   80 ++++----
>  5 files changed, 308 insertions(+), 146 deletions(-)

All 5:

Reviewed-by: Borislav Petkov <bp@...e.de>

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ