APT does not properly handle expired or revoked key signatures
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
apt (Debian) |
Fix Released
|
Unknown
|
|||
apt (Ubuntu) |
Fix Released
|
Medium
|
Michael Casadevall | ||
Dapper |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Gutsy |
Won't Fix
|
Medium
|
Jamie Strandboge | ||
Hardy |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Intrepid |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Jaunty |
Fix Released
|
Medium
|
Michael Casadevall |
Bug Description
apt-get does not properly handle revoked or expired key signatures since it internally uses gpgv vs gpg to check signatures, and does not properly check for the error codes. It uses VALIDSIG to determine if a signature is valid, but this code can be given if the signature itself has expired, the signing key has expired, or the key has been revoked.
Steps to Reproduce:
1. Add a source with expired or revoked key to sources.list (or set the system clock far enough that a key appears to be expired)
2. Run apt-get update
3. No warning message is printed from apt-get.
I'm working on a bazaar branch to resolve this now by properly using gpg vs gpgv and checking the status messages from GPG.
The Debian bug linked does not include that revoked signatures are a problem.
CVE References
Changed in apt (Ubuntu): | |
assignee: | nobody → mcasadevall |
importance: | Undecided → Medium |
milestone: | none → ubuntu-9.04 |
description: | updated |
tags: | added: apt gpg security |
Changed in apt (Ubuntu): | |
status: | New → Confirmed |
summary: |
- [SECURITY] APT does not properly hand expired or revoked key signatures + [SECURITY] APT does not properly handle expired or revoked key + signatures |
visibility: | private → public |
Changed in apt (Debian): | |
status: | Unknown → Fix Released |
I looked at the branch that Michael posted and this is a no-go for a security update for stable because:
a) it adds new strings >Find(" APT::GPGV: :TrustedKeyring ", "/etc/apt/ trusted. gpg"); >Find(" APT::gpg: :TrustedKeyring ", "/etc/apt/ trusted. gpg");
b) it changes config option names:
- string pubringpath = _config-
+ string pubringpath = _config-
Currently I believe this is a problem with gpgv and should adressed there (also there is some argument
about this given that the man page for gpgv states that it will trust any key).