On Fri, Nov 29, 2024 at 03:31:58AM +0100, Guillem Jover wrote:
> Package: apt
> Version: 2.9.15
> Severity: serious
> Justification: I pondered initially on important, but given that this
>  is a regression that prevents repo usage, it seems worth serious to me.
> 
> Hi!
> 
> The latest release made some repos stop working as apt is now refusing
> to use the specified keyring when it ends in «.pgp»

You essentially exploited a bug in apt-key where it was not correctly
checking single signing keys and worked around the documented behavior.

This poses a tricky question for us because it means there's not just
.pgp possibly, maybe someone named their keys .banana.

But I think we can fix this: We move the else if for .asc up,
drop the extension check on the binary file verification and add
a warning to use `.pgp` if you specify a weird one like `.banana`

> 
> ,---
> …
> Err:4 https://…/… … InRelease
>   The following signatures couldn't be verified because the public key is not 
> available: NO_PUBKEY …
> …
> Warning: https://…/…/InRelease: The key(s) in the keyring 
> /usr/share/keyrings/….pgp are ignored as the file has an unsupported filetype.
> Warning: An error occurred during the signature verification. The repository 
> is not updated and the previous index files will be used. GPG error: 
> https://…/… … InRelease: The following signatures couldn't be verified 
> because the public key is not available: NO_PUBKEY …
> Warning: Failed to fetch https://…/…/InRelease  The following signatures 
> couldn't be verified because the public key is not available: NO_PUBKEY …
> Warning: Some index files failed to download. They have been ignored, or old 
> ones used instead.
> `---
> 
> Enforcing «.gpg» (and «.asc») as the only allowed extensions seems
> wrong, because «.gpg» is an implementation specific name, which does
> not match the standard (OpenPGP) this is based on, where the more
> neutral name to use is «.pgp». So either «.pgp» should be explicitly
> allowed or the extension and format checks should be removed, as the
> OpenPGP implementation in use should be able to reject unknown
> keyrings.

Tell that to GnuPG :D

$ gpgv --keyring $PWD/COPYING --keyring 
/usr/share/keyrings/ubuntu-archive-keyring.gpg 
/var/lib//apt/lists/_etc_apt_mirrors.list_dists_plucky_InRelease 
gpgv: Signature made Fr 29 Nov 2024 08:41:32 CET
gpgv:                using RSA key F6ECB3762474EDA9D21B7022871920D1991BC93C
gpgv: [don't know]: invalid packet (ctb=46)
gpgv: keydb_search failed: Invalid packet
gpgv: [don't know]: invalid packet (ctb=46)
gpgv: keydb_search failed: Invalid packet
gpgv: Can't check signature: No public key

$ gpgv-sq --keyring $PWD/COPYING --keyring 
/usr/share/keyrings/ubuntu-archive-keyring.gpg 
/var/lib//apt/lists/_etc_apt_mirrors.list_dists_plucky_InRelease 
gpgv:   error: Loading keyring "/home/jak/Projects/Debian/apt/COPYING"
gpgv: because: EOF
gpgv:   error: Reading the keyring "/home/jak/Projects/Debian/apt/COPYING"
gpgv: because: Loading keyring "/home/jak/Projects/Debian/apt/COPYING"
gpgv: because: EOF
gpgv: Signature made Fri Nov 29 08:41:32 2024 +01:00
gpgv:                using RSA key F6ECB3762474EDA9D21B7022871920D1991BC93C
gpgv: Good signature from "Ubuntu Archive Automatic Signing Key (2018) 
<ftpmas...@ubuntu.com>"

> 
> Ideally «.pgp» would be allowed everywhere currently expecting «.gpg»,
> including say «Release.gpg» (even if that's considered deprecated).
> And apt would encourage to use the vendor-neutral extension.

Release.pgp won't happen.

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer                              i speak de, en

Reply via email to