Çoklu Notepad++ Kusurları Saldırganların Keyfi Kod Yürütmesine İzin Veriyor


Çoklu Notepad++ Kusuru, Saldırganların Savunmasız Kurulumlarda Keyfi Kod Yazmasına İzin Veriyor

Notepad++’da, tehdit aktörleri tarafından kötü amaçlarla kullanılabilecek çeşitli Arabellek Taşması güvenlik açıkları keşfedildi. Bu güvenlik açıklarının ciddiyeti 5,5 (Orta) ila 7,8 (Yüksek).

Güvenlik açıkları, Gitlab güvenlik araştırmacısı Jaroslav Lobačevski (@JarLob) tarafından tanımlanan, Notepad++ yazılımı tarafından kullanılan bazı işlevler ve kitaplıklardaki yığın arabelleği yazma taşması ve yığın arabelleği okuma taşmasına dayanmaktadır.

Notepad++, Microsoft x86, x64 ve AArch64 tabanlı mimarilerde çalışan, açık kaynaklı bir C++ tabanlı kaynak kodu düzenleyicisidir. Notepad++ sekmeli düzenlemeyi destekler ve tek bir pencerede birden fazla dosyayla çalışmaya olanak tanır. Don Ho bunu geliştirdi.

Notepad++ bu güvenlik açıklarını düzeltmedi. Ancak koordineli açıklama politikalarına göre GitLab, bu güvenlik açıklarını kavram kanıtlarıyla birlikte yayınladı.

CVE(ler):

CVE-2023-40031: Utf8_16_Read::convert’ta yığın arabelleği yazma taşması

Notepad++, UTF16’yı UTF8 kodlamasına dönüştüren Utf8_16_Read::convert adlı bir işlevi kullanır. Bu işlevin bir kusuru vardır, çünkü her iki UTF16 kodlu bayt için üç UTF8 kodlu bayta ihtiyaç duyulduğunu varsayar. Bayt yığını 9 gibi tek bir değere ayarlanırsa hesaplama uyumsuz hale gelir ve arabellek taşmasına neden olur.

CVE-2023-40036: CharDistributionAnalytics::HandleOneChar’da genel arabellek okuma taşması

Bu güvenlik açığı, dizi dizini sırasının, bir tehdit aktörünün Genel arabellek okuma taşmasına yol açan bir dosyayı özel olarak hazırlayarak yararlanabileceği mCharToFreqOrder arabelleğinin boyutuna bağlı olması nedeniyle ortaya çıkar. Ayrıca uygulama bu işlemi destekleyen bir uchardet kütüphanesi de kullanıyor.

CVE-2023-40164: nsCodingStateMachine::NextState’te genel arabellek okuma taşması

Uchardet kütüphanesinin farklı bir kopyası, Global arabellek okuma taşmasına karşı savunmasız olduğu tespit edilen Notepad++ tarafından kullanılıyor. Bunun nedeni, byteCls dizi indeksinin, özel hazırlanmış bir dosyanın yararlanabileceği charLenTable arabelleğinin boyutuna bağlı olmasıdır.

CVE-2023-40166: FileManager::detectLanguageFromTextBegining’de yığın arabelleği okuma taşması

Bir dosyayı açarken Notepad++, sabit boyutlu bir arabellek ayıran FileManager::loadFile işlevini çağırır ve ardından ilk veri bloğunu ara belleğe yükleyen FileManager::loadFileData gelir.

Bundan sonra, dosyanın başlangıç ​​noktasının içerik türünü belirlemek için tespitLanguageFromTextBegining’i çağırır. Bu kusur, FileManager::detectLanguageFromTextBegining döngüsünün i+longestlength < dataLen olup olmadığını kontrol etmemesi ve arabellek taşmasına neden olması nedeniyle mevcuttur.

Bu güvenlik açıklarını düzeltmek için yamalar henüz Notepad++ tarafından onaylanmamıştır. GitLab, bu güvenlik açığı hakkında kavram kanıtını, örnek kodu ve diğer bilgileri içeren eksiksiz bir rapor yayınladı.

Bizi Google Haberler, Linkedin’den takip ederek en son Siber Güvenlik Haberlerinden haberdar olun, heyecanve Facebook.





Source link