CVE-2021-29474
Təsvir
HedgeDoc (əvvəlki adı ilə CodiMD) açıq mənbəli kollektiv markdown redaktorudur. Giriş məlumatlarının düzgün yoxlanılmaması səbəbindən hücumçu serverin fayl sistemindən istənilən `.md` fayllarını oxuya bilər ki, bu da nisbi yol keçidi (relative path traversal) həyata keçirmək imkanı yaradır. Təsir altında olduğunuzu yoxlamaq üçün aşağıdakı URL-i açmağa çalışa bilərsiniz: `http://localhost:3000/..%2F..%2FREADME#` (`http://localhost:3000` hissəsini öz instansiyanızın əsas URL-i ilə əvəz edin, məsələn: `https://demo.hedgedoc.org/..%2F..%2FREADME#`). Əgər README səhifəsinin render olunduğunu görürsünüzsə, siz təsirə məruz qalan versiyanı işlədirsiniz. Hücum daxili marşrutlayıcının (router) url-kodlaşdırılmış ləqəbi (alias) `noteController.showNote` funksiyasına ötürməsi səbəbindən baş verir. Bu funksiya girişi birbaşa `findNote()` köməkçi funksiyasına ötürür, o isə bunu `parseNoteId()` funksiyasına yönləndirir; sözügedən funksiya `noteId`/ləqəbin mənasını anlamağa və qeydin mövcud olub-olmadığını, varsa, diskdə müvafiq faylın yenilənib-yenilənmədiyini yoxlamağa çalışır. Qeyd mövcud deyilsə, qeyd yaratma funksiyası çağırılır və bu yoxlanılmamış ləqəb sonuna `.md` artırılaraq `path.join()` funksiyasına ötürülür, daha sonra növbəti prosedurda fayl sistemindən oxunaraq yeni qeydin öncədən doldurulmuş məzmununu təmin edir. Bu, hücumçuya fayl sistemindən yalnız istənilən `.md` fayllarını oxumağa, həmçinin onlardakı dəyişiklikləri izləməyə imkan verir. Bu hücumun faydalılığı məhdud hesab edilə bilər, çünki əsasən markdown faylları `.md` sonluğundan istifadə edir və HedgeDoc layihəsində olan bütün markdown faylları (məsələn, README) onsuz da açıqdır. Əgər chroot, konteyner və ya düzgün fayl icazələri kimi digər qorumalar tətbiq olunubsa, bu hücumun effektivliyi olduqca azdır. Reverse-proxy səviyyəsində URL-dekodlaşdırmanı məcburi etmək olar ki, bu da hücumun qarşısını alacaq, çünki marşrutlayıcı belə bir yolu qəbul etməyəcək.
Necə düzəltmək olar
- hedgedoc hedgedoc1.8.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| hedgedoc hedgedoc | v < 1.8.0 | 1.8.0 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.