Auth0, 22.000 proje tarafından kullanılan JsonWebToken kitaplığında RCE kusurunu düzeltir


Tedarik zinciri

Auth0, 22.000’den fazla proje tarafından kullanılan ve NPM’de ayda 36 milyondan fazla kez indirilen son derece popüler ‘JsonWebToken’ açık kaynak kitaplığında bir uzaktan kod yürütme güvenlik açığını düzeltti.

Kitaplık, Microsoft, Twilio, Salesforce, Intuit, Box, IBM, Docusign, Slack, SAP ve çok daha fazlası tarafından oluşturulan açık kaynaklı projelerde kullanılır.

Güvenlik açığı CVE-2022-23529 ile izlenir ve 21 Aralık’ta tatilden hemen önce yayınlanan 9.0.0’ın altındaki JsonWebToken sürümlerini etkiler.

JsonWebToken projesi, JSON Web belirteçlerini oluşturmak, imzalamak ve doğrulamak için kullanılan açık kaynaklı bir kitaplıktır.

“JSON Web Simgesi (JWT), bilgileri bir JSON nesnesi olarak taraflar arasında güvenli bir şekilde iletmek için kompakt ve bağımsız bir yol tanımlayan açık bir standarttır (RFC 7519). Bu bilgiler, dijital olarak imzalanmış olduğundan doğrulanabilir ve güvenilir olabilir.” Auth0’ın jwt.io sitesi.

Proje, Okta Auth0 tarafından geliştirilir ve sürdürülür ve NPM paket havuzunda haftalık 9 milyondan fazla indirmeye ve kütüphanede 22.000’den fazla projeye sahip olup, bu da büyük çapta benimsenmesini yansıtır.

CVE-2022-23529’un başarılı bir şekilde kullanılması, saldırganların kimlik doğrulama mekanizmalarını atlamasına, gizli bilgilere erişmesine ve verileri çalmasına veya değiştirmesine olanak sağlayabilir.

Ancak Unit 42, tehdit aktörlerinin öncelikle bir uygulama ile bir JsonWebToken sunucusu arasındaki gizli yönetim sürecinden taviz vermesi gerektiği konusunda uyarıyor, bu da istismarı zorlaştırıyor ve önem derecesini 7,6/10’a düşürüyor.

JWT Gizli Zehirlenme

CVE-2022-23529 güvenlik açığı, Palo Alto Networks’ün Unit 42 tarafından 13 Temmuz 2022’de keşfedildi ve hemen Auth0’a bildirildi.

Araştırmacılar, tehdit aktörlerinin kötü amaçlarla oluşturulmuş bir JWS jetonunu doğruladıktan sonra JsonWebToken kullanan sunucularda uzaktan kod yürütmeyi başarabildiklerini keşfettiler.

Buna izin veren kusur, bir JWT’yi doğrulamak ve kodu çözülmüş bilgileri döndürmek için kullanılan JsonWebToken’in correct() yöntemindedir. Bu yöntem üç parametreyi kabul eder – belirteç, secretOrPublicKey ve seçenekler.

Ancak, ‘secretOrPublicKey’ parametresinin bir dize mi yoksa arabellek mi olduğunu belirlemek için bir denetiminin olmaması nedeniyle, saldırganlar hedef makinede rasgele dosya yazma gerçekleştirmek için özel hazırlanmış bir nesne gönderebilir.

Kavram kanıtı kötü amaçlı nesne
İstekte kavram kanıtı kötü amaçlı nesne (Ünite 42)

Unit42, istek üzerinde aynı kusuru ancak biraz farklı bir yükü kullanarak, uzaktan kod yürütmenin pratik olarak mümkün olacağını bildiriyor.

Bu güvenlik açığı “yüksek önem düzeyine sahip” (CVSS 3.1 puanı: 7.6) olarak kategorize edilmiştir ve kritik değildir çünkü tehdit aktörleri yalnızca gizli yönetim süreci içinde yararlanabileceğinden yararlanmak karmaşıktır.

GitHub’daki güvenlik danışma belgesinde “Yalnızca, güvenilmeyen varlıkların, kontrol ettiğiniz bir ana bilgisayarda jwt.verify()’ın anahtar alma parametresini değiştirmesine izin verirseniz etkilenirsiniz” yazıyor.

Auth0 ekibi, Ağustos 2022’de bir çözüm üzerinde çalıştıklarını doğruladı ve sonunda 21 Aralık 2022’de JsonWebToken sürüm 9.0.0 ile bir yama yayınlandı.

Düzeltme, secretOrPublicKey parametresi için kötü amaçlı nesneleri ayrıştırmasını önleyen ek denetimler uygulamayı içerir.

JsonWebToken’in bu kadar geniş çapta kullanılan bir açık kaynak kitaplığı olması nedeniyle, kusurun tedarik zincirinde büyük etkileri var ve çoğu proje güvenli bir sürüme yükseltilene kadar uzun bir süre devam edecek.

Açıktan yararlanılması zor olsa da, potansiyel hedeflerin sayısı göz önüne alındığında tehdit aktörlerinin bunu kötüye kullanma istekliliği hafife alınamaz, bu nedenle mevcut güvenlik güncellemesini uygulamak tüm sistem yöneticileri için bir öncelik olmalıdır.



Source link