“ncurses” adı verilen ve yaygın olarak kullanılan bir programlama kitaplığı, saldırganlara macOS, Linux ve FreeBSD’de çalışan uygulamaları hedefleme yolu sağlayan çoklu bellek bozulması güvenlik açıkları biçimindeki kötü niyetli gremlinlerin istilasına uğradı.
Microsoft’tan araştırmacılar, temel olarak metin tabanlı kullanıcı arayüzleri ve terminal uygulamaları için API’ler sağlayan kütüphanedeki güvenlik açıklarını ortaya çıkardı. Bu hafta yayınlanan teknik bir raporda şirketin tehdit istihbarat ekibinden araştırmacılar, hataların veri sızıntılarına, ayrıcalık artışına ve keyfi kod yürütülmesine izin verdiğini açıkladı.
Araştırmacılar, “ncurses kütüphanesindeki güvenlik açıklarını keşfettikten sonra, sorunların platformlar arasında çözüldüğünden emin olmak için bakımcı Thomas E. Dickey ve Apple ile birlikte çalıştık” dedi. “ncurses kütüphanesindeki güvenlik açıklarından yararlanmak, kullanıcılar için dikkate değer sonuçlar doğurabilir; saldırganların, hedeflenen programın bağlamında kod çalıştırmak ve değerli verilere ve kaynaklara erişmek veya bunları değiştirmek için ayrıcalıkları yükseltmek gibi kötü niyetli eylemler gerçekleştirmesine olanak tanıyabilir.”
Kullanıcılar İçin Önemli Sonuçlar
Ncurses kütüphanesi ilk olarak 1993’te kullanıma sunuldu. Farklı platformlardaki programcılar, onu terminal kullanıcı arayüzleri ve metin modunda arayüzler geliştirmek için nispeten yaygın olarak kullanıyor. Kitaplık, terminal kullanıcı arayüzü uygulamaları için pencere oluşturma, metni değiştirme, kullanıcı girişini, renkleri ve diğer kullanım durumlarını yönetmeye yönelik işlevler sağlar.
Microsoft’un keşfettiği güvenlik açıklarının tümü, ncurses 6.4 20230408 ve önceki sürümlerdeki bellek bozulması sorunlarıydı. Artık yamalanan kusurlar, saldırganlara, ncurses’ın bir terminalin yeteneklerini aramak için kullandığı TERMINFO adlı bir ortam değişkenini ve kullanıcının ana dizinine giden yolu tanımlayan HOME adlı başka bir ortam değişkenini manipüle etme veya zehirleme yolu sağladı.
Ortam değişkeni, değerinin bir programa sabit kodlanması gerekmeyen bir değişkendir. Örneğin, HOME ortam değişkeni, belirli bir kullanıcının sistemindeki giriş dizini konumunu belirtir. Çalışma zamanında bir program, etiketle ilişkili bilgi veya değeri aramak için HOME ortam değişkenini kullanır. Ortam değişkenleri, bazen bir uygulamanın farklı ortamlarda ve farklı kullanıcılar tarafından kullanıldığı durumlarda olduğu gibi, yapılandırma bilgileri her değiştiğinde uygulama değişikliği ihtiyacını sınırlar.
Bilinen Teknik
Ortak Ortam değişkeni zehirlenmesi, saldırganların ortam değişkeni bilgilerini uygulama davranışını olumsuz etkileyecek veya çökmesine neden olacak şekilde değiştirdiği iyi bilinen bir saldırı tekniğidir. Ortak hedefler arasında ayrıcalık yükseltme, rastgele kod yürütme ve hizmet reddi koşullarının tetiklenmesi yer alır. Microsoft araştırmacılarının bloglarında açıkladığı gibi, geçmişte ortam değişkeni zehirlenmesine izin veren çok sayıda güvenlik açığı örneği yaşandı.
Araştırmacıların işaret ettiği örneklerden biri, sudo komut satırı yardımcı programında bulunan ve macOS dahil Unix benzeri ortamlardaki kullanıcıların programları yükseltilmiş ayrıcalıklarla çalıştırmasına olanak tanıyan bir güvenlik açığı olan CVE-2023-22809’du. Güvenlik açığı, sudo’nun EDITOR değişkeninin kullanıcı tarafından sağlanan ortam değişkenlerini nasıl işlediğinden kaynaklanıyordu ve temel olarak saldırganlara sisteme rastgele dosyalar yazmanın bir yolunu veriyordu.
Ncurses Laneti Nasıl Kaldırılır
Microsoft, ncurses’ta bu tür değişken zehirlenmesine izin veren toplam beş bellek bozulması güvenlik açığı keşfetti. Kütüphanenin sorumlusu, toplu olarak CVE-2023-29491 olarak tanımlanan güvenlik açıkları için bir yama yayınladı. Geliştiricilerin kütüphanelerinin güncel olduğundan emin olmaları gerekir.
Microsoft araştırmacıları ayrıca ncurses güvenlik açıklarıyla ilgili macOS’a özgü sorunları çözmek için Apple’ın güvenlik ekibiyle birlikte çalıştı. Apple, 8 Eylül’de macOS Monterey için Microsoft’un sorunu keşfedip kendisine bildirdiğini kabul eden bir güncelleme yayınladı. Kullanıcılar, saldırılara karşı korunduklarından emin olmak için işletim sistemi sürümlerini güncellemelidir. Şirket, sorunun siber saldırganlara çalışan uygulamaları sonlandırma veya etkilenen sistemlerde isteğe bağlı kod yürütme olanağı sağlaması olarak tanımladı.
Bu arada Red Hat, CVE-2023-29491’i orta şiddette bir tehdit olarak değerlendirdi. Şirket, “ncurses’ta bir güvenlik açığı bulundu ve setuid uygulaması tarafından kullanıldığında ortaya çıkıyor” dedi. “Bu kusur, yerel kullanıcıların, $HOME/.terminfo dosyasında bulunan veya TERMINFO ya da TERM ortam değişkeni yoluyla erişilen bir terminfo veritabanı dosyasındaki hatalı biçimlendirilmiş veriler yoluyla güvenlikle ilgili bellek bozulmasını tetiklemesine olanak tanıyor.”