- Son 7 gün
- CWE-1321
CVE-2026-114604
GraphQL Tools mergeIncrementalResult fonksiyonunda prototip kirliliği (prototype pollution)
- Yayımlandı
- Güncellendi
- 6 Kas 2026
- Açık yaşı
- 0 gün
- Kaydı açan
- GitHub_M
Yönetici özeti
Bu açık, GraphQL veri işleme kütüphanesini kullanan uygulamaların saldırganın kontrolündeki veriyle manipüle edilmesine yol açabilir. Etkilenen sistemler güvenilmeyen veri kaynaklarını işliyorsa risk yüksektir. Kütüphanenin güncellenmesi bu riski ortadan kaldırmak için acil bir öncelik olmalıdır.
ÖzetTürkçe
GraphQL Tools kütüphanesindeki @graphql-tools/utils paketinde yer alan mergeIncrementalResult yardımcı fonksiyonu, incrementalResult.path parçalarını tip doğrulaması yapmadan setObjectKeyPath fonksiyonuna iletmektedir. Sürüm 10.10.1 ile 12.0.2 arasındaki sürümler etkilenmektedir. Bu kusur, @defer veya @stream taşıma sonuçlarını güvenilmeyen kaynaklardan birleştiren uygulamalarda ortaya çıkmaktadır.
Saldırgan ne yapabilir?
Saldırgan, kötü amaçlı ya da ele geçirilmiş bir üst akış GraphQL yanıtı aracılığıyla Node.js sürecindeki Object.prototype nesnesine kendi kontrolündeki özellikleri yazabilir. Bu da uygulamanın beklenmeyen davranışlar göstermesine ve kimlik doğrulama ya da yetkilendirme mantığının etkilenmesine yol açabilir.
Kaynaktaki açıklama (İngilizce)
GraphQL Tools provides utilities for building, stitching, and mocking GraphQL schemas. From 10.10.1 until 12.0.2, the @graphql-tools/utils mergeIncrementalResult helper passes incrementalResult.path segments to setObjectKeyPath without runtime primitive-type validation. A non-primitive segment can bypass strict comparisons against __proto__, constructor, and prototype, then be coerced during property access so a malicious or compromised upstream incremental GraphQL response writes attacker-controlled properties to Object.prototype in the consuming Node.js process. The affected implementation is packages/utils/src/mergeIncrementalResult.ts and is reachable when consumers merge untrusted @defer or @stream transport results. This issue is fixed in version 12.0.2.
Ne yapmalı?
- GraphQL Tools kütüphanesini 12.0.2 veya daha yeni bir sürüme yükseltin. Genel öneri
- Uygulamanın bağımlılık ağacını kontrol ederek @graphql-tools/utils paketinin etkilenen sürüme inmediğinden emin olun ve güncellemeyi yeniden dağıtın. Genel öneri
Ek önlemler
- @defer veya @stream ile gelen artımlı yanıtların güvenilir kaynaklardan geldiğini doğrulayın ve dış kaynaklı yanıtları yalnızca gerekli olduğu durumlarda işleyin. Genel öneri
- Node.js uygulamalarında Object.prototype üzerinde beklenmeyen özellik eklenmelerini izleyen kontrolleri veya test adımlarını CI sürecine dahil edin. Genel öneri
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| ardatan graphql-tools | Sürüm belirtilmemiş | – |
Kaynaklar7 kaynak
- CVE.org kaydı
- NVD kaydı
- github.com/…-tools/security/advisories/GHSA-c4qx-w738-7hr3 Diğer
- github.com/ardatan/graphql-tools/pull/8467 Diğer
- github.com/…ommit/19f5b3373fd7ace0688d19950fc529ce8347952a Diğer
- github.com/…ommit/20d36a5c6eb8fd5524420988e01a48618c450d70 Diğer
- github.com/…tools/releases/tag/@graphql-tools/utils@12.0.2 Diğer
Kayıt geçmişi
- Yayımlandı
İlgili açıklar
Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.