• Ard Biesheuvel's avatar
    efi/libstub: Take noinitrd cmdline argument into account for devpath initrd · 79d3219d
    Ard Biesheuvel authored
    One of the advantages of using what basically amounts to a callback
    interface into the bootloader for loading the initrd is that it provides
    a natural place for the bootloader or firmware to measure the initrd
    contents while they are being passed to the kernel.
    
    Unfortunately, this is not a guarantee that the initrd will in fact be
    loaded and its /init invoked by the kernel, since the command line may
    contain the 'noinitrd' option, in which case the initrd is ignored, but
    this will not be reflected in the PCR that covers the initrd measurement.
    
    This could be addressed by measuring the command line as well, and
    including that PCR in the attestation policy, but this locks down the
    command line completely, which may be too restrictive.
    
    So let's take the noinitrd argument into account in the stub, too. This
    forces any PCR that covers the initrd to assume a different value when
    noinitrd is passed, allowing an attestation policy to disregard the
    command line if there is no need to take its measurement into account
    for other reasons.
    
    As Peter points out, this would still require the agent that takes the
    measurements to measure a separator event into the PCR in question at
    ExitBootServices() time, to prevent replay attacks using the known
    measurement from the TPM log.
    
    Cc: Peter Jones <pjones@redhat.com>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    79d3219d
x86-stub.c 19.9 KB