bash: non existent locale crashes bash

Bug #1992206 reported by Nick Rosbrook
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
bash (Debian)
Fix Released
Unknown
bash (Ubuntu)
Fix Released
Medium
Unassigned
systemd (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Imported from Debian bug http://bugs.debian.org/1021109:

Package: libc6
Version: 2.35-1
Severity: grave
Justification: renders package unusable
X-Debbugs-Cc: <email address hidden>

Dear maintainer,

After upgrading to libc6 2.35-1 (or 2.36-1 in experimental), nonexistent locale setting
starts to crash the system.

This is dangerous because a remote system might not always have the same locale installed.
An auto update will soft-brick the system unless the sysadmin knows to set their LC_ALL=POSIX
before attempting to ssh.

Steps to reproduce:

From a clean installed Debian sid, upgrade to libc6 2.35-1.
Only install C locale and en_US.UTF-8.

$ LC_ALL=ja_JP.UTF-8 bash
bash: warning: setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8)
Segmentation fault (core dumped)

$ LC_ALL=ja_JP.UTF-8 gdb bash

Fatal signal: Segmentation fault
----- Backtrace -----
0x55ed3e1e8dcf ???
0x55ed3e2df312 ???
0x55ed3e2df488 ???
0x7f0b4a39ba9f ???
0x7f0b4b412204 _rl_init_locale
0x7f0b4b4122f1 _rl_init_eightbit
0x7f0b4b3f10f2 rl_initialize
... snip ...

Downgrade to 2.34-8 seems also don't fix the issue, probably some locale
state was invalidated when upgrading.

Thanks,
Kan-Ru

-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.19.0-2-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libc6 depends on:
ii libgcc-s1 12.2.0-3

Versions of packages libc6 recommends:
ii libidn2-0 2.3.3-1+b1

Versions of packages libc6 suggests:
ii debconf [debconf-2.0] 1.5.79
pn glibc-doc <none>
ii libc-l10n 2.35-1
pn libnss-nis <none>
pn libnss-nisplus <none>
ii locales 2.35-1

-- debconf information:
  glibc/kernel-too-old:
  glibc/restart-failed:
  glibc/disable-screensaver:
  glibc/upgrade: true
* libraries/restart-without-asking: false
* glibc/restart-services: cron
  glibc/kernel-not-supported:

Revision history for this message
Nick Rosbrook (enr0n) wrote :

I came across this today debugging the recent TEST-69-SHUTDOWN failures in systemd autopkgtest[1]. That test automates a login, which due to the test environment triggers this segfault and causes the test to fail.

[1] https://autopkgtest.ubuntu.com/results/autopkgtest-kinetic/kinetic/amd64/s/systemd/20221003_103148_cc8ac@/log.gz

Changed in bash (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
tags: added: foundations-todo
Revision history for this message
Nick Rosbrook (enr0n) wrote :
Changed in bash (Debian):
importance: Undecided → Unknown
Revision history for this message
Julian Andres Klode (juliank) wrote :

Sponsored.

Changed in bash (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Nick Rosbrook (enr0n) wrote :

This bug is the cause of recent systemd autopkgtest failures, specifically the TEST-69-SHUTDOWN test: https://autopkgtest.ubuntu.com/results/autopkgtest-kinetic/kinetic/amd64/s/systemd/20221003_103148_cc8ac@/log.gz. I confirmed in a local autopkgtest run that this patch fixes the test.

Changed in systemd (Ubuntu):
status: New → Fix Committed
importance: Undecided → Medium
Changed in bash (Debian):
status: New → Confirmed
Revision history for this message
Nick Rosbrook (enr0n) wrote :

This was fixed in Ubuntu (https://launchpad.net/ubuntu/+source/bash/5.2-1ubuntu2):

bash (5.2-1ubuntu2) kinetic; urgency=medium

  * debian/patches: Import two upstream patches to fix crashes:
      - Bash-5.2-patch-1-fix-crash-with-unset-arrays-in-arit.diff
      - Bash-5.2-patch-2-fix-crash-in-readline-when-started-.diff (LP:#1992206)

 -- Nick Rosbrook <email address hidden> Fri, 07 Oct 2022 17:03:05 -0400

Changed in bash (Ubuntu):
status: Fix Committed → Fix Released
Changed in systemd (Ubuntu):
status: Fix Committed → Fix Released
tags: removed: foundations-todo
Changed in bash (Debian):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.