Araştırmacılar, saldırganların son birkaç gün içinde 15 Temmuz’da 157.000 siteye karşı 1,3 milyon denemeyle zirveye ulaşan bir dizi saldırıda WordPress WooCommerce Payments eklentisindeki kritik bir kusurdan yararlandığını buldu.
GoldNetwork’ten Araştırmacı Michael Mazzolini, Mart ayında WooCommerce’in HackerOne programı aracılığıyla beyaz şapka testi yaparken CVE-2023-28121 olarak izlenen ve CVSS güvenlik açığı derecelendirme ölçeğinde 10 üzerinden 9,8 olarak derecelendirilen bir kusur keşfetti. Kısa süre sonra, özellikle bu ayın başlarında kusurdan nasıl yararlanılacağını ayrıntılarıyla anlatan bir blog gönderisi yayınlayan RCE Security’den açıktan yararlanma kodu geldi.
Sorun, özellikle WordPress için WooCommerce Payments eklentisini, 5.6.1 ve önceki sürümlerini etkileyerek, kimliği doğrulanmamış bir saldırganın ayrıcalıkları yükseltmesine ve yönetici adına istekler göndermesine izin vererek, eklentinin etkilenen bir sürümünün etkinleştirildiği bir sitede yönetici erişimi elde etmesine olanak tanır.
Otomatik Düzeltmeye Rağmen Güvenlik Açığı Olan Siteler
Çevrimiçi mağazalara kredi kartları, banka kartları ve Apple Pay yoluyla ödeme kabul etme işlevi sağlayan WooCommerce Payments, 600.000’den fazla sitede yüklü. Ödeme eklentisi saldırıya uğramaya yabancı değil, ancak genellikle saldırganlar onu diğer ödeme sistemlerini de etkileyen daha geniş bir Magecart gözden geçirme saldırısının parçası olarak hedef alıyor.
WooCommerce, keşfinden kısa bir süre sonra, WooCommerce Payments 4.8.0’dan 5.6.1’e kadar çalışan WordPress sitelerine otomatik güncelleme yoluyla kusuru düzeltti. Ancak, etkilenen sürümleri WordPress.com dışında çalıştıran kullanıcıların yama için güncellemeyi yüklemeleri gerekiyordu ve yüklemedilerse siteler savunmasız kalmaya devam etti.
Wordfence’in 17 Temmuz’da yayınladığı bir blog yazısında, saldırganların son birkaç gün içinde bu savunmasız sitelerden tam anlamıyla yararlandığını, rastgele değil, yüksek oranda hedeflenmiş gibi göründükleri için olağandışı bir dizi saldırıda bulunduğunu açıkladı.
Wordfence’den Ram Gall gönderisinde, “Tipik olarak milyonlarca siteye ayrım gözetmeksizin saldıran diğer birçok büyük ölçekli kampanyanın aksine, bu kampanya daha küçük bir dizi web sitesini hedef alıyor gibi görünüyor.”
WooCommerce Siber Saldırıları Kod Yürütmesine Yol Açıyor
Wordfence araştırmacıları, ana dalgadan birkaç gün önce, milyonlarca sitenin wp-content/plugins/woocommerce-payments/ dizininde bir readme.txt dosyası arayan eklenti numaralandırma isteklerindeki artış sayesinde barajın ilk uyarı işaretlerini gördüler.
Gerçek saldırıların çoğu gönderide paylaşılan bir avuç IP adresinden gelirken, readme.txt istekleri binlerce IP adresine dağıtıldı. Ancak Lam, yalnızca yaklaşık 5.000 IP adresinin hem readme.txt isteklerini hem de gerçek saldırıları gönderdiğini bildirdi.
Lam, WooCommerce Payments güvenlik açığını hedefleyen tüm istismarlarda ortak olan, savunmasız sitelerin herhangi bir ek yükü bir yöneticiden geliyormuş gibi ele almasına neden olan X-Wcpay-Platform-Checkout-User: 1 başlığıydı.
“Bunu kullanırken gördüğümüz isteklerin çoğu, bir yönetici tarafından bir sitede kod yürütmek için kullanılabilen WP Konsolu eklentisini yüklemek için yeni yönetici ayrıcalıklarını kullanmaya çalışıyor gibi görünüyor” diye yazdı.
Lam, bu eklenti yüklendikten sonra, saldırganların onu kötü amaçlı kod yürütmek için kullandığını ve kalıcılık sağlamak için bir dosya yükleyici yerleştirdiğini söyledi. Wordfence araştırmacıları tarafından gözlemlenen yük, kurban dosya sistemine kaydedildiğinde “fb1fd5d5ac7128bf23378ef3e238baba” MD5 karma değerine sahip, Wordfence tarayıcısının en az Temmuz 2021’den beri bunun için algılama sağladığını söyledi.
Lam, “Saldırganların ‘ac9edbbe’ gibi rastgele alfasayısal kullanıcı adlarıyla kötü niyetli yönetici kullanıcılar oluşturduğunu da gördük” diye yazdı.
CVE-2023-28121 Hatasından Yararlanma
RCE Security’nin arkasında kendi kendini bilgisayar korsanı olarak atayan Julien Ahrens tarafından özetlenen açıktan yararlanma saldırısı, eklentinin X-WCPAY-PLATFORM-CHECKOUT-USER istek başlığının varlığını kontrol ettiği,determin_current_user_for_platform_checkout() işlevindeki güvenlik açığını tetikliyor. onun gönderisinde Varsa, WooCommerce yalnızca “belirlenen” kullanıcıyı temsil eden başlığın değerini döndürür.
Bu, bir saldırganın, X-WCPAY-PLATFORM-CHECKOUT-USER istek başlığını ayarlayarak ve bunu bir userId’ye işaret ederek, WordPress’i kimliği doğrulanmamış bir kullanıcının gerçekten doğrulandığını düşünmesi için kandırmasına olanak tanır, Ahrens açıkladı.
“Kaputun altında olan şey, kancanın WordPress’e isteğin hangi kullanıcıdan geldiğini etkili bir şekilde söylemesidir” diye yazdı. “UserId kontrolümüz altında olduğundan, yöneticiler de dahil olmak üzere WordPress örneğinde etkin/etkinleştirilmiş herhangi bir kullanıcıyı taklit etmenin artık kolay bir yoluna sahibiz.”
Bu nedenle, bir saldırgan yönetici kimliğine bürünmeyi başardığında, tüm WordPress örneğinin güvenliğinin ihlal edilebileceğini söyledi. Saldırgan, HTTP yanıt koduna göre açıktan yararlanmanın başarılı olup olmadığını belirleyebilir; Ahrens, 201 ise, yeni oluşturulan kullanıcının kullanıcı nesnesini döndüreceğini ve bunun daha sonra WordPress’in idari arka ucuna karşı kimlik doğrulaması yapmak için kullanılabileceğini söyledi.
Hedeflenen, kimliğine bürünülen kullanıcının artık mevcut olmadığı veya devre dışı bırakıldığı bir durum meydana gelirse, bir saldırganın aktif kullanıcıların bir listesini almak için /wp-json/wp/v2/users API yöntemini sorgulaması veya kabaca kaba davranması gerekir. userIds aracılığıyla zorla, diye ekledi.
Web Sitesi Uzlaşmasından Kaçınmak
WooCommerce Payments’ın etkilenen bir sürümünü kullanan herkesin, eklentinin kusuru düzelten en son sürüme güncellendiğinden emin olması önerilir. Şirket, kusurun keşfedildiği Mart ayında yayınlanan bir blog yazısında kusur ayrıntılarını ve hafifletme yöntemlerini özetledi.
WooCommerce, kullanıcıların kullandıkları WooCommerce sürümünün güvenli olduğundan emin olduktan sonra, beklenmeyen herhangi bir yönetici kullanıcı veya gönderi olup olmadığına dair kanıt olup olmadığını kontrol etmelerini önerir. Herhangi bir şifre bulurlarsa, yönetici şifrelerini güncellemeli ve ayrıca WooCommerce API anahtarı da dahil olmak üzere sitede kullanılan tüm API anahtarlarını döndürmelidirler.