Skip to content
OpenAdvisories
High · 7.0 CVE-2026-84243 EUVD-2026-114247GHSA-8rvm-662m-jvqv

gettext: Directory traversal via the LANGUAGE environment variable

Published Oct 30, 2026 · Updated Oct 31, 2026 · Assigned by glibc

Vendor: The GNU C Library Product: glibc Package: eglibc Package: gettext Package: glibc Package: glibc Package: glibc Package: glibc-2.43 Package: glibc-2.43-abi-report Package: glibc-2.43-dev Package: glibc-2.43-iconv Package: glibc-2.43-locale-ca Package: glibc-2.43-locale-de Package: glibc-2.43-locale-en Package: glibc-2.43-locale-es Package: glibc-2.43-locale-extra Package: glibc-2.43-locale-fr Package: glibc-2.43-locale-posix Package: glibc-2.43-locales Package: glibc-2.43-testresults Package: glibc-2.43-tracing Package: glibc-2.44 Package: glibc-2.44-abi-report Package: glibc-2.44-dev Package: glibc-2.44-iconv Package: glibc-2.44-locale-ca Package: glibc-2.44-locale-de Package: glibc-2.44-locale-en Package: glibc-2.44-locale-es Package: glibc-2.44-locale-extra Package: glibc-2.44-locale-fr Package: glibc-2.44-locale-posix Package: glibc-2.44-locales Package: glibc-2.44-testresults Package: glibc-2.44-tracing Package: ld-linux-2.43 Package: ld-linux-2.44 Package: libc-bin-2.43 Package: libc-bin-2.44 Package: libcrypt1-2.43 Package: libcrypt1-2.44 Package: localedef-2.43 Package: localedef-2.44 Package: nscd-2.43 Package: nscd-2.44 Package: nss-db-2.43 Package: nss-db-2.44 Package: nss-hesiod-2.43 Package: nss-hesiod-2.44 Package: pcprofiledump-2.43 Package: pcprofiledump-2.44 Package: posix-libc-utils-2.43 Package: posix-libc-utils-2.44 Package: posix-libc-utils-bin-2.43 Package: posix-libc-utils-bin-2.44 Package: sln-2.43 Package: sln-2.44 Package: sotruss-2.43 Package: sotruss-2.44 Package: tzutils-2.43 Package: tzutils-2.44 Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: Ubuntu Ecosystem: Wolfi

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.

Affected products

VendorProductAffectedFixed
The GNU C Library glibc 2.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 glibc No fix yet —
Debian 13 glibc No fix yet —
Debian 12 glibc No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 glibc 2.44-1ubuntu2.1 —
Ubuntu 26.04 LTS glibc 2.43-2ubuntu2.7 —
Ubuntu 24.04 LTS glibc 2.39-0ubuntu8.12 —
Ubuntu 22.04 LTS glibc 2.35-0ubuntu3.18 —
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS glibc No fix yet —
Ubuntu Pro 18.04 LTS glibc No fix yet —
Ubuntu Pro 16.04 LTS glibc No fix yet —
Ubuntu Pro 14.04 LTS eglibc No fix yet —

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 glibc +1 No fix yet —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling sln-2.43 +26 2.43-r24 —
Wolfi rolling sln-2.44 +26 2.44-r16 —

Advisories 1

References