From c40ed3885ecbecec4738672c59d817ca2f47355c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cern=C3=BD?= Date: Thu, 26 Feb 2026 13:54:16 +0100 Subject: [PATCH] Check for PQC GPG key only on RHEL 10.1 and newer The redhat-release RPM package in RHEL 10.0 won't contain the postquantum OpenGPG key. This key will be present in RHEL 10.1 and newer. Addressing: Failing rule `ensure_redhat_gpgkey_installed` in multiple contest tests `/hardening/host-os/oscap` on RHEL 10.0. --- .../ansible/shared.yml | 18 +++++++++++-- .../bash/shared.sh | 13 ++++++---- .../oval/shared.xml | 26 +++++++++++++++++-- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/ansible/shared.yml b/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/ansible/shared.yml index 8080f0c6ced3..750852c52a4f 100644 --- a/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/ansible/shared.yml +++ b/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/ansible/shared.yml @@ -40,13 +40,27 @@ {{% endif %}} -- name: "{{{ rule_title }}}: Set Fact - Valid fingerprints" +{{% if "rhel" in families and major_version_ordinal >= 10 %}} +- name: "{{{ rule_title }}}: Set Fact - Valid fingerprints (without PQC)" + ansible.builtin.set_fact: + gpg_valid_fingerprints: + - "{{{ release_key_fingerprint }}}" + - "{{{ auxiliary_key_fingerprint }}}" + when: ansible_distribution_version is version('10.1', '<') + +- name: "{{{ rule_title }}}: Set Fact - Valid fingerprints (with PQC)" ansible.builtin.set_fact: gpg_valid_fingerprints: - "{{{ release_key_fingerprint }}}" - "{{{ auxiliary_key_fingerprint }}}" -{{% if "rhel" in families and major_version_ordinal >= 10 %}} - "{{{ pqc_key_fingerprint }}}" + when: ansible_distribution_version is version('10.1', '>=') +{{% else %}} +- name: "{{{ rule_title }}}: Set Fact - Valid fingerprints" + ansible.builtin.set_fact: + gpg_valid_fingerprints: + - "{{{ release_key_fingerprint }}}" + - "{{{ auxiliary_key_fingerprint }}}" {{% endif %}} - name: "{{{ rule_title }}}: Import RedHat GPG key" diff --git a/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/bash/shared.sh b/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/bash/shared.sh index 53931cd4009d..5fdb792b79cd 100644 --- a/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/bash/shared.sh +++ b/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/bash/shared.sh @@ -25,13 +25,16 @@ then # No CRC error, safe to proceed if [ "${GPG_RESULT}" -eq "0" ] then + # If $REDHAT_RELEASE_KEY file doesn't contain any keys with unknown fingerprint, import it {{% if "rhel" in families and major_version_ordinal >= 10 %}} - echo "${GPG_OUT[*]}" | grep -vE "${REDHAT_RELEASE_FINGERPRINT}|${REDHAT_AUXILIARY_FINGERPRINT}|${REDHAT_PQC_FINGERPRINT}" || { + if {{{ bash_os_linux_conditional("rhel", expected_ver="10.1", op=">=") | trim }}} + then + echo "${GPG_OUT[*]}" | grep -vE "${REDHAT_RELEASE_FINGERPRINT}|${REDHAT_AUXILIARY_FINGERPRINT}|${REDHAT_PQC_FINGERPRINT}" || rpm --import "${REDHAT_RELEASE_KEY}" + else + echo "${GPG_OUT[*]}" | grep -vE "${REDHAT_RELEASE_FINGERPRINT}|${REDHAT_AUXILIARY_FINGERPRINT}" || rpm --import "${REDHAT_RELEASE_KEY}" + fi {{% else %}} - echo "${GPG_OUT[*]}" | grep -vE "${REDHAT_RELEASE_FINGERPRINT}|${REDHAT_AUXILIARY_FINGERPRINT}" || { + echo "${GPG_OUT[*]}" | grep -vE "${REDHAT_RELEASE_FINGERPRINT}|${REDHAT_AUXILIARY_FINGERPRINT}" || rpm --import "${REDHAT_RELEASE_KEY}" {{% endif %}} - # If $REDHAT_RELEASE_KEY file doesn't contain any keys with unknown fingerprint, import it - rpm --import "${REDHAT_RELEASE_KEY}" - } fi fi diff --git a/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/oval/shared.xml b/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/oval/shared.xml index 6871feba83b3..52461f678900 100644 --- a/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/oval/shared.xml +++ b/linux_os/guide/system/software/updating/ensure_redhat_gpgkey_installed/oval/shared.xml @@ -13,8 +13,13 @@ {{% if "rhel" in families and major_version_ordinal >= 10 %}} - + + + + + + + {{% endif %}} {{%- if centos_major_version %}} @@ -88,5 +93,22 @@ {{%- endif %}} +{{% if "rhel" in families and major_version_ordinal >= 10 %}} + + + + + + + /etc/os-release + ^VERSION_ID=["']?([\w.]+)["']?$ + 1 + + + + 10.1 + +{{% endif %}} + {{% endif %}}