Sentinel değeri, algoritmalardaki özel bir değerdir ve genellikle döngü veya özyinelemeli işlemlerin sonlanma koşulu olarak kullanılır. Chrome V8 motorunda birden fazla Sentinel değeri bulunmaktadır, eğer JavaScript ortamına sızarsa, kumanda alanından kaçışa neden olabilir. Bu makalede, Uninitialized Oddball nesnesinin sızdırılması yoluyla Chrome V8'in HardenProtect koruma mekanizmasını aşmanın yolları incelenecektir.
V8'de Sentinel Değeri
V8 kaynak kodunda birden fazla yerel nesne tanımlanmıştır ve bunlar bellekte yan yana yer almaktadır. Eğer bu nesneler JavaScript'e sızdırılırsa, sandbox içinde rastgele kod yürütülmesine neden olabilir. Daha önce yapılan araştırmalar, TheHole nesnesinin sızdırılmasının bunu gerçekleştirebileceğini göstermiştir ve bu makalede tartışılan Uninitialized Oddball nesnesi de aynı riski taşımaktadır.
Uninitialized Oddball nesnelerini kullanarak V8'in HardenType korumasını atlamak ve nispeten rastgele okuma/yazma gerçekleştirmek mümkündür. Anahtar nokta, optimize edilmiş JavaScript kodunun dizi elemanlarının türünü kontrol etmemesi, bunun yerine JavaScript anlamına göre kaydırma hesaplaması yaparak değerleri doğrudan okumasıdır; bu da tür karmaşasına yol açar.
x86 mimarisinde, adres sıkıştırması olmadığı için, rastgele okuma ve yazma işlemleri tüm süreçle ilişkilidir. Bu, bazı yazılımlarda ( gibi Skype), saldırganların belirli bellek alanlarını okuma ve yazma işlemlerini gerçekleştirebileceği ve böylece tüm güvenlik açığı sömürü zincirini tamamlayabileceği anlamına geliyor.
Güvenlik Etkisi
Bu güvenlik açığının istismar yönteminin kamuya açıklanması, benzer güvenlik açıklarını istismar etme zorluğunu büyük ölçüde azaltmıştır. Saldırganlar, neredeyse ek bir araştırma yapmadan tam istismar gerçekleştirebilir, bu da henüz düzeltilmemiş birçok yazılım için bir tehdit oluşturur.
Ayrıca, V8'de başka Sentinel değerleri de bulunmaktadır ve bunlar benzer sorunlara yol açabilir. Bu bize şunu hatırlatıyor:
Diğer Sentinel değeri sızıntıları da V8'in uzaktan kod yürütmesini kolayca gerçekleştirebilir mi?
Bu tür sorunlar resmi olarak bir güvenlik açığı olarak listelenmeli mi?
Bulanık testte çeşitli Sentinel değerlerinin değişken olarak test kapsamına alınması göz önünde bulundurulmalı mı?
Her ne olursa olsun, bu tür sorunlar saldırganların tam istismar süresini önemli ölçüde kısaltacaktır, bu da güvenlik araştırmacıları ve geliştiriciler için büyük önem taşımaktadır.
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.
9 Likes
Reward
9
7
Repost
Share
Comment
0/400
GateUser-afe07a92
· 4h ago
Vay canına, v8'de yine bir güvenlik açığı ortaya çıktı.
View OriginalReply0
CryptoCross-TalkClub
· 08-10 04:39
Bu açık, büyük borsalar çökerken zararı durdur seviyeleriyle aynı derecede sahte.
View OriginalReply0
PoetryOnChain
· 08-10 02:07
Yine yine yine bir güvenlik açığı var.
View OriginalReply0
FudVaccinator
· 08-10 02:06
Bir V8 deliği daha, dostlar saldırdı.
View OriginalReply0
MelonField
· 08-10 01:58
Açıklar oldukça ciddi, bu sefer Google mahkum oldu.
Chrome V8 motoru Sentinel Value açığı detayları: Başlatılmamış Oddball nesnesi sızıntısı ve kum havuzundan kaçış
Chrome V8 Motorundaki Sentinel Değeri Açığı
Sentinel değeri, algoritmalardaki özel bir değerdir ve genellikle döngü veya özyinelemeli işlemlerin sonlanma koşulu olarak kullanılır. Chrome V8 motorunda birden fazla Sentinel değeri bulunmaktadır, eğer JavaScript ortamına sızarsa, kumanda alanından kaçışa neden olabilir. Bu makalede, Uninitialized Oddball nesnesinin sızdırılması yoluyla Chrome V8'in HardenProtect koruma mekanizmasını aşmanın yolları incelenecektir.
V8'de Sentinel Değeri
V8 kaynak kodunda birden fazla yerel nesne tanımlanmıştır ve bunlar bellekte yan yana yer almaktadır. Eğer bu nesneler JavaScript'e sızdırılırsa, sandbox içinde rastgele kod yürütülmesine neden olabilir. Daha önce yapılan araştırmalar, TheHole nesnesinin sızdırılmasının bunu gerçekleştirebileceğini göstermiştir ve bu makalede tartışılan Uninitialized Oddball nesnesi de aynı riski taşımaktadır.
V8'in yerel işlevlerini değiştirerek Uninitialized Oddball'ı JavaScript'e sızdırabiliriz. Spesifik yöntem, %TheHole() işlevindeki isolate'e göre kaydırmayı değiştirerek Uninitialized Oddball nesnesini döndürmesini sağlamaktır.
HardenType korumasını atlatma
Uninitialized Oddball nesnelerini kullanarak V8'in HardenType korumasını atlamak ve nispeten rastgele okuma/yazma gerçekleştirmek mümkündür. Anahtar nokta, optimize edilmiş JavaScript kodunun dizi elemanlarının türünü kontrol etmemesi, bunun yerine JavaScript anlamına göre kaydırma hesaplaması yaparak değerleri doğrudan okumasıdır; bu da tür karmaşasına yol açar.
x86 mimarisinde, adres sıkıştırması olmadığı için, rastgele okuma ve yazma işlemleri tüm süreçle ilişkilidir. Bu, bazı yazılımlarda ( gibi Skype), saldırganların belirli bellek alanlarını okuma ve yazma işlemlerini gerçekleştirebileceği ve böylece tüm güvenlik açığı sömürü zincirini tamamlayabileceği anlamına geliyor.
Güvenlik Etkisi
Bu güvenlik açığının istismar yönteminin kamuya açıklanması, benzer güvenlik açıklarını istismar etme zorluğunu büyük ölçüde azaltmıştır. Saldırganlar, neredeyse ek bir araştırma yapmadan tam istismar gerçekleştirebilir, bu da henüz düzeltilmemiş birçok yazılım için bir tehdit oluşturur.
Ayrıca, V8'de başka Sentinel değerleri de bulunmaktadır ve bunlar benzer sorunlara yol açabilir. Bu bize şunu hatırlatıyor:
Diğer Sentinel değeri sızıntıları da V8'in uzaktan kod yürütmesini kolayca gerçekleştirebilir mi?
Bu tür sorunlar resmi olarak bir güvenlik açığı olarak listelenmeli mi?
Bulanık testte çeşitli Sentinel değerlerinin değişken olarak test kapsamına alınması göz önünde bulundurulmalı mı?
Her ne olursa olsun, bu tür sorunlar saldırganların tam istismar süresini önemli ölçüde kısaltacaktır, bu da güvenlik araştırmacıları ve geliştiriciler için büyük önem taşımaktadır.