APT 2.8.0: Promote weak key warnings to errors

Bug #2060721 reported by Julian Andres Klode
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
apt (Ubuntu)
Incomplete
Undecided
Julian Andres Klode
Noble
Fix Committed
Undecided
Julian Andres Klode

Bug Description

⚠️ Only land this in the release/updates pocket after PPAs have been resigned

(This bumps the apt version to 2.8.0. APT uses the odd/even number system, with 2.7.x being the development series for 2.8, and this is the only change left for the 2.8 release, safe for some minor translation/test suite improvements)

(This will be uploaded after the beta and may be released before noble release, as a zero day SRU or within the weeks following the release)

[Impact]
APT is currently just warning about keys that it should be rejecting to give Launchpad time to resign PPAs. This needs to be bumped to an error such that the crypto policy is fully implemented and we only trust keys that are still being trusted. #2055193

A warning provides some help right now to third-parties to fix their repositories, but it's not *safe*: A repository could have multiple signing keys and be signed by a good key now, then later, a previous key still in trusted.gpg.d could be revoked and we'd degrade to warnings, which, given that we update in the background automatically, the user may not see.

Other fixes:
- The test suite has been made less flaky in two places
- Documentation translation has been unfuzzied for URL changes in 2.7.14

[Test plan]
The vast regression test suite prevents regression in other components. Additional tests are:

1. (promotion to error) Take a repository that has a weak key warning, upgrade apt and check that it is an error
2. (still valid) Check that the main Ubuntu repositories and/or resigned PPAs work correctly.

We don't have any tests for the test changes or the documentation translation URL unfuzzying.

[Where problems could occur]
apt will start to fail updates of repositories with weak signing keys, but it will have warned users about that before. Given that it is still early in the cycle, and we only enable updates for 24.04.1, this seems the right tradeoff for future security.

description: updated
description: updated
summary: - Promote weak key warnings to errors
+ APT 2.8.0: Promote weak key warnings to errors
description: updated
description: updated
description: updated
description: updated
tags: added: block-proposed block-proposed-noble
tags: removed: block-proposed-noble
description: updated
Changed in apt (Ubuntu Noble):
status: New → Triaged
assignee: nobody → Julian Andres Klode (juliank)
Revision history for this message
Steve Langasek (vorlon) wrote :

> ⚠️ Only land this in the release pocket after PPAs have been resigned

I am marking this incomplete, as it is unclear to me what the intended timeline is for the resigning, or if your comment about the release pocket should also apply to -updates.

Changed in apt (Ubuntu Noble):
status: Triaged → Incomplete
description: updated
Revision history for this message
Julian Andres Klode (juliank) wrote :

The same caveat applies to -updates, but there is a question of whether we should ship 2.8.0 as this or make 2.8.0 different, I did not push a tag for it yet.

i.e. given that this is a stable release update that will break PPAs users currently have warnings for, it might make sense to make it break that a couple months down the road after we have a transition period, i.e. we can "timebomb" things by making apt treat the weak keys as expiring in August (August because we really want this sorted out by the point release when the big wave of 22.04 users upgrades).

We could also introduce a new version of software-properties-common that adds PPA key refresh. We should then trigger that by apt postinst, or in the software-properties-common postinst. I do not believe we need to enforce a strict ordering relationship here, so 2.8.0 as is should technically be good to go.

It's understandable that breaking existing repositories in a stable release is not optimal, however the warnings don't work as a security mechanism - we do not show you which weak keys are trusted, just which weak keys were used to sign the repository:

Hence if you have a 1024R key and a 4096R that can sign a repository, but it's signed by the 4096R key now, you don't see the 1024R key, and an attacker could resign the repository with it and silently attack you.

So this is something we do need to target for the first point release; we want users upgrading from 22.04 to not end up in the transitional stage where they have warnings.

Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Julian, or anyone else affected,

Accepted apt into noble-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/apt/2.8.0 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-noble to verification-done-noble. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-noble. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in apt (Ubuntu Noble):
status: Incomplete → Fix Committed
tags: added: verification-needed verification-needed-noble
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (apt/2.8.0)

All autopkgtests for the newly accepted apt (2.8.0) for noble have finished running.
The following regressions have been reported in tests triggered by the package:

apport/2.28.1-0ubuntu2 (ppc64el)
auto-apt-proxy/14.1 (arm64)
autopkgtest/5.34ubuntu2 (amd64, arm64, ppc64el)
cron/3.0pl1-184ubuntu2 (s390x)
gcc-12/12.3.0-17ubuntu1 (armhf)
sbuild/0.85.7 (amd64, armhf, i386, s390x)
update-manager/1:24.04.6 (amd64, arm64, armhf, ppc64el, s390x)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/noble/update_excuses.html#apt

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Julian Andres Klode (juliank) wrote :

Removing the block-proposed tag for oracular

tags: removed: block-proposed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.