CVE-2021-29474
Açıklama
HedgeDoc (eski adıyla CodiMD), açık kaynaklı bir iş birlikli markdown düzenleyicisidir. Hatalı girdi doğrulaması nedeniyle bir saldırgan, göreceli yol atlama (relative path traversal) gerçekleştirerek sunucunun dosya sisteminden rastgele `.md` dosyalarını okuyabilir. Etkilenip etkilenmediğinizi doğrulamak için şu URL'yi açmayı deneyebilirsiniz: `http://localhost:3000/..%2F..%2FREADME#` (`http://localhost:3000` kısmını kendi örneğinizin temel URL'si ile değiştirin, örn. `https://demo.hedgedoc.org/..%2F..%2FREADME#`). Eğer bir README sayfasının oluşturulduğunu görürseniz, etkilenen bir sürüm çalıştırıyorsunuz demektir. Saldırı, dahili yönlendiricinin URL-kodlanmış takma adı `noteController.showNote` fonksiyonuna aktarması nedeniyle gerçekleşir. Bu fonksiyon, girdiyi doğrudan `findNote()` yardımcı fonksiyonuna aktarır; o da bunu `parseNoteId()` fonksiyonuna iletir. `parseNoteId()` fonksiyonu, noteId/takma adı anlamlandırmaya ve bir notun zaten mevcut olup olmadığını, mevcutsa diskteki karşılık gelen dosyanın güncellenip güncellenmediğini kontrol eder. Herhangi bir not mevcut değilse, bu doğrulanmamış takma adı sonuna `.md` ekleyerek bir `path.join()` fonksiyonuna aktaran not oluşturma fonksiyonu çağrılır; bu işlem takip eden rutinde dosya sisteminden okunur ve yeni notun önceden doldurulmuş içeriğini sağlar. Bu durum, bir saldırganın dosya sistemindeki rastgele `.md` dosyalarını okumasına ve ayrıca bunlardaki değişiklikleri gözlemlemesine olanak tanır. Temel olarak yalnızca markdown dosyalarının `.md` dosya uzantısını kullanması ve README gibi HedgeDoc projesinde yer alan tüm markdown dosyalarının zaten herkese açık olması nedeniyle, bu saldırının faydası sınırlı kabul edilebilir. Chroot veya konteyner ya da uygun dosya izinleri gibi diğer korumalar mevcutsa, bu saldırının faydası oldukça sınırlıdır. Ters proxy düzeyinde, yönlendirici böyle bir yolu kabul etmeyeceği için bu saldırıyı önleyecek şekilde bir URL-dekod işlemi zorlanabilir.
Nasıl düzeltilir
- hedgedoc hedgedoc1.8.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| hedgedoc hedgedoc | v < 1.8.0 | 1.8.0 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.