From: Gerd Hoffmann Date: Tue, 4 Nov 2025 10:27:14 +0000 (+0100) Subject: hw/uefi: skip time check for append-write updates. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9317274c014572fc28400c02e8b7811c81e1befd;p=thirdparty%2Fqemu.git hw/uefi: skip time check for append-write updates. Only execute the time time check if the EFI_VARIABLE_APPEND_WRITE bit is clear. For append-write updates the timestamp verification is not needed. See uefi spec, section "8.2.6 Using the EFI_VARIABLE_AUTHENTICATION_2 descriptor" Fixes: db1ecfb473ac ("hw/uefi: add var-service-vars.c") Signed-off-by: Gerd Hoffmann Message-ID: <20251104102714.733078-1-kraxel@redhat.com> --- diff --git a/hw/uefi/var-service-vars.c b/hw/uefi/var-service-vars.c index 8533533ea5..52845e9723 100644 --- a/hw/uefi/var-service-vars.c +++ b/hw/uefi/var-service-vars.c @@ -475,7 +475,8 @@ static size_t uefi_vars_mm_set_variable(uefi_vars_state *uv, mm_header *mhdr, goto rollback; } if (old_var && new_var) { - if (uefi_time_compare(&old_var->time, &new_var->time) > 0) { + if ((va->attributes & EFI_VARIABLE_APPEND_WRITE) == 0 && + uefi_time_compare(&old_var->time, &new_var->time) > 0) { trace_uefi_vars_security_violation("time check failed"); mvar->status = EFI_SECURITY_VIOLATION; goto rollback;