Every CVESearch/Get API key

CVE-2026-84243

gettext: Directory traversal via the LANGUAGE environment variable

7.0 HighFix available

CVE-2026-84243 is a high vulnerability (CVSS 7.0) in The Gnu C Library Glibc, published October 30, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.30%, the 22nd percentile. Fixed in glibc 2.34-189.oe2203sp4.

What does this mean?
Severity
7.0 HighCVSS 3.1, CVE List
Exploit chance
0.30%EPSS, 22nd percentile
Exploitation
None knownNot on CISA’s or ENISA’s lists
Fixed in
2.34-189.oe2203sp4glibc +225 more

Description

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
High
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.30%Unchanged since Oct 31, 2026
90%50%10%1%

Affected products

Affected packages

Affected packages
PackageAffectedFixed
glibc
Azure Linux:3
through 2.38-21None known
gettext
Azure Linux:3
through 0.22-1None known
glibc
Debian:12
All versions, plus listed versions
2.36-10~02.36-92.36-9+deb12u12.36-9+deb12u102.36-9+deb12u11
Show 45 moreShow less
2.36-9+deb12u122.36-9+deb12u132.36-9+deb12u142.36-9+deb12u22.36-9+deb12u32.36-9+deb12u42.36-9+deb12u52.36-9+deb12u62.36-9+deb12u72.36-9+deb12u82.36-9+deb12u92.36-9+loong642.37-12.37-102.37-112.37-122.37-132.37-142.37-152.37-15.12.37-15.1+sh42.37-15~deb13u12.37-162.37-172.37-182.37-192.37-22.37-32.37-42.37-52.37-62.37-72.37-82.37-92.38-12.38-102.38-112.38-122.38-12.12.38-132.38-142.38-15~02.38-15~12.38-22.38-3
None known
glibc
Debian:13
All versions, plus listed versions
2.41-122.41-12+deb13u12.41-12+deb13u22.41-12+deb13u32.41-12+deb13u4
Show 37 moreShow less
2.41-13~hurd.02.41-13~hurd.12.42-12.42-102.42-112.42-122.42-12~hurd.12.42-132.42-142.42-14~hurd.12.42-152.42-15~hurd.12.42-162.42-172.42-22.42-32.42-42.42-52.42-62.42-72.42-82.42-8~hurd.12.42-8~hurd.22.42-92.43-12.43-22.43-32.43-3+m68k2.43-42.43-4+m68k2.43-52.43-62.43-72.43-7~hurd.12.44-12.44-22.44-3
None known
glibc
Debian:14
All versions, plus listed versions
2.41-122.41-13~hurd.02.41-13~hurd.12.42-12.42-10
Show 33 moreShow less
2.42-112.42-122.42-12~hurd.12.42-132.42-142.42-14~hurd.12.42-152.42-15~hurd.12.42-162.42-172.42-22.42-32.42-42.42-52.42-62.42-72.42-82.42-8~hurd.12.42-8~hurd.22.42-92.43-12.43-22.43-32.43-3+m68k2.43-42.43-4+m68k2.43-52.43-62.43-72.43-7~hurd.12.44-12.44-22.44-3
None known
glibc
Mageia:10
From an advisory covering 6 CVEs
before 2.42-11.mga10
2.42-11.mga10
glibc
openEuler:22.03-LTS-SP4
before 2.34-189.oe2203sp4
2.34-189.oe2203sp4
glibc
openEuler:24.03-LTS-SP1
before 2.38-131.oe2403sp1
2.38-131.oe2403sp1
glibc
openEuler:24.03-LTS-SP3
before 2.38-131.oe2403sp3
2.38-131.oe2403sp3
glibc
openEuler:24.03-LTS-SP4
before 2.38-131.oe2403sp4
2.38-131.oe2403sp4
Show 216 moreShow less
Affected packages
PackageAffectedFixed
compat-libpthread-nonshared
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-all-langpacks
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-benchtests
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-common
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-devel
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-doc
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-gconv-extra
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-aa
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-af
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-agr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ak
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-am
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-an
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-anp
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ar
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-as
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ast
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ayc
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-az
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-be
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bem
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ber
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bg
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bhb
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bho
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bi
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bo
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-br
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-brx
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-bs
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-byn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ca
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ce
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-chr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ckb
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-cmn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-crh
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-cs
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-csb
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-cv
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-cy
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-da
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-de
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-doi
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-dsb
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-dv
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-dz
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-el
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-en
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-eo
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-es
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-et
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-eu
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-fa
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ff
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-fi
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-fil
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-fo
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-fr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-fur
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-fy
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ga
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-gbm
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-gd
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-gez
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-gl
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-gu
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-gv
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ha
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hak
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-he
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hi
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hif
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hne
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hsb
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ht
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hu
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-hy
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ia
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-id
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ig
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ik
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-is
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-it
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-iu
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ja
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ka
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-kab
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-kk
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-kl
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-km
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-kn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ko
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-kok
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ks
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ku
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-kv
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-kw
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ky
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-lb
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-lg
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-li
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-lij
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ln
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-lo
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-lt
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ltg
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-lv
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-lzh
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mag
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mai
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mdf
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mfe
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mg
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mhr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mi
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-miq
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mjw
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mk
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ml
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mni
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mnw
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ms
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-mt
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-my
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nan
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nb
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nds
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ne
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nhn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-niu
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nl
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-nso
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-oc
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-om
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-or
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-os
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-pa
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-pap
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-pl
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ps
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-pt
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-quz
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-raj
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-rif
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ro
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ru
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-rw
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sa
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sah
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sat
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sc
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-scn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sd
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-se
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sgs
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-shn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-shs
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-si
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sid
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sk
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sl
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sm
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-so
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sq
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ss
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ssy
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-st
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-su
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sv
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-sw
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-syr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-szl
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ta
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tcy
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-te
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tg
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-th
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-the
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ti
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tig
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tk
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tl
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tn
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-to
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tok
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tpi
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tr
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ts
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-tt
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-ug
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc-langpack-uk
Red Hat:hummingbird:1
before 0:2.43-9.3.hum1
0:2.43-9.3.hum1
glibc
Root:Debian:12
before 2.36-9+deb12u14.aikido.24
2.36-9+deb12u14.aikido.24
rootio-glibc
Root:Debian:12
before 2.36-9+deb12u14.aikido.24
2.36-9+deb12u14.aikido.24
glibc
Root:Debian:13
before 2.41-12+deb13u4.aikido.14
2.41-12+deb13u4.aikido.14
rootio-glibc
Root:Debian:13
before 2.41-12+deb13u4.aikido.14
2.41-12+deb13u4.aikido.14
eglibc
Ubuntu:Pro:14.04:LTS
All versions, plus listed versions
2.17-93ubuntu42.18-0ubuntu12.18-0ubuntu22.18-0ubuntu42.18-0ubuntu5
Show 24 moreShow less
2.18-0ubuntu62.18-0ubuntu72.19-0ubuntu22.19-0ubuntu32.19-0ubuntu42.19-0ubuntu52.19-0ubuntu62.19-0ubuntu6.12.19-0ubuntu6.32.19-0ubuntu6.42.19-0ubuntu6.52.19-0ubuntu6.62.19-0ubuntu6.72.19-0ubuntu6.82.19-0ubuntu6.92.19-0ubuntu6.102.19-0ubuntu6.112.19-0ubuntu6.132.19-0ubuntu6.142.19-0ubuntu6.152.19-0ubuntu6.15+esm12.19-0ubuntu6.15+esm22.19-0ubuntu6.15+esm32.19-0ubuntu6.15+esm4
None known
glibc
Ubuntu:Pro:16.04:LTS
All versions, plus listed versions
2.21-0ubuntu42.21-0ubuntu52.21-0ubuntu62.23-0ubuntu12.23-0ubuntu2
Show 18 moreShow less
2.23-0ubuntu32.23-0ubuntu42.23-0ubuntu52.23-0ubuntu62.23-0ubuntu72.23-0ubuntu92.23-0ubuntu102.23-0ubuntu112.23-0ubuntu11.22.23-0ubuntu11.32.23-0ubuntu11.3+esm12.23-0ubuntu11.3+esm22.23-0ubuntu11.3+esm32.23-0ubuntu11.3+esm52.23-0ubuntu11.3+esm62.23-0ubuntu11.3+esm72.23-0ubuntu11.3+esm82.23-0ubuntu11.3+esm9
None known
glibc
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
2.26-0ubuntu22.26-0ubuntu2.12.27-0ubuntu22.27-0ubuntu32.27-3ubuntu1
Show 11 moreShow less
2.27-3ubuntu1.22.27-3ubuntu1.32.27-3ubuntu1.42.27-3ubuntu1.52.27-3ubuntu1.62.27-3ubuntu1.6+esm12.27-3ubuntu1.6+esm22.27-3ubuntu1.6+esm32.27-3ubuntu1.6+esm42.27-3ubuntu1.6+esm52.27-3ubuntu1.6+esm6
None known
glibc
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
2.30-0ubuntu22.30-0ubuntu32.31-0ubuntu52.31-0ubuntu62.31-0ubuntu7
Show 13 moreShow less
2.31-0ubuntu92.31-0ubuntu9.12.31-0ubuntu9.22.31-0ubuntu9.32.31-0ubuntu9.72.31-0ubuntu9.92.31-0ubuntu9.122.31-0ubuntu9.142.31-0ubuntu9.152.31-0ubuntu9.162.31-0ubuntu9.172.31-0ubuntu9.182.31-0ubuntu9.18+esm1
None known
glibc
Ubuntu:22.04:LTS
before 2.35-0ubuntu3.18, plus listed versions
2.34-0ubuntu32.35-0ubuntu12.35-0ubuntu32.35-0ubuntu3.12.35-0ubuntu3.3
Show 12 moreShow less
2.35-0ubuntu3.42.35-0ubuntu3.52.35-0ubuntu3.62.35-0ubuntu3.72.35-0ubuntu3.82.35-0ubuntu3.92.35-0ubuntu3.102.35-0ubuntu3.112.35-0ubuntu3.122.35-0ubuntu3.132.35-0ubuntu3.142.35-0ubuntu3.15
2.35-0ubuntu3.18
glibc
Ubuntu:24.04:LTS
before 2.39-0ubuntu8.12, plus listed versions
2.38-1ubuntu62.38-3ubuntu12.39-0ubuntu12.39-0ubuntu22.39-0ubuntu6
Show 10 moreShow less
2.39-0ubuntu82.39-0ubuntu8.12.39-0ubuntu8.22.39-0ubuntu8.32.39-0ubuntu8.42.39-0ubuntu8.52.39-0ubuntu8.62.39-0ubuntu8.72.39-0ubuntu8.82.39-0ubuntu8.9
2.39-0ubuntu8.12
glibc
Ubuntu:26.10
before 2.44-1ubuntu2.1, plus listed versions
2.43-2ubuntu22.43-2ubuntu2.32.44-1ubuntu12.44-1ubuntu2
2.44-1ubuntu2.1
glibc
Ubuntu:26.04:LTS
before 2.43-2ubuntu2.7, plus listed versions
2.42-0ubuntu32.42-2ubuntu12.42-2ubuntu22.42-2ubuntu42.42-2ubuntu5
Show 4 moreShow less
2.43-2ubuntu12.43-2ubuntu22.43-2ubuntu2.32.43-2ubuntu2.4
2.43-2ubuntu2.7
glibc
Ubuntu:22.04:LTS
From an advisory covering 7 CVEs
before 2.35-0ubuntu3.18, plus listed versions
2.34-0ubuntu32.35-0ubuntu12.35-0ubuntu32.35-0ubuntu3.12.35-0ubuntu3.3
Show 12 moreShow less
2.35-0ubuntu3.42.35-0ubuntu3.52.35-0ubuntu3.62.35-0ubuntu3.72.35-0ubuntu3.82.35-0ubuntu3.92.35-0ubuntu3.102.35-0ubuntu3.112.35-0ubuntu3.122.35-0ubuntu3.132.35-0ubuntu3.142.35-0ubuntu3.15
2.35-0ubuntu3.18
glibc
Ubuntu:24.04:LTS
From an advisory covering 7 CVEs
before 2.39-0ubuntu8.12, plus listed versions
2.38-1ubuntu62.38-3ubuntu12.39-0ubuntu12.39-0ubuntu22.39-0ubuntu6
Show 10 moreShow less
2.39-0ubuntu82.39-0ubuntu8.12.39-0ubuntu8.22.39-0ubuntu8.32.39-0ubuntu8.42.39-0ubuntu8.52.39-0ubuntu8.62.39-0ubuntu8.72.39-0ubuntu8.82.39-0ubuntu8.9
2.39-0ubuntu8.12
glibc
Ubuntu:26.10
From an advisory covering 7 CVEs
before 2.44-1ubuntu2.1, plus listed versions
2.43-2ubuntu22.43-2ubuntu2.32.44-1ubuntu12.44-1ubuntu2
2.44-1ubuntu2.1
glibc
Ubuntu:26.04:LTS
From an advisory covering 7 CVEs
before 2.43-2ubuntu2.7, plus listed versions
2.42-0ubuntu32.42-2ubuntu12.42-2ubuntu22.42-2ubuntu42.42-2ubuntu5
Show 4 moreShow less
2.43-2ubuntu12.43-2ubuntu22.43-2ubuntu2.32.43-2ubuntu2.4
2.43-2ubuntu2.7

