#1153057 apt: HTTP redirector archive results in unpredictable URLs in apt-get install user output

Package:
apt
Source:
apt
Description:
commandline package manager
Submitter:
Simon Josefsson
Date:
2026-11-04 21:25:03 UTC
Severity:
normal
#1153057#5
Date:
2026-11-04 21:15:40 UTC
From:
To:
Hi!

If the apt archive server is using HTTP redirects to bounce clients to
other servers, then 'apt-get install' appears to randomly (but seamingly
deterministically) alternate between printing the original URL from the
apt sources configuration and the HTTP redirect URL received from the
server.

This seems like a UX bug to me.  I would expect either the apt source
URL to be printed consistently, or possibly the HTTP redirect
destination target URL consistently.  The former seems more appropriate
than printing URLs received from unprotected HTTP (I didn't test if an
ANSI terminal injection attack was possible).

The simplest way to reproduce this is to use a DiffOS container image
and then install a package like 'libreoffice' which has a lot of
dependencies that get pulled in, see output below.  Notice how some
lines have URLs with 'deb.diffos.org' and some has 'deb.debian.org'.

The deb.diffos.org server is running Apache with redirects like this:

https://gitlab.com/debdistutils/diffos/archive/-/blob/main/apache/deb.diffos.org.conf?ref_type=heads#L71

  RewriteRule ^/diffos/pool/main/(.*)                   https://deb.debian.org/debian/pool/main/$1
  RewriteRule ^/diffos-security/pool/main/(.*)          https://deb.debian.org/debian-security/pool/main/$1

Note though that the only configured apt sources file only contains
'deb.diffos.org' and never 'deb.debian.org':

$ podman run -it registry.gitlab.com/debdistutils/diffos/container:trixie
root@a002f9b9a14c:/# cat /etc/apt/sources.list.d/diffos.sources
Types: deb
URIs: http://deb.diffos.org/diffos
Suites: diffos-trixie diffos-trixie-updates
Components: main
Signed-By: /usr/share/keyrings/diffos-archive-keyring.gpg

Types: deb
URIs: http://deb.diffos.org/diffos-security
Suites: diffos-trixie-security
Components: main
Signed-By: /usr/share/keyrings/diffos-archive-keyring.gpg
root@a002f9b9a14c:/#

This problem was initially reported here:
https://codeberg.org/DiffOS/issues/issues/3

/Simon

$ podman run -it registry.gitlab.com/debdistutils/diffos/container:trixie-amd64
root@0789e77c4233:/# apt-get update
Get:1 http://deb.diffos.org/diffos diffos-trixie InRelease [3453 B]
Get:2 http://deb.diffos.org/diffos diffos-trixie-updates InRelease [3469 B]
Get:3 http://deb.diffos.org/diffos-security diffos-trixie-security InRelease [3268 B]
Get:4 http://deb.diffos.org/diffos diffos-trixie/main amd64 Packages [56.6 MB]
Get:5 http://deb.diffos.org/diffos diffos-trixie-updates/main amd64 Packages [2351 B]
Get:6 http://deb.diffos.org/diffos-security diffos-trixie-security/main amd64 Packages [2160 kB]
Fetched 58.8 MB in 3s (21.4 MB/s)
Reading package lists... Done
root@0789e77c4233:/# apt-get install -y gcc
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-14 cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu gcc-14 gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8
  libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-14-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1 libjansson4
  liblsan0 libmpc3 libmpfr6 libquadmath0 libsframe1 libtsan2 libubsan1 linux-libc-dev manpages manpages-dev rpcsvc-proto
Suggested packages:
  binutils-doc gprofng-gui binutils-gold cpp-doc gcc-14-locales cpp-14-doc gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc gcc-14-multilib gcc-14-doc
  gdb-x86-64-linux-gnu libc-devtools glibc-doc man-browser
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-14 cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu gcc gcc-14 gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu
  libasan8 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-14-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1
  libjansson4 liblsan0 libmpc3 libmpfr6 libquadmath0 libsframe1 libtsan2 libubsan1 linux-libc-dev manpages manpages-dev rpcsvc-proto
