Bug#1111600: bookworm-pu: package glib2.0/2.74.6-2+deb12u7

Simon McVittie smcv at debian.org
Tue Aug 19 23:14:35 BST 2025


Package: release.debian.org
Severity: normal
Tags: bookworm d-i
X-Debbugs-Cc: glib2.0 at packages.debian.org, debian-boot at lists.debian.org
Control: affects -1 + src:glib2.0
Control: block -1 by 1111470
User: release.debian.org at packages.debian.org
Usertags: pu

[ Reason ]

Avoid triggering #1065022, #1110696 in upgrades from bookworm to trixie.

Fix no-dsa CVEs #1104930, #1110640.

[ Impact ]

#1065022, #1110696 are upgrade issues: when bookworm's libglib2.0-0 is 
purged, its postrm deletes files that trixie's replacement 
libglib2.0-0t64 still needs. The impact is most GLib/GTK apps crashing 
out with a fatal error, until libglib2.0-0t64 is dpkg-reconfigure'd or 
reinstalled. We already work around #1065022 on the trixie side, and I'm 
proposing a similar workaround for #1110696 in trixie-pu bug #1111470, 
but it would be better if bookworm's libglib2.0-0.postrm was safer as 
well.

In particular, old versions of the postrm can hang around indefinitely 
due to the existence of the removed-but-not-purged state, so it would be 
good if we can make an attempt to fix this retroactively.

The two CVEs are unlikely to be exploitable in practice, but the 
worst-case-scenario impact if we turn out to be wrong about that is 
arbitrary code execution.

[ Tests ]

In general: autopkgtests are relatively extensive and all pass, except 
for memory-monitor-dbus which does not always pass but is already 
flagged as flaky (there are some known race conditions in that one, 
fixed upstream in a later version but not a high priority to backport). 
A GNOME laptop still works normally with the proposed version.

I tested #1065022, #1110696 with the manual test script 
debian/tests/manual/1065022.sh, as included in the trixie package 
proposed in #1111470:

- put proposed bookworm packages (only) in /path/to/proposed/debs
  (both amd64 and i386 are required)
- run "dpkg-scanpackages --multiversion . > Packages" in that directory
- podman run --rm -it \
      -v /path/to/glib:/mnt/glib:ro -w /mnt/glib \
      -v /path/to/proposed/debs:/mnt/bookworm:ro \
      debian:bookworm-slim debian/tests/manual/1065022.sh
- then repeat, adding argument "1110696"
- exit status should be 0 in both cases, stderr ends with "+ exit 0"

and these pass, even without updating the packages in trixie.

The new autopkgtest debian/patches/1065022-futureproofing also passes 
(tested in autopkgtest-virt-qemu and autopkgtest-virt-lxc on amd64).

The CVEs have no specific test coverage.

[ Risks ]

It's a key package in all desktop environments.

The upstream changes are narrowly-targeted and only fix specific bugs.

The downstream changes are not strictly minimal: I structured them to be 
as easy as possible to review, even if that means a few more lines of 
code. The only differences between the proposed 
debian/libglib2.0-0.postrm.in, and the debian/libglib2.0-0t64.postrm 
in unstable (and proposed for trixie) are:

- unstable uses debhelper's #DEB_HOST_MULTIARCH# substitution, but to
  minimize regression risk this proposed bookworm update is still doing
  its own substitution of #MULTIARCH# using sed;
- some differences in comments to reflect the older package name

Unlike the trixie package, the bookworm package does not need to go 
behind debhelper's back to fix up older packages, so the changes are 
simpler here.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]

All changes in debian/patches/ (and glib/) are upstream commits 
to fix the two CVEs. They cherry-picked cleanly from 2.84.x.

debian/patches/glib-gfileutils.c-use-64-bits-for-value-in-get_tmp_file.patch 
was a past bug fix related to what was later reported as CVE-2025-7039. 
Cherry-picking it allows the fix for the CVE, 
debian/patches/gfileutils-fix-computation-of-temporary-file-name.patch, 
to apply cleanly.

debian/patches/gstring-carefully-handle-gssize-parameters.patch was the 
original attempt to fix CVE-2025-4373, but had an important omission, 
fixed by debian/patches/gstring-Make-len_unsigned-unsigned.patch.

All other changes are for #1065022/#1110696. 
debian/patches/1065022-futureproofing is an automated test for this, 
backported from unstable; it's marked as flaky as a precaution because 
it relies on implementation details and might regress in future, but in 
practice it does pass.

[ Other info ]

This will need a d-i ack for the udeb, used in the graphical installer.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: glib2.0_2.74.6-2+deb12u7.diff
Type: text/x-diff
Size: 25859 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-gnome-maintainers/attachments/20250819/ad7d9e93/attachment-0001.diff>


More information about the pkg-gnome-maintainers mailing list