summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2012-03-06 17:53:30 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2012-03-06 17:53:30 +0100
commit6b60ece0fe85ccd70ac6dcb63be7a9f9a4f55c7a (patch)
tree4696bcdde0cd9e6ea7d6c2c390db635a0961b3ea
parentd426e829eba77281d59a0e6ddef287b96052d531 (diff)
parentb7a6594d1e5ed199a7a472b78b33e070375d6f92 (diff)
* merged from the debian-sid branch, most notably:
- Correct fi translation for hash sum mismatches (LP: #420403) - 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) * 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) * French: replace "étiquetage" by "épinglage" for "pinning"
-rw-r--r--apt-pkg/acquire-item.cc7
-rw-r--r--debian/changelog22
-rw-r--r--doc/po/fr.po4
-rw-r--r--po/fr.po10
-rwxr-xr-xtest/integration/test-releasefile-verification29
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 "
diff --git a/po/fr.po b/po/fr.po
index cc2a9d8ba..1c008ef06 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -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"