• Bug#1104976: unblock (pre-approval): glib2.0/2.84.1-3

    From Simon McVittie@21:1/5 to All on Fri May 9 12:20:02 2025
    XPost: linux.debian.devel.release

    Package: release.debian.org
    Severity: normal
    Tags:
    X-Debbugs-Cc: glib2.0@packages.debian.org, debian-boot@lists.debian.org Control: affects -1 + src:glib2.0
    User: release.debian.org@packages.debian.org
    Usertags: unblock

    [ Reason ]
    CVE-2025-4373 (#1104930).

    I also took the opportunity to catch up with the upstream glib-2-84
    branch by adding one unrelated bugfix commit (a 1-line change).

    [ Impact ]
    Fixes an out-of-bounds write if an attacker can somehow arrange for GLib
    to be acting on overwhelmingly large strings (half the address space in
    a single GString object, so 2GB for 32-bit processes).

    Ensures that localtime_r() is not called without first calling tzset(),
    which has unspecified behaviour.

    [ Tests ]
    Not yet tested. I will run autopkgtests and boot a GNOME system with the proposed GLib before upload, and inform this bug if further changes are
    needed.

    GLib has a quite thorough test suite in general, but CVE-2025-4373 is
    not covered by it, because exploiting the bug requires a huge memory
    allocation that will, in practice, usually fail.

    [ Risks ]
    I can't think of any. If there is a problem, these changes would be easy
    to revert.

    [ 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 testing
    (preliminary diff, will need a `dch -r` before release)

    [ Other info ]
    Needs a d-i ack due to the GTK-based graphical installer.

    unblock glib2.0/2.84.1-3

    diff --git a/debian/changelog b/debian/changelog
    index 7f9c9d65fc..67651dcdd7 100644
    --- a/debian/changelog
    +++ b/debian/changelog
    @@ -1,3 +1,28 @@
    +glib2.0 (2.84.1-3) UNRELEASED; urgency=medium
    +
    + [ Jeremy Bícha ]
    + * d/p/gfileutils-Preserve-mode-during-atomic-updates.patch:
    + Add a note that this fix for LP#2072586 was reverted in the upstream
    + 2.84.x branch as a behaviour change. It was kept in 2.85.x,
    + and seems reasonable to keep for trixie.
    +
    + [ Simon McVittie ]
    + * d/p/gfileutils-Preserve-mode-during-atomic-updates.patch:
    + Add a cross-reference to LP#2072586
    + * d/p/gstring-carefully-handle-gssize-parameters.patch,
    + d/p/gstring-Make-len_unsigned-unsigned.patch:
    + Add patches from upstream to fix a buffer underflow with very large
    + GString instances (Closes: #1104930, CVE-2025-4373)
    + * d/p/gdate-Call-tzset-before-localtime_r.patch:
    + Add patch from upstream to ensure that tzset() is called before
    + localtime_r(); otherwise the behaviour of localtime_r() is unspecified.
    + * These patches bring us up to date with upstream glib
  • From Sebastian Ramacher@21:1/5 to Simon McVittie on Fri May 9 15:10:01 2025
    XPost: linux.debian.devel.release

    Control: tags -1 confirmed

    On 2025-05-09 11:08:26 +0100, Simon McVittie wrote:
    Package: release.debian.org
    Severity: normal
    Tags:
    X-Debbugs-Cc: glib2.0@packages.debian.org, debian-boot@lists.debian.org Control: affects -1 + src:glib2.0
    User: release.debian.org@packages.debian.org
    Usertags: unblock

    [ Reason ]
    CVE-2025-4373 (#1104930).

    I also took the opportunity to catch up with the upstream glib-2-84
    branch by adding one unrelated bugfix commit (a 1-line change).

    [ Impact ]
    Fixes an out-of-bounds write if an attacker can somehow arrange for GLib
    to be acting on overwhelmingly large strings (half the address space in
    a single GString object, so 2GB for 32-bit processes).

    Ensures that localtime_r() is not called without first calling tzset(),
    which has unspecified behaviour.

    [ Tests ]
    Not yet tested. I will run autopkgtests and boot a GNOME system with the proposed GLib before upload, and inform this bug if further changes are needed.

    Please feel free to go ahead if your tests were successful and it was
    ACKed by d-i.

    Cheers
    --
    Sebastian Ramacher

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Cyril Brulebois@21:1/5 to All on Mon May 12 19:20:02 2025
    XPost: linux.debian.maint.boot, linux.debian.devel.release

    Hi Simon,

    Simon McVittie <smcv@debian.org> (2025-05-12):
    My tests were successful.

    I don't see my original unblock request in the debian-boot@ web archive - perhaps it was discarded by the mailing list software?

    -boot: do you want to be consulted on udeb unblocks at this stage of the freeze? Please see https://lists.debian.org/debian-release/2025/05/msg00301.html for the full diff for this one, if that's useful.

    Please give me a few days to get my bearings, I don't have an answer for
    you right away.

    I'm pondering an RC 1 now-ish, but trying to decide if and how it could
    affect packages that could be ready in time for the hard freeze.

    If your request is not urgent, I might give you a green light in a few
    days. If you'd rather see it addressed right away, I could try and
    squeeze your package into the next release. Please tell me what you need
    and/or what you'd prefer (as usual I don't want to block people in
    general, no longer than actually needed if that's inevitable, and I also
    don't want to be in the way of critical or security fixes).


    Cheers,
    --
    Cyril Brulebois (kibi@debian.org) <https://debamax.com/>
    D-I release manager -- Release team member -- Freelance Consultant

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEtg6/KYRFPHDXTPR4/5FK8MKzVSAFAmgiK1YACgkQ/5FK8MKz VSAb4hAAlRccIM60EBfk8lV87ENVH2ShntX9kqXXf7ICt/CbkboBUV2hR/69bznE +yBr20kQsIYqC9ZKSvajU/anHwwhx3bCCpmEqfHgq3Y1B/puaFoWocidVOt8NOrJ q47xFulgGAxyJaFOzihSM38kVXp+FeTtMfPoA35jeIdhkax/WXt8xmZ1lbirkKCc UI6J1rBlZs5QSfVriDHOIL5qSk7Lmys9T7IIr+wh2FAvkDGkLoQlEG53pklK+un/ cUROxlaiWkarHcugEu61TH983nxKdvaOXaSM0E3wOTRA2vrb2BLglG0UvE6xe79b Y9rSzpMvM69H1pQP5nphpYmjrGd+Iijaqk/69yzbZ24N9vf+p3sxc6Agemh8Y/qC A739g3JFm6uKwiysLd//CMbeG+3XnHWH+tzJmt37ZKUbJxSlRz3EFmi/pC8chcYj 0O5dk4OskE6DDnIvRhIryyASvJO84jLO5IRLUj7g4fu9QX/MDq+AJsy12G3exudX aYbAjou0jTog0Gxh2335UAgg+2g5hjhBR6qB14o1AsNOkbXdNYPkLqA7FNg7jBJB 8iLtmE0QX3/pxvP3emik7sXc0mUZopksdcBRCcIiLkWQvmHpNsqa0b/ud8Nk1UEg WvPqeow8QQVCqkUgR1Q3MBYYb5YKSuGBJA78/jQTFoCbl6M0u7Y=
    =IVX3
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    *
  • From Simon McVittie@21:1/5 to Cyril Brulebois on Mon May 12 20:20:01 2025
    XPost: linux.debian.maint.boot, linux.debian.devel.release

    On Mon, 12 May 2025 at 19:09:42 +0200, Cyril Brulebois wrote:
    If your request is not urgent, I might give you a green light in a few
    days. If you'd rather see it addressed right away, I could try and
    squeeze your package into the next release.

    This isn't urgent, it can wait a few days. (There's a CVE fix but I'm
    not sure it's actually feasible to exploit, especially on 64-bit.)

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to Cyril Brulebois on Tue May 20 12:10:01 2025
    XPost: linux.debian.maint.boot, linux.debian.devel.release

    On Mon, 12 May 2025 at 19:09:42 +0200, Cyril Brulebois wrote:
    I'm pondering an RC 1 now-ish, but trying to decide if and how it could >affect packages that could be ready in time for the hard freeze.

    Now that RC 1 has been available for a few days, I've uploaded this to
    unstable - I hope that's OK from the d-i point of view?

    (As before it isn't urgent to review or unblock this, but I wanted it to
    exist somewhere other than my laptop!)

    Thanks,
    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Cyril Brulebois@21:1/5 to All on Tue May 20 14:30:01 2025
    XPost: linux.debian.maint.boot, linux.debian.devel.release

    Simon McVittie <smcv@debian.org> (2025-05-20):
    Now that RC 1 has been available for a few days, I've uploaded this to unstable - I hope that's OK from the d-i point of view?

    Absolutely!

    (As before it isn't urgent to review or unblock this, but I wanted it
    to exist somewhere other than my laptop!)

    (I understand the feeling.)


    Cheers,
    --
    Cyril Brulebois (kibi@debian.org) <https://debamax.com/>
    D-I release manager -- Release team member -- Freelance Consultant

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEtg6/KYRFPHDXTPR4/5FK8MKzVSAFAmgsc2UACgkQ/5FK8MKz VSB52Q//ZvXyHLIZQMAf/uidvQb7sVQj9ZjHOB1EhmpJi9PzCsmb8jAZcBEH1eWM JW85A3xM/BA33IKFDfkbXD0UO2q+09HTx/PLLlLiMw28Riz0iJemqIyhIz4zl7Kk 4gbMoqqFRhH7ItcYDd6qP2R8X+TJtKauyt+w14mn7lqC3FjUwd9MT9PHcNFUv2ON wHZTWCe5c0wGQTiCpeII6lCnH9ZjW/w8nAFbSktCwTlbDZpiDyaOqxsSN3rR7klJ PhyiCje9LjnBtTei799c4l6Dqy8FSvCvpjwYfN+5WHdbRuaeCjb2Y+D9JHyStoTB T90ZZQL091K+XjAsq1xOYMfWsCCDCWFayg8cmQ0UhPUGdVafARZfRq/TOp5Rk8C5 XXcgz4y8jNIGtIyi6UV3lA3CWejfovsWOyxKCEK8OjOKlhWaJ6ltEc665zJxyt/w RW5DF70zjtWOM47OF723dwSDb67F/rEZLvHpd09+2gsnt1bHnqxkf9CGkFxgme1F UaICUTiujxWRO9l09DmgkzdsRHZNVEIcaDEq1xks5X2NKpmuqRkAVrnOgud72wzF lASJGpNbp7AfJH13/JTIojufhIPJTY1GDAdsOJpqx729lfvCidOlVrHTeTD/EMDC w/ZEniS+k3Yd4UtwePDJPHKmJ8J0/2y3CpLllOtfPe0czbwMJ9s=
    =+Gfw
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    *
  • From Simon McVittie@21:1/5 to Simon McVittie on Thu May 22 22:50:01 2025
    XPost: linux.debian.maint.boot, linux.debian.devel.release

    Control: retitle -1 unblock: glib2.0/2.84.2-1
    Control: tags -1 - confirmed

    On Fri, 09 May 2025 at 11:08:26 +0100, Simon McVittie wrote:
    [ Reason ]
    CVE-2025-4373 (#1104930).

    I also took the opportunity to catch up with the upstream glib-2-84
    branch by adding one unrelated bugfix commit (a 1-line change).

    Since then we've had a new upstream release, which I uploaded, in the
    interests of having a simpler diff and a simpler "what version is this?"
    story.

    [ Reason ]

    CVE-2025-4373 (#1104930) and other upstream bug fixes.

    [ Impact ]

    Fixes an out-of-bounds write if an attacker can somehow arrange for GLib
    to be acting on overwhelmingly large strings (half the address space in
    a single GString object, so 2GB for 32-bit processes).

    Avoids potential negative string offsets in g_get_locale_variants()
    if the input is syntactically invalid (possibly found by fuzz-testing,
    might be claimed to be a security vulnerability if someone is parsing
    untrusted locale names for whatever reason).

    Ensures that localtime_r() is not called without first calling tzset(),
    which has unspecified behaviour.

    Makes it easier to take subsequent upstream stable releases, which can
    contain security fixes.

    [ Tests ]

    autopkgtests pass and my GNOME laptop continues to work well.

    GLib has a quite thorough test suite in general, but CVE-2025-4373 is
    not covered by it, because exploiting the bug requires a huge memory
    allocation that will, in practice, usually fail.

    [ Risks ]

    Low-risk targeted changes.

    The changes to glib/tests/utils.c are a bit noisy (changing some
    assertions around) but are purely test code, no impact on normal users
    (and the tests still pass). The additions in fuzzing/ are, again, a bit
    noisy, but I don't think we even compile that part; it certainly doesn't
    have any impact on end-user systems.

    [ 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 testing
    (filtered to exclude CI noise and the contents of deleted patches)

    [ Other info ]

    Needs a d-i ack due to the GTK-based graphical installer.

    debdiff glib2.0*.dsc | filterdiff -p1 -x.gitlab-ci.yml -x'debian/patches/*'

    -----

    diffstat for glib2.0-2.84.1 glib2.0-2.84.2

    .gitlab-ci.yml | 30 -
    NEWS | 16
    debian/changelog | 45 ++
    debian/patches/gclosure-fix-ATOMIC_CHANGE_FIELD-to-read-vint-atomically.patch | 55 ---
    debian/patches/gfileutils-Preserve-mode-during-atomic-updates.patch | 4
    debian/patches/series | 1
    debian/tests/manual/.gitignore | 1
    fuzzing/fuzz_get_locale_variants.c | 45 ++
    fuzzing/meson.build | 1
    gio/glocalfile.c | 11
    girepository/girepository.c | 3
    girepository/tests/repository-search-paths.c | 2
    glib/gcharset.c | 6
    glib/gdate.c | 1
    glib/gstring.c | 36 +-
    glib/tests/utils.c | 168 +++++-----
    meson.build | 2
    17 files changed, 249 insertions(+), 178 deletions(-)

    diff -Nru glib2.0-2.84.1/debian/changelog glib2.0-2.84.2/debian/changelog
    --- glib2.0-2.84.1/debian/changelog 2025-04-24 20:26:06.000000000 +0100
    +++ glib2.0-2.84.2/debian/changelog 2025-05-22 17:25:42.000000000 +0100
    @@ -1,3 +1,48 @@
    +glib2.0 (2.84.2-1) unstable; urgency=medium
    +
    + * New upstream stable release
    + - Avoid potential negative string offsets in g_get_locale_variants()
    + if the input is syntactically invalid; add test and fuzzing coverage
    + (glib#3405 upstream)
    + - Minor improvements in tests (no effect on library)
    + - Don't use faccess() with flags on Android (no effect on Debian)
    + - Windows adjustments in girepository (no effect on Debian packages)
    + - CI updates (no effect on Debian packages)
    + - Other changes were already included in 2.84.1-3
    + * d/p/gclosure-fix-ATOMIC_CHANGE_FIELD-to-read-vint-atomically.patch,
    + d/p/gstring-carefully-handle-gssize-parameters.patch,
    + d/p/gstring-Make-len_unsigned-unsigned.patch,
    + d/p/gdate-Call-tzset-before-localtime_r.patch:
    + Drop patches from 2.84.1-2 and 2.84.1-3
  • From Cyril Brulebois@21:1/5 to All on Fri May 23 01:20:02 2025
    XPost: linux.debian.maint.boot, linux.debian.devel.release

    Simon McVittie <smcv@debian.org> (2025-05-22):
    Needs a d-i ack due to the GTK-based graphical installer.

    Your explanations are more than convincing, ACK on my side. I'll follow
    up if some breakages are detected while the package gets ready to be a candidate.


    Cheers,
    --
    Cyril Brulebois (kibi@debian.org) <https://debamax.com/>
    D-I release manager -- Release team member -- Freelance Consultant

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEtg6/KYRFPHDXTPR4/5FK8MKzVSAFAmgvsJ4ACgkQ/5FK8MKz VSA9cRAArJdy00vVYkuSmOiG0rpMgKC1v5B4niLMK53VtDtAwlPiq0DQPPOVVZ7y nbTFqoT3epxdPcXay5I0vHLJapzVg7OrxygQP7pyQ1wCLIBsBvBMuWfbQASmx9ts q6AvkbitQquQ39Imt2kbkunb30FtEBZ5r3CfZkLvU4zCQSmtTN0TtmZoSVvxKN8C l6hazfcJHdOZdD21zhZ3zjzXf/NGa3U827KvtNrHyrx0iuHC5UPb1Uy6UiAerJaO 5Q/pv5StORBRk0+z9P4tc+jEDxrEXmOygB72HMFrOM0H1mLhcx4AH43+/i/s1JFK uZ9ttuXIA2KJqLtNY5dl04763dPI2S9d6YXbyBaqRVZBLDGDLDMudJburlnQ5lL5 ghixfyIado5IDFKJUOI354q7OXZppadpavo+TBsF0mRzwCQtOdUWxJBXQNLqPd3+ Q2WYiR785V+vjYtP6BXu4OVsv4itM/ZPImG4+sFahVm0DOcxOKjPAok60k2V+/H4 FConIoQ/artQQj1FVjJZ/EprbBuoMsOIx+QhWnSelinCGYiJMlzuNNNyKzxA7jk4 AmRT3BGVsdj8qTVt58WgZQ6FVy9tmk5HkP/EK+otouQ2Hoo74lhzMXe08n3qdMdM 60B7AjCIftCdvpcMnWTzBG/R+gUm5WeB0eU2JYraNpqqGjVu0mo=
    =0Gjt
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    *