React Server Components RCE güvenlik açığının ortaya çıkmasının ardından saldırı ortamı dinamik hale geldi. İlk Kavram Kanıtı istismarının yanı sıra gelişmiş tespit yöntemleri, doğada gözlemlenen istismar mekaniği ve hızla büyüyen saldırı faaliyetlerine ilişkin yeni bilgiler ortaya çıktı. Bu güncelleme, Wallarm müşterileri genelinde yaptığımız değişiklikleri ve gözlemleri özetlemektedir.
İlk PoC İstismarı Gerçek Değildi
Güvenlik açığının ortaya çıkmasından kısa bir süre sonra GitHub’da erken bir PoC dolaşmaya başladı. Daha sonra bu PoC’nin CVE-2025-55182 için gerçek bir istismar olmadığı doğrulandı. Bunun yerine, tehlikeli modülleri manuel olarak kaydederek kasıtsız olarak savunmasız bir sunucuyu simüle eden hatalı bir araştırma girişimini temsil ediyordu. fs, child_processVe vmgerçek dünyadaki RSC uygulamalarının asla yapamayacağı bir şey.
PoC’nin geçersiz olduğu kamuya açıklandıktan sonra bile, bu PoC formatını kullanan istismar girişimleri artmaya devam etti ve Wallarm, hem 3 Aralık hem de 4 Aralık boyunca bu şablonu temel alan yaygın otomatik saldırıları gözlemledi.
Çoğu saldırganın “PoC” olarak etiketlenen her şeyi yeniden kullanması veya otomatikleştirmesi nedeniyle, yanlış veya aşırı basitleştirilmiş depolar hâlâ büyük miktarda kötü niyetli trafik dalgasını körükleyebilir.
Savunmasız Dağıtımları Taramaya Yönelik Yardımcı Programlar Ortaya Çıkıyor
4 Aralık’ta Assetnote Security araştırmacıları, güvenlik açığının ayrıntılı bir teknik dökümünü yayınladılar ve savunmasız RSC ve Next.js dağıtımlarını tespit etmek için bir Python yardımcı programını tanıttılar.
Yardımcı programın bu sürümü, hem uygulayıcı topluluk hem de saldırganlar için savunmasız paketleri ve sunucu yapılandırmalarını belirleme yeteneğini önemli ölçüde geliştirdi.
Daha önceki PoC yayınında olduğu gibi, bu tarama yardımcı programlarının piyasaya sürülmesi, saldırı faaliyetlerinde bir artışa neden oldu. İlk saatler içinde Wallarm, çoğu tarama aracının yapısını doğrudan yansıtan 5.500’den fazla yeni yararlanma girişimi kaydetti.
Tarama yöntemi hızla aşağıdakilere uyarlandı:
- bağımsız topluluk tarayıcıları
- Çekirdek şablonları
- Assetnote kodundan çatallanan özel komut dosyaları
Bu varyasyonlar hızla yaygınlaştı ve 4 Aralık ve 5 Aralık tarihlerinde yoğun bir şekilde kullanıldı; bu blog yazısının ilerleyen kısımlarında yer alan grafikte de gösterildiği gibi çoğu durumda gerçek istismar girişimlerinin hacmini aştı.
CVE-2025-55182 için İlk Gerçek RCE İstismarları
İlk PoC geçersiz olsa da CVE-2025-55182 için gerçek RCE istismar zinciri daha sonra kullanıma sunuldu. Bu, RSC eylemi seri durumdan çıkarma sürecinde güvenli olmayan dışa aktarma çözünürlüğünün kötüye kullanılmasına dayanmaktadır.
Yük, React Sunucu Bileşenlerinin meta veri alanlarını nasıl seri durumdan çıkardığını ve çözdüğünü kullanarak bir saldırganın JavaScript prototip zincirini geçmesine ve sonuçta sunucuda rastgele kod çalıştırmasına olanak tanır. Yükteki her alan, nesnenin hem RSC çalışma zamanı tarafından kabul edilecek hem de değerlendiriciyi tetikleyebilecek şekilde şekillendirilmesine katkıda bulunur. Temel bileşenler şunlardır:
then: "$1:__proto__:then"— Kendine referans oluşturur o zaman mümkün Seri durumdan çıkarıcıyı yürümeye zorlayan yapı__proto__Çözümü güvenli eylem referanslarıyla sınırlamak yerine devralınan özellikleri açığa çıkaran zincir.status: "resolved_model"— Nesneyi geçerli bir React Server Bileşeni model parçası olarak işaretler, böylece yapısal doğrulama tarafından reddedilmeden işlenir.reason: -1— Kök referansın seri durumdan çıkarma sırasında çakışmaları önleyecek şekilde çözülmesini sağlayarak dahili referans işlemeyi yönetir.value: "{\"then\":\"$B1337\"}"— Çağırmak için hazırlanmış iç içe geçmiş bir veri gömer$BModel verilerinin nasıl yorumlandığını etkileyen ve seri durumdan çıkarma akışı üzerinde daha fazla kontrole izin veren işleyici._response._prefix— Gerçek uzaktan kod yürütme pasajını içerir. Bu örnekte, enjekte edilen kod şunu kullanır:process.mainModule.require('https')Başarılı kod yürütmenin bant dışı onayı olarak hizmet veren, saldırganın kontrol ettiği bir alana giden bir istek göndermek._response._chunks: "$Q2"— Boş bir yığın haritası sağlayarak seri durumdan çıkarma hatalarını önler ve yükün yapısal olarak geçerli olarak değerlendirilmesini sağlar._response._formData.get: "$1:constructor:constructor"— YönlendirirgeterişimciFunctionprototip zincirini geçerek yapıcı (constructor → constructor). Bu, saldırganın sağladığı dizeyi dönüştüren kritik adımdır._prefixyürütülebilir JavaScript’e.
Bu öğeler birlikte, RSC modeli çözüm hattındaki boşluklardan yararlanarak bir saldırganın zararsız meta verileri Node.js çalışma zamanı içinde tam olarak yürütülen bir JavaScript yüküne dönüştürmesine olanak tanır. Sonuç, dosyaların diske yazılmasını gerektirmeyen ve yalnızca işlem yeniden başlatılana kadar varlığını sürdüren güvenilir, bellek içi bir RCE ilkelidir.