What each source reports

CVE List Score used7.0

gettext: Directory traversal via the LANGUAGE environment variable

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
CVE-2026-84243
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-22
Updated
2026-11-02
EUVDEUVD-2026-1142477.0

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
EUVD-2026-114247
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-8rvm-662m-jvqv7.0

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE...

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
GHSA-8rvm-662m-jvqv
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-22
Updated
2026-11-02
NVD7.0

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
CVE-2026-84243
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-22
Updated
2026-11-02
OSVDEBIAN-CVE-2026-842437.0

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this. The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE. LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
DEBIAN-CVE-2026-84243
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-48127.0

glibc security update

The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.

Security Fix(es):

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.(CVE-2026-84243)

Record
OESA-2026-4812
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-11
Show 11 moreShow less
OSVOESA-2026-48137.0

glibc security update

The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.

Security Fix(es):

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.(CVE-2026-84243)

Record
OESA-2026-4813
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-11
OSVOESA-2026-48147.0

glibc security update

The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.

Security Fix(es):

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.(CVE-2026-84243)

Record
OESA-2026-4814
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-11
OSVOESA-2026-48157.0

glibc security update

The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.

Security Fix(es):

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.(CVE-2026-84243)

Record
OESA-2026-4815
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-11
OSVRHSA-2026:964017.0

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:96401
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-13
OSVUBUNTU-CVE-2026-842437.0

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this. The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE. LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
UBUNTU-CVE-2026-84243
CVSS 3.1
7.0 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-13
OSVAZL-112354No score

