Node.js, saldırganlar tarafından işlemi bozma ve uygulama çökmesi ve potansiyel olarak uzaktan kod yürütme (RCE) gibi beklenmeyen davranışlara neden olabilecek yüksek şiddetli bir güvenlik açığı için güncellemeleri yayınlamıştır.
CVE-2021-22930 olarak izlenen kullanımı-serbest güvenlik açığı, HTTP2 akışlarının dilde nasıl kullanıldığı ile ilgilidir.
Bu hafta node.js, CVE-2021-22930 olarak izlenen yüksek şiddeti, kullanımı-serbest güvenlik açığı için düzeltmeleri itti.
Kullanım sonrası güvenlik açıkları, bir program daha önce serbest bırakılmış ve artık kaynağı tutmayan bir bellek adresine bir kaynağa erişmeye çalıştığında ortaya çıkar.
Bu, veri bozulmasına neden olabilir veya bazı durumlarda uygulama çökmesi veya hatta uzak kod yürütme (RCE) gibi beklenmedik davranışlar.
En son node.js sürümüne inen düzeltmeler 16.6.0 ve ayrıca 12.22.4 (LTS) ve 14.17.4 (LTS) versiyonlarına da ayrılmıştır.
Aşağıda gösterilen düzeltme, kullanımı-serbest güvenlik açığını ezmek için çoklu node.js şubelerine uygulanmıştır:
ERAN LEVIN, bu güvenlik açığını bildirmekle yatırıldı.
Yüksek şiddetli bir güvenlik açığı için ani güncelleme sürümü, kırılganlığın etrafındaki tartışmaların halihazırda halka açık olduğu gerçeğiyle açıklanmaktadır:
"Normalde, önceden bildirimde bulunmak istiyoruz ve tek değişikliklerin güvenlik açığı olduğunu, ancak bu güvenlik açığı zaten halkın olduğu için, bu düzeltmeyi zaten planlı olan sürümlerde hızlı bir şekilde ortaya çıkmanın daha önemli olduğunu hissettik," Müdür Yazılım Mühendisi ve NODEJS Teknik Direksiyon Komitesi (TSC) Üyesi Daniel Beyis.
Güvenlik açığı, node.js'in gelen RST_stream çerçevelerini ayrıştırdığı durumlarda tetiklendi, hata kodu ya da iptal kodu yok.
HTTP / 2 protokolüne dayanan uygulamalarda, RST_Stream Frame, bir bağlantıyı sonlandırmak için ana bilgisayar tarafından gönderilir.
Örneğin, bir istemci-sunucu mimarisinde, bir istemci uygulaması bağlantıyı bitirmek istiyorsa, sunucuya bir rst_stream çerçevesi gönderir.
Çerçeveyi aldığında, sunucu istemciye yanıt vermeyecek, sonunda bağlantıyı iptal eder. Sunucunun istemciye göndermek üzere olduğu herhangi bir "veri" çerçeveleri, daha sonra atılabilir.
Ancak, savunmasız node.js sürümlerinde, bir RST_stream çerçevesi sunucu tarafından "İptal" koduyla (NGHTTP2_CANCEL) ile alındığında, alıcı alınan verileri "temizlemeye zorlama" dener.
Ve bu yapıldıktan sonra, otomatik bir geri arama ek olarak "kapat" işlevini, son adımda daha önce serbest bırakılmış olan ikinci bir süre serbest bırakmaya çalışarak "kapat" işlevini de çalıştırır.
Ve bu, bir uygulama çökmesine neden olur ya da çift içermeyen bir hata nedeniyle düzensiz davranış.
Bu hata-daha önce, sömürülebilir bir güvenlik açığı yerine "hata" olarak düşünülmüş, 8 Haziran 2021'de Matthew Douglass tarafından halka açık bir iş parçacığı ile bildirildi.
Douglass, hatayı% 100'ün sisteminde% 100'ü çoğaltaydı ve uygulama çökmesiyle sonuçlandı.
Tartışma, douglass ve node.js katkıda bulunanlar arasında bir ay boyunca iyi olmaya başladı:
"Sorun, RST_Stream Çerçevesinin kullanımı nedeniyle hata kodu yok ve hata kodunu iptal et."
"Düğüm, işlemi zorlamaya çalışır ve akış için mevcut verileri temizlemeye çalışır. Bu, GitHUB kullanıcısı Kumarak," Bu, NGHTTP2'nin halihazırda tahrip edilen akışı çift içermeyen hataya neden olarak kapatmasına neden olur. "
Fix rulo, bunun yerine RST_Stream Çerçevelerinin gelen akışını bir kuyruğa ekler ve bunu yapmak için güvenli olduğunda kuyruğu işler. Bu, herhangi bir çift içermeyen veya kullanılmış hataları önler.
Node.js kullanıcıları, en son 16.6.0 sürümüne veya yamalı bir belge versiyonuna yükseltmelidir.
Boş NPM paketi '-' 700.000'den fazla indirme var - işte bu yüzden
Yanlış kişilere rastgele görüntüler gönderen sinyal düzeltmesi
Gönye Güncellemeleri En Tehlikeli En Tehlikeli Yazılım Hatası Listesi
Atlassian, müşterilerin eleştirel Jira güvenlik açığını düzeltmesini istedi
Tor tarayıcısı, yüklü uygulamaları kullanarak sizi izleyen güvenlik açığını düzeltir
Kaynak: Bleeping Computer