0 upgraded, 38 newly installed, 0 to remove and 0 not upgraded.
Need to get 60.7 MB of archives.
After this operation, 223 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian diffos-trixie/main amd64 manpages all 6.9.1-1 [1393 kB]
Get:2 http://deb.debian.org/debian diffos-trixie/main amd64 libsframe1 amd64 2.44-3 [78.4 kB]
Get:3 http://deb.debian.org/debian diffos-trixie/main amd64 binutils-common amd64 2.44-3 [2509 kB]
Get:4 http://deb.debian.org/debian diffos-trixie/main amd64 libbinutils amd64 2.44-3 [534 kB]
Get:5 http://deb.debian.org/debian diffos-trixie/main amd64 libgprofng0 amd64 2.44-3 [808 kB]
Get:6 http://deb.debian.org/debian diffos-trixie/main amd64 libctf-nobfd0 amd64 2.44-3 [156 kB]
Get:7 http://deb.debian.org/debian diffos-trixie/main amd64 libctf0 amd64 2.44-3 [88.6 kB]
Get:8 http://deb.diffos.org/diffos diffos-trixie/main amd64 libjansson4 amd64 2.14-2+b3 [39.8 kB]
Get:9 http://deb.debian.org/debian diffos-trixie/main amd64 binutils-x86-64-linux-gnu amd64 2.44-3 [1014 kB]
Get:10 http://deb.debian.org/debian diffos-trixie/main amd64 binutils amd64 2.44-3 [265 kB]
Get:11 http://deb.debian.org/debian diffos-trixie/main amd64 libisl23 amd64 0.27-1 [659 kB]
Get:12 http://deb.debian.org/debian diffos-trixie/main amd64 libmpfr6 amd64 4.2.2-1 [729 kB]
Get:13 http://deb.diffos.org/diffos diffos-trixie/main amd64 libmpc3 amd64 1.3.1-1+b3 [52.2 kB]
Get:14 http://deb.debian.org/debian diffos-trixie/main amd64 cpp-14-x86-64-linux-gnu amd64 14.2.0-19 [11.0 MB]
Get:15 http://deb.debian.org/debian diffos-trixie/main amd64 cpp-14 amd64 14.2.0-19 [1280 B]
Get:16 http://deb.debian.org/debian diffos-trixie/main amd64 cpp-x86-64-linux-gnu amd64 4:14.2.0-1 [4840 B]
Get:17 http://deb.debian.org/debian diffos-trixie/main amd64 cpp amd64 4:14.2.0-1 [1568 B]
Get:18 http://deb.debian.org/debian diffos-trixie/main amd64 libcc1-0 amd64 14.2.0-19 [42.8 kB]
Get:19 http://deb.debian.org/debian diffos-trixie/main amd64 libgomp1 amd64 14.2.0-19 [137 kB]
Get:20 http://deb.debian.org/debian diffos-trixie/main amd64 libitm1 amd64 14.2.0-19 [26.0 kB]
Get:21 http://deb.debian.org/debian diffos-trixie/main amd64 libatomic1 amd64 14.2.0-19 [9308 B]
Get:22 http://deb.debian.org/debian diffos-trixie/main amd64 libasan8 amd64 14.2.0-19 [2725 kB]
Get:23 http://deb.debian.org/debian diffos-trixie/main amd64 liblsan0 amd64 14.2.0-19 [1204 kB]
Get:24 http://deb.debian.org/debian diffos-trixie/main amd64 libtsan2 amd64 14.2.0-19 [2460 kB]
Get:25 http://deb.debian.org/debian diffos-trixie/main amd64 libubsan1 amd64 14.2.0-19 [1074 kB]
Get:26 http://deb.debian.org/debian diffos-trixie/main amd64 libhwasan0 amd64 14.2.0-19 [1488 kB]
Get:27 http://deb.debian.org/debian diffos-trixie/main amd64 libquadmath0 amd64 14.2.0-19 [145 kB]
Get:28 http://deb.debian.org/debian diffos-trixie/main amd64 libgcc-14-dev amd64 14.2.0-19 [2672 kB]
Get:29 http://deb.debian.org/debian diffos-trixie/main amd64 gcc-14-x86-64-linux-gnu amd64 14.2.0-19 [21.4 MB]
Get:30 http://deb.debian.org/debian diffos-trixie/main amd64 gcc-14 amd64 14.2.0-19 [540 kB]
Get:31 http://deb.debian.org/debian diffos-trixie/main amd64 gcc-x86-64-linux-gnu amd64 4:14.2.0-1 [1436 B]
Get:32 http://deb.debian.org/debian diffos-trixie/main amd64 gcc amd64 4:14.2.0-1 [5136 B]
Get:33 http://deb.diffos.org/diffos diffos-trixie/main amd64 libc-dev-bin amd64 2.41-12+deb13u4 [60.0 kB]
Get:34 http://deb.debian.org/debian-security diffos-trixie-security/main amd64 linux-libc-dev all 6.12.115-2 [3050 kB]
Get:35 http://deb.debian.org/debian diffos-trixie/main amd64 libcrypt-dev amd64 1:4.4.38-1 [119 kB]

#1153057#10
Date:
2026-11-04 21:23:07 UTC
From:
To:
Yeah that seems reasonable to me given the output is running on a fixed
pulse it probably happens to print when some items are still
pre-redirect whereas the others already got a redirect and were
printed correctly.