CVE-2026-84243 affecting package glibc 2.38-21

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
AZL-112354
Updated
2026-11-05
OSVAZL-112735No score

CVE-2026-84243 affecting package gettext 0.22-1

The gettext family of functions in the GNU C Library version 2.0 and later accept LANGUAGE environment variable entries that contain '/' or that are equal to "..", unless the program is setuid or setgid (AT_SECURE). An attacker who can set LANGUAGE in the environment of a program that uses gettext can make it load a message catalog (.mo file) from an arbitrary location in the file system. A crafted .mo file can crash the program through out-of-range offsets, or supply translations whose format directives do not match the arguments passed by the program. That causes undefined behaviour in the printf family of functions and may allow arbitrary code execution with the privileges of the program. The safety of message catalogs relies on them being installed in trusted, read-only locations, and the directory traversal bypasses this.

The fix for CVE-2014-0475 rejects ".." path components in locale names passed to setlocale or taken from the LC_ALL, LC_* and LANG environment variables. gettext reads LANGUAGE directly and appends each colon-separated entry to the message catalog directory, so that fix did not cover LANGUAGE.

LANGUAGE is only used when the LC_MESSAGES locale is not "C", "C.<encoding>" or "POSIX", so the attacker must also be able to select another installed locale, for example through LANG or LC_ALL. Exploitation also requires that the attacker can place the crafted file in a location readable by the target program, and that the environment crosses a trust boundary without the program running as AT_SECURE. An example is an SSH server that accepts LANGUAGE and LANG from clients through the AcceptEnv directive and restricts an account to a forced command; the attacker may use this to escape the restriction.