Veri Süzme Teknikleri
Yararlanma teknikleri olgunlaştıkça, komut sonuçlarını birden fazla kanal üzerinden döndürecek şekilde yükler de gelişti. Aşağıda üç ana yöntem ve bunların arkasındaki teknik mekanizmalar yer almaktadır.
Yanıt Gövdesi Çıkışı
Yük, komut çıkışını doğrudan serileştirilmiş RSC özet alanına gömer, örneğin:
{ digest: `${res}` }
Seri durumdan çıkarıldığında sunucu, komut sonucunu HTTP yanıt gövdesine geri gönderir. Bu, minimum yük karmaşıklığıyla doğrudan, etkileşimli çıktı sağlar.


Bazı değişkenler, komut çıktısını Next.js dahili yönlendirmeleri tarafından kullanılan bir hata nesnesine enjekte eder:
Object.assign(new Error("NEXT_REDIRECT"), { digest: `NEXT_REDIRECT;push;/login?a=${res}` })
Çerçeve, özet değerini belirli HTTP üstbilgilerine yansıttığından, gövdenin üzerine yazıldığında veya temizlendiğinde bile bu, dışarı sızmaya izin verir.

OAST / DNSLog Geri Çağırma
Tamamen bant dışı filtreleme için veri, verileri okumak ve iletmek üzere Düğümün dahili bileşenlerini kullanır:
process.mainModule.require('fs')→ dosyaları veya komut çıktısını okurprocess.mainModule.require('https')→ verileri saldırgan tarafından kontrol edilen bir OAST/DNSLog uç noktasına gönderir
Çalışma Zamanı Bellek Kabuğu
Saldırganların, JavaScript prototip davranışını kötüye kullanarak bellek içi bir web kabuğu oluşturmak için RSC seri durumdan çıkarma kusurlarından nasıl yararlanabileceklerini gösteren ilginç bir teknik daha yayınlandı. Bu yöntem, diske herhangi bir şey yazmadan rastgele kod yürütülmesine olanak tanır, bu da onu hem gizli hem de etkili kılar.
Teknik nasıl çalışır:
- Aşağıdakiler gibi prototip zinciri özelliklerine ulaşmak için hazırlanmış RSC meta verilerini kullanır:
__proto__Veconstructor.constructor. - Bu, rastgele kod çalıştırabilen güçlü JavaScript yapıcılarına erişimi artırır.
- Enjekte edilen komut dosyası, çekirdek Node.js modüllerini içe aktarır (
http, url, child_process) daha derin kontrol elde etmek için. - Geçersiz kılmalar
http.Server.prototype.emitgelen tüm HTTP isteklerini engellemek için. - Gibi gizli bir uç nokta ekler
/exec?cmd=kullanarak komutları yürütenchild_process.execSync. - Sunucu işlemi yeniden başlatılana kadar varlığını sürdüren ve diskte hiçbir iz bırakmayan bir bellek içi web kabuğuyla sonuçlanır.


Wallarm Gözlemleri ve İstismar İstatistikleri
Wallarm, müşteri ortamlarındaki istismar faaliyetlerini izlemeye devam ediyor. Temel gözlemler şunları içerir:
- Geçersiz PoC trafiği: Yanlış PoC formatının kullanımı çürütülmüş olmasına rağmen 4 Aralık’ta 3 Aralık’a kıyasla iki katına çıktı ve 5 Aralık’a kadar devam etti.
- Tarayıcıdan türetilen saldırılar: Assetnote, tarama yardımcı programını yayınladıktan sonra topluluk bunu hızlı bir şekilde uyarladı ve ilk birkaç saat içinde yaklaşık 5.500 saldırı gerçekleşti; 4-5 Aralık tarihlerinde tarama trafiği, gerçek istismar girişimlerini aştı.
- Gerçek RCE yükleri: Doğru teknik ayrıntılar kamuoyuna açıklandıktan sonra, tarayıcı mantığını istismar modelleriyle birleştiren hibritler de dahil olmak üzere gerçek RCE istismarları ortaya çıkmaya başladı (bunların tümü Wallarm, mevcut ve güncellenmiş RSC’ye özgü korumaları kullanarak başarıyla tespit eder ve engeller).

