import: merge default OpenPGP keyrings

When an administrator installed a custom keyring under /etc,
signature verification selected it instead of the vendor keyring
under /usr. That could make vendor-signed system updates stop
verifying after adding local keys.

Collect all readable default keyrings, including the current and
legacy /etc paths, and pass temporary copies to GnuPG with
separate --keyring options. Keep SYSTEMD_OPENPGP_KEYRING as an
explicit override, add regression coverage for keyring
coexistence, override behavior, and current-path signing, and
silence the expected shellcheck false positive in the test
cleanup helper.

Closes: #40702
This commit is contained in:
zouge666
2026-08-26 11:35:55 +01:00
committed by Luca Boccassi
parent 004db23cca
commit eb020fc492
6 changed files with 272 additions and 59 deletions
+5
View File
@@ -43,6 +43,11 @@ CHANGES WITH 262:
have been provided. This clears the way for a new
"systemd-sysupdate@.service" unit for varlink activation of sysupdate.
* The default OpenPGP keyring lookup now combines the vendor keyring in
/usr with the local keyring in /etc. Deployments that relied on a
single /etc keyring to exclude vendor trust should set
$SYSTEMD_OPENPGP_KEYRING explicitly.
* TPM-sealed credentials are now pinned to the TPM's SRK. This prevents
MITM interposer attacks from stealing the decrypted credentials by
ensuring that communication with the TPM is protected by a private key