Record
AZL-112735
Updated
2026-11-07
OSVMGASA-2026-0581No score

Updated glibc package fixes security vulnerabilities

Passing an effectively empty string to the ,ccs= syntax extension of the mode argument in the fopen function in the GNU C Library version 2.45 or earlier may result in a heap buffer overflow when the mode string input to the function is attacker controlled. This usage pattern is not seen in applications in common GNU/Linux distributions and applications that process user-supplied values for ccs should not pass them through without validation. (CVE-2026-18374) Stack overflow in nscd due to unbounded alloca use. (CVE-2026-89092) Assertion failure in the DNS stub resolver with a long search domain. (CVE-2026-8674) AT_SECURE programs may load attacker-controlled code via $ORIGIN. (CVE-2026-86805) AT_SECURE program buffer overflow via $ORIGIN processing. (CVE-2026-95818) Directory traversal via the LANGUAGE environment variable. (CVE-2026-84243)

Record
MGASA-2026-0581
Updated
2026-11-09
OSVROOT-OS-DEBIAN-12-CVE-2026-84243No score

CVE-2026-84243 in glibc - Patched by Root

Root has patched CVE-2026-84243 in the glibc package for Root:Debian:12. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-12-CVE-2026-84243
Updated
2026-11-04
OSVROOT-OS-DEBIAN-13-CVE-2026-84243No score

