- Son 7 gün
- CWE-22
CVE-2026-84243
GNU C Library (glibc) gettext fonksiyonlarında LANGUAGE ortam değişkeni üzerinden dizin geçişi
- Yayımlandı
- Güncellendi
- 31 Eki 2026
- Açık yaşı
- 5 gün
- Kaydı açan
- glibc
Yönetici özeti
Bu açık, Linux sistemlerinin temel kütüphanesi olan glibc'de bulunuyor ve yerel erişimi olan bir saldırganun kısıtlı hesapların sınırlarını aşmasına veya sistem üzerinde kod çalıştırmasına olanak tanıyabilir. Sunucu yöneticilerinin ve barındırma sağlayıcılarının dağıtım yamalarını öncelikli olarak uygulaması önerilir.
ÖzetTürkçe
GNU C Library (glibc) sürüm 2.0 ve sonrasındaki gettext fonksiyonları, LANGUAGE ortam değişkenindeki '/' içeren veya ".." olan girdileri, programın setuid/setgid olmaması durumunda doğrulamadan kabul eder. Bu nedenle gettext kullanan programlar, saldırganın belirlediği konumdan mesaj kataloğu (.mo dosyası) yükleyebilir. Önceki CVE-2014-0475 düzeltmesi bu değişkeni kapsamadığı için açık ortaya çıkmıştır.
Saldırgan ne yapabilir?
Saldırgan, hazırladığı .mo dosyasıyla programı çökertebilir veya biçim dizgisi uyuşmazlıklarıyla printf ailesinde tanımsız davranışa yol açabilir; bu da programın ayrıcalıklarıyla kod çalıştırmaya kadar gidebilir.
Kaynaktaki açıklama (İngilizce)
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.
Ne yapmalı?
- Dağıtımınızın veya glibc'nin resmi kaynağının sağladığı, bu açığı giderən düzeltilmiş sürüme güncelleyin. Güncel düzeltme bilgisi için dağıtımın güvenlik duyurularını takip edin. Genel öneri
- Güncelleme sonrası glibc sürümünü doğrulayın ve gerekli servisleri yeniden başlatın. Genel öneri
- Güncelleme yapılana kadar LANGUAGE ortam değişkenini kabul eden servislerde (örneğin SSH'da AcceptEnv ile istemci ortamının aktarılması) bu değişkenin aktarımını kapatın veya kısıtlayın. Genel öneri
Ek önlemler
- Ortam değişkenlerinin güvenilmeyen istemcilerden aktarılmasını minimumda tutun, özellikle kısıtlı hesaplar ve zorunlu komut kullanan oturumlar için. Genel öneri
- Mesaj kataloğu dizinlerinin yalnızca yetkili kullanıcılar tarafından yazılabilir olduğundan ve salt okunur konumlarda bulunduğundan emin olun. Genel öneri
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| The GNU C Library glibc | ≥ 2.0 | – |
Kaynaklar5 kaynak
- CVE.org kaydı
- NVD kaydı
- sourceware.org/git Üretici bülteni
- inbox.sourceware.org/…/20261012112453.47383-1-avinal.xlvii@gmail.com Yama
- sourceware.org/bugzilla/show_bug.cgi Üçüncü taraf
Kayıt geçmişi
- Yayımlandı
İlgili açıklar
Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.