diff options
-rw-r--r-- | apt-pkg/acquire-item.cc | 7 | ||||
-rw-r--r-- | debian/changelog | 22 | ||||
-rw-r--r-- | doc/po/fr.po | 4 | ||||
-rw-r--r-- | po/fr.po | 10 | ||||
-rwxr-xr-x | test/integration/test-releasefile-verification | 29 |
5 files changed, 59 insertions, 13 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index f231c42b4..6e6c35381 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -1620,6 +1620,13 @@ void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /* { if (AuthPass == false) { + // Remove the 'old' InRelease file if we try Release.gpg now as otherwise + // the file will stay around and gives a false-auth impression (CVE-2012-0214) + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile.append(URItoFileName(RealURI)); + if (FileExists(FinalFile)) + unlink(FinalFile.c_str()); + new pkgAcqMetaSig(Owner, MetaSigURI, MetaSigURIDesc, MetaSigShortDesc, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, diff --git a/debian/changelog b/debian/changelog index d72de7aad..2f3200989 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,15 @@ apt (0.8.16~exp12ubuntu5) UNRELEASED; urgency=low [ Michael Vogt ] - * merged from the debian-sid branch, i18n updates, most notably: - Correct fi translation for hash sum mismatches (LP: #420403) - Thanks to Jani Uusitalo + * merged from the debian-sid branch, most notably: + - Correct fi translation for hash sum mismatches (LP: #420403) + Thanks to Jani Uusitalo + - remove 'old' InRelease file if we can't get a new one before + proceeding with Release.gpg to avoid the false impression of a still + trusted repository by a (still present) old InRelease file. + Thanks to Simon Ruderich for reporting this issue! (CVE-2012-0214) - -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 01 Mar 2012 12:53:11 +0100 + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 06 Mar 2012 17:52:50 +0100 apt (0.8.16~exp12ubuntu4) precise; urgency=low @@ -554,7 +558,7 @@ apt (0.8.16~exp1) experimental; urgency=low -- Michael Vogt <mvo@debian.org> Wed, 29 Jun 2011 12:40:31 +0200 -apt (0.8.15.10) UNRELEASEDunstable; urgency=low +apt (0.8.15.10) unstable; urgency=high [ David Kalnischkies ] * algorithms.cc: @@ -567,6 +571,11 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low (Closes: #655590) * doc/po/de.po: - apply typo-fix from Michael Basse, thanks! (LP: #900770) + * apt-pkg/acquire-item.cc: + - remove 'old' InRelease file if we can't get a new one before + proceeding with Release.gpg to avoid the false impression of a still + trusted repository by a (still present) old InRelease file. + Thanks to Simon Ruderich for reporting this issue! (CVE-2012-0214) [ Chris Leick ] * German manpage translation update @@ -580,13 +589,14 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low * Hungarian (Gabor Kelemen). Closes: #655238 * Polish (Michał Kułach). Closes: #656908 * Danish (Joe Hansen). Closes: #658643 + * French: replace "étiquetage" by "épinglage" for "pinning" [ Michael Vogt ] * merged patch from lp:~uusijani/apt/uusi-branch: Correct fi translation for hash sum mismatches (LP: #420403) Thanks to Jani Uusitalo - -- David Kalnischkies <kalnischkies@gmail.com> Fri, 13 Jan 2012 17:30:36 +0100 + -- Michael Vogt <mvo@debian.org> Tue, 06 Mar 2012 14:14:26 +0100 apt (0.8.15.9) unstable; urgency=low diff --git a/doc/po/fr.po b/doc/po/fr.po index 2e0e766a7..6183ae072 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -465,7 +465,7 @@ msgstr "" "<!ENTITY file-preferences \"\n" " <varlistentry><term><filename>/etc/apt/preferences</filename></term>\n" " <listitem><para>Fichier des préférences.\n" -" C'est dans ce fichier qu'on peut faire de l'étiquetage (pinning) c'est-à-dire, choisir d'obtenir des paquets d'une source distincte ou d'une distribution différente.\n" +" C'est dans ce fichier qu'on peut faire de l'épinglage (pinning) c'est-à-dire, choisir d'obtenir des paquets d'une source distincte ou d'une distribution différente.\n" " Élément de configuration : <literal>Dir::Etc::Preferences</literal>.</para></listitem>\n" " </varlistentry>\n" @@ -4444,7 +4444,7 @@ msgid "" "also the &apt-preferences; manual page." msgstr "" "Cette option contrôle l'entrée par défaut pour les questions de " -"distribution ; une étiquette (pin) par défaut dont la priorité vaut 990 est " +"distribution ; un épinglage (pin) par défaut dont la priorité vaut 990 est " "créée en utilisant la chaîne spécifiée. Le fichier des préférences peut " "annuler cette décision. En clair, cette option permet de contrôler " "simplement dans quelle distribution seront récupérés les paquets. Par " @@ -127,7 +127,7 @@ msgstr "Le cache est désynchronisé, impossible de référencer un fichier" #. Show any packages have explicit pins #: cmdline/apt-cache.cc:1499 msgid "Pinned packages:" -msgstr "Paquets étiquetés :" +msgstr "Paquets épinglés :" #: cmdline/apt-cache.cc:1511 cmdline/apt-cache.cc:1556 msgid "(not found)" @@ -147,7 +147,7 @@ msgstr "(aucun)" #: cmdline/apt-cache.cc:1553 msgid " Package pin: " -msgstr " Étiquette de paquet : " +msgstr " Épinglage de paquet : " #. Show the priority tables #: cmdline/apt-cache.cc:1562 @@ -220,7 +220,7 @@ msgstr "" " pkgnames - Liste le nom de tous les paquets du système\n" " dotty - Génère un graphe des paquets pour GraphViz\n" " xvcg - Génère un graphe des paquets pour xvcg\n" -" policy - Affiche l'étiquetage (Pin) en vigueur\n" +" policy - Affiche l'épinglage (Pin) en vigueur\n" "\n" "Options :\n" " -h Ce texte d'aide\n" @@ -3020,11 +3020,11 @@ msgstr "" #: apt-pkg/policy.cc:411 #, c-format msgid "Did not understand pin type %s" -msgstr "Étiquette %s inconnue" +msgstr "Type d'épinglage %s inconnu" #: apt-pkg/policy.cc:419 msgid "No priority (or zero) specified for pin" -msgstr "Aucune priorité (ou zéro) n'a été spécifiée pour l'étiquette" +msgstr "Aucune priorité (ou zéro) n'a été spécifiée pour l'épinglage" #: apt-pkg/pkgcachegen.cc:80 msgid "Cache has an incompatible versioning system" diff --git a/test/integration/test-releasefile-verification b/test/integration/test-releasefile-verification index 8bf02a78f..4f65cfa3b 100755 --- a/test/integration/test-releasefile-verification +++ b/test/integration/test-releasefile-verification @@ -153,6 +153,35 @@ runtest() { installaptold } +runtest2() { + prepare ${PKGFILE} + rm -rf rootdir/var/lib/apt/lists + signreleasefiles 'Joe Sixpack' + msgtest 'Cold archive signed by' 'Joe Sixpack' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + + # New .deb but now an unsigned archive. For example MITM to circumvent + # package verification. + prepare ${PKGFILE}-new + find aptarchive/ -name InRelease -delete + find aptarchive/ -name Release.gpg -delete + msgtest 'Warm archive signed by' 'nobody' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}-new) +" aptcache show apt + failaptnew + + # Unsigned archive from the beginning must also be detected. + rm -rf rootdir/var/lib/apt/lists + msgtest 'Cold archive signed by' 'nobody' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}-new) +" aptcache show apt + failaptnew +} +runtest2 + + DELETEFILE="InRelease" runtest DELETEFILE="Release.gpg" |