- Updated: December 4, 2025
- 6 min read
JavaScriptCore Güvenlik Analizi ve Koruma Yöntemleri
JavaScriptCore (JSC) güvenliği, JIT derleyicisi katmanları ve yan etki modelleme mekanizmalarını anlamak, potansiyel uzaktan kod yürütme (RCE) açıklarını tespit etmek ve önlemek için kritik bir adımdır.
JavaScriptCore Güvenlik Analizi: Mimari, Yan Etkiler ve CodeQL Keşifleri

Kaynak: CyberArk Threat Research Blog
1. Giriş – Konu Tanıtımı
Safari, Mail ve App Store gibi macOS ve iOS uygulamalarının temelini oluşturan JavaScriptCore (JSC), JavaScript kodlarını çalıştıran bir sanal makinedir. JSC’nin karmaşık Just‑In‑Time (JIT) derleyicisi, yüksek performans sağlarken aynı zamanda güvenlik açıkları için bir saldırı yüzeyi oluşturur. Bu makalede, JSC’nin mimarisini, JIT katmanlarını, yan etki modellemesini ve CyberArk’ın orijinal blog yazısındaki bulgularını temel alarak CodeQL ile nasıl keşif yapılacağını inceleyeceğiz.
UBOS homepage üzerinden sunulan UBOS platform overview gibi çözümler, güvenlik araştırmacılarının ve geliştiricilerin bu tür analizleri otomatikleştirmesine olanak tanır.
2. JavaScriptCore Mimarısi ve JIT Katmanları
JSC, kaynak kodunu lexing, parsing ve bytecode üretimine dönüştüren bir dizi aşamadan geçirir. Bu aşamalar aşağıdaki gibi sınıflandırılabilir:
- Lexing (Lexer.cpp): Kaynak kodunu token’lara ayırır.
- Parsing (JSParser.cpp): Token’ları soyut sözdizim ağacına (AST) dönüştürür.
- Low‑Level Interpreter (LLInt): AST’den bytecode üretir.
JSC’nin JIT katmanları, sık kullanılan kodları native makine koduna dönüştürerek performansı artırır. Dört katman şu şekildedir:
- LLInt – Bytecode yürütme.
- Baseline JIT – Şablon‑tabanlı native kod üretimi (500 yürütme sayısı).
- Data Flow Graph (DFG) JIT – Veri akış grafiği üzerinden optimizasyon (1.000 yürütme).
- Faster‑than‑Light (FTL) JIT – En agresif optimizasyonlar (100.000 yürütme).
Bu katmanların dinamik geçişleri, execution counter adı verilen bir sayaçla kontrol edilir. Katman yükseldikçe, JSC daha az kontrol ve daha fazla spekülasyon yapar; bu da yan etki modellemesinde kritik bir rol oynar.
Enterprise AI platform by UBOS, JIT profillerini izlemek ve anormallikleri tespit etmek için özelleştirilebilir izleme panelleri sunar.
3. Yan Etki Modelleme ve Güvenlik Açıkları
JavaScript, yan etkiler (side effects) üretme yeteneğiyle bilinir; bir ifade başka bir değişkenin durumunu değiştirebilir. JSC, bu yan etkileri DFGAbstractInterpreterInlines.h dosyasındaki executeEffects fonksiyonunda modellemeye çalışır. Yan etki modellemesindeki hatalar, redundancy elimination gibi optimizasyonların yanlış kararlar almasına yol açar ve saldırganların RCE elde etmesine imkan tanır.
Örneğin, instanceof operatörünün yan etkileri doğru şekilde modellenmediğinde, bir Proxy nesnesi üzerinden getPrototypeOf çağrısı tetiklenerek kötü amaçlı kod yürütülebilir. Bu durum, ChatGPT and Telegram integration gibi entegrasyonların güvenliğini doğrudan etkiler; bir saldırgan, kötü amaçlı bir bot aracılığıyla JSC’nin yan etki modelini manipüle edebilir.
Yan etki modelleme hatalarının tipik örnekleri:
- Yan etkisiz olarak işaretlenen
ValueAddgibi aritmetik işlemler. - Proxy nesneleri üzerinden
toStringveyavalueOfmetodlarının tetiklenmesi. - OSR (On‑Stack Replacement) sırasında tier düşüşüyle ilgili hatalı guard kaldırma.
Bu açıkların tespiti, OpenAI ChatGPT integration gibi AI tabanlı analiz araçlarıyla otomatikleştirilebilir.
4. CodeQL ile Keşif Örnekleri
CodeQL, statik analizde güçlü bir sorgulama dilidir. JSC’nin executeEffects fonksiyonundaki yan etki modellemelerini incelemek için aşağıdaki adımlar izlenebilir:
- Veri tabanı oluşturma: WebKit kaynak kodu
codeql database createkomutuyla analiz veritabanına dönüştürülür. - ClobberWorld çağrılarını tespit etme:
FunctionCallsınıfını genişleterekclobberWorldaraması yapılır. - Opcode‑bazlı eşleştirme: Her
clobberWorldçağrısı, ilgili opcode (ör.ValueAdd,InstanceOf) ile ilişkilendirilir. - Yan etki koşullarını analiz etme:
strictveloosetip kısıtlamaları çıkarılarak, yan etki yaratabilecek durumlar belirlenir. - Sonuçları raporlama: Potansiyel açıklar tablo halinde sunulur; örnek bir tablo aşağıda gösterilmiştir.
| Opcode | Yan Etki Durumu | Örnek Açık (CVE) |
|---|---|---|
| InstanceOf | Proxy getPrototypeOf tetiklenebilir | CVE‑2018‑4233 |
| CreateThis | Yan etki eksikliği | CVE‑2018‑4245 |
Bu sorgular, Chroma DB integration ile sonuçları vektör veri tabanına kaydedip, benzer açıkların zaman içinde izlenmesini sağlar.
Ayrıca, ElevenLabs AI voice integration gibi sesli asistan çözümlerinde, JSC’nin yan etki modellemesi hataları ses komutları üzerinden tetiklenebilir; bu yüzden güvenlik testleri sesli girdileri de kapsamalıdır.
5. Sonuç ve Öneriler
JavaScriptCore, modern tarayıcıların performans kalbinde yer alırken, JIT katmanları ve yan etki modellemesi güvenlik açısından hassas noktalardır. Bu makalede özetlenen bulgular, aşağıdaki önerileri desteklemektedir:
- Statik analiz entegrasyonu: CodeQL gibi araçları CI/CD pipeline’ına ekleyerek, her kod değişikliğinde yan etki modelleme hataları otomatik taranmalıdır.
- JIT profil izleme: Workflow automation studio ile JIT katman geçişlerini gerçek zamanlı izleyin ve anormal sayım artışlarını alarm olarak ayarlayın.
- Güvenli entegrasyon tasarımı: Telegram integration on UBOS ve OpenAI ChatGPT integration gibi dış sistemlerle etkileşimde, veri tiplerinin sıkı kontrolü ve
clobberWorldgibi kritik fonksiyonların izole edilmesi gerekir. - Patch yönetimi: JSC’nin yeni sürümlerini düzenli olarak takip edin; özellikle FTL JIT optimizasyonları ve DFG guard iyileştirmeleri güvenlik risklerini azaltır.
- Eğitim ve farkındalık: Geliştiricilere yan etki modellemesinin önemi ve örnek exploit senaryoları hakkında eğitim verin.
UBOS ekosistemi, bu önerileri hayata geçirmek için UBOS pricing plans altında farklı seviyelerde güvenlik‑odaklı paketler sunar. Özellikle AI marketing agents ve Web app editor on UBOS ile güvenli kod üretimi ve otomatik test senaryoları oluşturulabilir.
6. Kaynak Linkleri
Aşağıda, bu makalede referans verilen tüm iç ve dış kaynakların listesi yer almaktadır:
JavaScriptCore güvenliğini artırmak ve AI‑destekli analizlerle kod kalitenizi yükseltmek için UBOS platformunu keşfedin.
Andrii Bidochko
CTO UBOS
Andrii Bidochko is an AI entrepreneur and researcher focused on AI agents, reinforcement learning, and autonomous systems. He writes about the technologies shaping the future of machine intelligence, from frontier models and agent architectures to real-world AI applications.