CVE-2026-84243 in glibc - Patched by Root

Root has patched CVE-2026-84243 in the glibc package for Root:Debian:13. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-13-CVE-2026-84243
Updated
2026-11-03
OSVUSN-9065-1No score

glibc vulnerabilities

It was discovered that the GNU C Library incorrectly handled the ccs= option in the fopen function. An attacker could possibly use this issue to cause GNU C Library to crash or execute arbitrary code. (CVE-2026-18374)

It was discovered that the GNU C Library incorrectly handled long domain names in DNS search lists. An attacker on the local network could possibly use this issue to cause GNU C Library to crash, resulting in a denial of service. (CVE-2026-8674)

It was discovered that the GNU C Library dynamic loader had a time-of-check to time-of-use race condition when handling the $ORIGIN path expansion in setuid or setgid programs. A local attacker could possibly use this issue to execute arbitrary code with elevated privileges. (CVE-2026-86805)

It was discovered that the GNU C Library dynamic loader incorrectly handled $ORIGIN path expansion, leading to a stack-based buffer overflow. A local attacker could possibly use this issue to cause GNU C Library to crash, resulting in a denial of service, or obtain sensitive information. (CVE-2026-95818)

It was discovered that the GNU C Library nscd service incorrectly handled large DNS responses. An attacker could possibly use this issue to cause nscd to crash, resulting in a denial of service. (CVE-2026-89092)

It was discovered that the GNU C Library strncasecmp function optimized for the Power8 architecture incorrectly handled certain inputs. An attacker could possibly use this issue to cause GNU C Library to crash, resulting in a denial of service. (CVE-2026-97399)

It was discovered that the GNU C Library incorrectly restricted path traversal when processing the LANGUAGE environment variable in gettext. A local attacker could possibly use this issue to load message catalogs from arbitrary locations and execute arbitrary code. (CVE-2026-84243)

Record
USN-9065-1
Updated
2026-11-13

History

History
RecordedChangedSources
affected, affected_more, aliases, referencesOSV
affected, aliases, referencesOSV
affected, referencesOSV
affected, aliases, referencesOSV
affected, aliases, referencesOSV
affected, aliasesOSV
affected, aliasesOSV
affected, aliases, facts, referencesOSV
affected, aliases, factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

References

Show 29 moreShow less
This page doesn't list everything

Left out here: 86 versions. The JSON record has them. Also not on the record: 29 package claims. ID and package lookups still check them.

MoveEnter Open