WAF/WAAP Baypas Tekniklerini Kullanarak Suistimal Girişimleri
Çoğu istismar girişimi yalnızca orijinal PoC formatını yansıtırken, Wallarm ayrıca güvenlik kontrollerini atlamayı amaçlayan bir dizi daha gelişmiş girişimi de gözlemledi. Örnekler şunları içerir:
- Yükleri büyük, alakasız verilerle doldurma Bir talebin yalnızca ilk bölümünü denetleyen veya aşırı büyük yüklerle uğraşan WAF/WAAP ürünlerinden kaçınmak için.
- Küçük yapısal mutasyonlardeğiştirmek gibi
["$1:a:a"]ile["$1:aa:aa"]statik imzalara dayanarak WAF’ları atlayabilir. - Çok parçalı isteğe ikili veri ekleme. Aşağıdaki yararlanma talebinde saldırgan, yüksek entropili ikili verileri çok parçalı gövdenin ilk bölümüne yerleştirdi. Bu teknik, birçok WAF/WAAP çözümünün, yanlış pozitifleri önlemek için ikili veri yüklerinin denetimini azalttığı veya atladığı gerçeğinden yararlanır ve böylece takip eden kötü amaçlı içeriğin daha derin analizleri atlamasına olanak tanır.

Bu varyasyonlar, saldırganların hâlihazırda kaçınma stratejileri denediğinin altını çiziyor ve basit imza eşleştirme yerine davranış temelli tespit ihtiyacını güçlendiriyor.
Gizleme Tekniklerine Wallarm Direnci
Wallarm’ın WAAP’ı tüm bu kaçınma yöntemlerine karşı dayanıklıdır. Damga tabanlı saldırı tespiti, statik imza eşleşmesini aşar ve regex tabanlı yaklaşımların performans sorunlarını ortadan kaldırır, büyük veya gizlenmiş yüklerin düşük gecikmeyle hızlı bir şekilde incelenmesine olanak tanır.
Wallarm’ın tescilli damga tabanlı tespiti, basit statik dize eşleştirmesinden daha esnektir ve saldırganlar yükleri değiştirdiğinde veya yeniden düzenlediğinde bile sistemin istismar modellerini tanımasına olanak tanır. Damgalar ayrıca, özellikle birçok kuralın aynı anda değerlendirilmesi gerektiğinde, geleneksel düzenli ifadelerden önemli ölçüde daha hızlı çalışır. Birçok WAF büyük istekleri incelemekte zorlanırken (ya da başarısız olurken), bazıları 64 KB’yi, hatta 8 KB’yi aşan veri yüklerini işleyemiyorken, Wallarm, ağır yük altında minimum gecikmeyi koruyarak büyük ve oldukça karmaşık girdileri verimli bir şekilde işleyecek şekilde tasarlanmıştır.
Buna ek olarak Wallarm, gelen tüm istekleri derinlemesine, özyinelemeli ayrıştırma gerçekleştirerek yapısı veya kodlaması ne olursa olsun her bileşenin analiz edilmesini sağlar. Her parametrede ve iç içe geçmiş öğede damga tabanlı mantık uygulandığından algılama doğruluğu yüksek kalır.
Wallarm aynı zamanda yaygın WAF baypas tekniklerine karşı da oldukça dirençlidir. Çoklu kodlama ve gizleme katmanları, incelemeden önce otomatik olarak normalleştirilir ve kodu çözülür; böylece saldırganların, dönüşüm hileleri yoluyla kötü amaçlı yükleri gizlemesi önlenir.
Son olarak Wallarm, birden fazla API protokolü (REST, GraphQL, SOAP, gRPC ve WebSockets dahil) genelinde kapsamlı kapsam sağlar ve URI, başlıklar, gövde, çok parçalı segmentler ve hatta JWT’ler gibi tüm istek parametrelerini inceleyerek bir yükün nerede tanıtıldığına bakılmaksızın tutarlı koruma sağlar.
Wallarm Tespit Yetenekleri
Wallarm, trafik düzeyinde istismar girişimlerini tespit edip engellemesine rağmen, hem savunmasız örnekleri hem de istismar kanıtlarını ortaya çıkarmak için ek yaklaşımlar kullanır:
- Saldırı Yüzey Yönetimi (AASM): Wallarm filtrelemesi tarafından korunmayanlar da dahil olmak üzere, İnternet’e bakan ana bilgisayarlardaki savunmasız teknolojileri belirlemek için aktif bir tarama yaklaşımı kullanır.
- Pasif Tespit Sistemi: Başarılı yararlanma girişimlerinin göstergelerini tespit etmek için uygulama trafiğini pasif olarak analiz ederek, aksi durumda fark edilmeyebilecek olayların ortaya çıkarılmasına yardımcı olur.

