Chrome V8 motorundaki Sentinel Değerinin güvenlik risklerini keşfetme
Sentinel değeri, algoritmalarda genellikle döngü veya özyinelemeli algoritmaların sonlandırma koşulu olarak kullanılan özel bir değerdir. Chrome kaynak kodunda çeşitli Sentinel değerleri bulunmaktadır ve bunların bazıları güvenlik açıklarına neden olabilir. Bu makalede, Uninitialized Oddball nesnesinin sızdırılması yoluyla Chrome V8 motorunun HardenProtect koruma mekanizmasının nasıl aşılacağını tartışacağız.
V8'deki Sentinel Değeri
V8 motorunda birden fazla yerel nesne tanımlanmıştır ve bu nesneler bellekte sırasıyla yan yana yerleştirilmiştir. JavaScript'e sızdırılmaması gereken yerel nesnelerin sızdırılması, sandbox içindeki herhangi bir kodun çalıştırılmasına neden olabilir.
HardenType korumasını aşmak
V8'in yerel fonksiyonlarını değiştirerek, Uninitialized Oddball nesnelerini JavaScript'e sızdırabilirsiniz. Bu sızdırılan nesneyi kullanarak, HardenType korumasını aşmak için nispeten rastgele okuma/yazma işlemleri gerçekleştirebilirsiniz.
Spesifik uygulama yöntemi şudur:
%TheHole() fonksiyonunu, Uninitialized Oddball nesnesini döndürecek şekilde değiştirin.
Özel JavaScript kodu oluşturun, optimize edilmiş fonksiyondaki dizi map kontrolünün eksikliğinden yararlanarak, kaydırmayı doğrudan hesaplayıp dizi değerlerini döndürün.
Tür karıştırma yoluyla, rastgele okuma ve yazma gerçekleştirin.
PatchGap risk uyarısı
Bu geçiş yöntemi sadece en son V8 sürümüne değil, aynı zamanda eski V8 sürümü kullanan yazılımları da etkileyebilir. Örneğin, Skype bu açığı hala düzeltmemiştir. x86 mimarisinde, adres sıkıştırmasının olmaması nedeniyle, rastgele okuma-yazma aralığı daha büyük olabilir.
Ayrıca, bu yeni geçiş yöntemi, Issue1314616 ve Issue1216437 gibi diğer ilgili açıkların istismar zorluklarını da azaltabilir.
Özet ve Düşünceler
V8'de başka çeşitli Sentinel değerleri de bulunmaktadır ve bunlar da güvenlik riski taşıyabilir. Gelecekteki araştırma yönleri şunları içerebilir:
Diğer Uninitialized Oddball sızıntılarını keşfedin, bunlar V8'in RCE'sini de gerçekleştirebilir mi?
Daha fazla potansiyel istismar bulmak için Sentinel değerini değişken olarak fuzz testine dahil etmeyi düşünün.
Bu tür sorunların resmi olarak güvenlik sorunu olarak kabul edilip edilmeyeceğine dikkat edin ve bunun hackerların tam istismar döngüsünü kısaltma üzerindeki etkisini değerlendirin.
Bu tür sorunlar resmi olarak güvenlik sorunları olarak sınıflandırılsa da sınıflandırılmasa da, bir hacker'ın tam bir yarar sağlama süresini büyük ölçüde kısaltabilir. Bu nedenle, Sentinel value ile ilgili güvenlik konularına sürekli dikkat etmek ve araştırma yapmak son derece önemlidir.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
17 Likes
Reward
17
6
Share
Comment
0/400
AirdropSweaterFan
· 07-08 03:03
Yine v8'in deliği mi? Geçen ay bir sürü tamir ettik.
View OriginalReply0
HashBard
· 07-05 03:39
omg v8'in sentinelleri şiir gibi... kırık olanlar tüm sırları döker fr fr
View OriginalReply0
RetiredMiner
· 07-05 03:38
Bu hatayı gözlerimi kapatsam bile bir exp yazabilirim.
Chrome V8 motoru Sentinel Değeri güvenlik açığı analizi ve kullanımı
Chrome V8 motorundaki Sentinel Değerinin güvenlik risklerini keşfetme
Sentinel değeri, algoritmalarda genellikle döngü veya özyinelemeli algoritmaların sonlandırma koşulu olarak kullanılan özel bir değerdir. Chrome kaynak kodunda çeşitli Sentinel değerleri bulunmaktadır ve bunların bazıları güvenlik açıklarına neden olabilir. Bu makalede, Uninitialized Oddball nesnesinin sızdırılması yoluyla Chrome V8 motorunun HardenProtect koruma mekanizmasının nasıl aşılacağını tartışacağız.
V8'deki Sentinel Değeri
V8 motorunda birden fazla yerel nesne tanımlanmıştır ve bu nesneler bellekte sırasıyla yan yana yerleştirilmiştir. JavaScript'e sızdırılmaması gereken yerel nesnelerin sızdırılması, sandbox içindeki herhangi bir kodun çalıştırılmasına neden olabilir.
HardenType korumasını aşmak
V8'in yerel fonksiyonlarını değiştirerek, Uninitialized Oddball nesnelerini JavaScript'e sızdırabilirsiniz. Bu sızdırılan nesneyi kullanarak, HardenType korumasını aşmak için nispeten rastgele okuma/yazma işlemleri gerçekleştirebilirsiniz.
Spesifik uygulama yöntemi şudur:
PatchGap risk uyarısı
Bu geçiş yöntemi sadece en son V8 sürümüne değil, aynı zamanda eski V8 sürümü kullanan yazılımları da etkileyebilir. Örneğin, Skype bu açığı hala düzeltmemiştir. x86 mimarisinde, adres sıkıştırmasının olmaması nedeniyle, rastgele okuma-yazma aralığı daha büyük olabilir.
Ayrıca, bu yeni geçiş yöntemi, Issue1314616 ve Issue1216437 gibi diğer ilgili açıkların istismar zorluklarını da azaltabilir.
Özet ve Düşünceler
V8'de başka çeşitli Sentinel değerleri de bulunmaktadır ve bunlar da güvenlik riski taşıyabilir. Gelecekteki araştırma yönleri şunları içerebilir:
Bu tür sorunlar resmi olarak güvenlik sorunları olarak sınıflandırılsa da sınıflandırılmasa da, bir hacker'ın tam bir yarar sağlama süresini büyük ölçüde kısaltabilir. Bu nedenle, Sentinel value ile ilgili güvenlik konularına sürekli dikkat etmek ve araştırma yapmak son derece önemlidir.