- Son 7 gün
- CWE-200
- CWE-522
CVE-2026-121971
Symfony HttpClient: ScopingHttpClient kimlik bilgilerini farklı kaynaklara gönderebiliyor
- Yayımlandı
- Güncellendi
- 4 Kas 2026
- Açık yaşı
- 1 gün
- Kaydı açan
- Checkmarx
Yönetici özeti
Bu açık, uygulamanın dış sistemlere yaptığı kimliklendirilmiş isteklerdeki gizli erişim bilgilerinin saldırgan kontrolündeki bir sunucuya sızmasına neden olabilir. Sızan bilgiler, bağlı sistemlere yetkisiz erişim sağlayabilir. Etkilenen sürümler kullanılıyorsa güncelleme önceliği yüksektir.
ÖzetTürkçe
Symfony HttpClient bileşenindeki ScopingHttpClient, varsayılan kapsamın kimlik doğrulama seçeneklerini (auth_bearer veya auth_basic gibi) göreli bir URL'yi base_uri'ye göre çözümlemeden önce isteğe ekliyor. Bu nedenle "//evil.example/steal" gibi ağ yolu referansları, kimlik bilgileriyle birlikte başka bir kaynağa gönderilebiliyor. Etkilenen sürümler: 5.x (5.4.56 öncesi), 6.x (6.4.50 öncesi), 7.x (7.4.23 öncesi) ve 8.x (8.1.11 öncesi).
Saldırgan ne yapabilir?
Saldırgan, kontrol ettiği bir sunucuya yönlendirilen isteklerle uygulamanın kimlik bilgilerini ele geçirebilir. Bu durum, kimlik doğrulama için kullanılan token veya parolanın sızmasına yol açabilir.
Kaynaktaki açıklama (İngilizce)
The component ScopingHttpClient in Symfony HttpClient merges the options of its default scope (such as auth_bearer or auth_basic) into a request before resolving a relative URL against the base_uri, allowing a network-path reference such as "//evil.example/steal" to be sent to another origin together with the default scope’s credentials, and resulting in potential disclosure of those credentials to an attacker-controlled server. This affects Symfony in versions 5.x prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11.
The resolved URL falls outside the origin of the base URI, yet it keeps the merged options, whereas the absolute spelling "https://evil.example/steal" receives none. The same happens with a different port or user-info part on the same host.
This is reachable whenever an attacker controls the beginning of a URL passed to a client built with a base_uri and credentials, including those created with HttpClient::createForBaseUri() or configured under framework.http_client.scoped_clients.
To solve the issue, after resolving a relative URL against the base URI of the default scope, ScopingHttpClient now compares the scheme and authority of the result with those of the base URI, parsed the way the request is sent.
Ne yapmalı?
- Symfony'yi, sürüm dalınıza uygun düzeltilmiş sürüme yükseltin: 5.4.56, 6.4.50, 7.4.23 veya 8.1.11 ve sonrası. Genel öneri
- Uygulamanızda kullanılan Symfony sürümünü kontrol edin ve güncellemeden sonra bağımlılıkları yeniden yükleyip uygulamayı test edin. Genel öneri
- Güncelleme yapamıyorsanız, saldırganın kontrol edebileceği URL'lerin HttpClient isteklerinde kullanılmadığından emin olun ve kimlik bilgilerini mümkünse daha dar kapsamlı ve kısa ömürlü olanlarla değiştirin. Genel öneri
Ek önlemler
- Kimlik bilgilerinin sızmış olabileceğini varsayarak, kullanılan token ve parolaları yenileyin. Genel öneri
- Dış isteklerin hedef sunucularını izleyin ve beklenmeyen alan adlarına giden istekleri inceleyin. Genel öneri
- Kullanıcıdan gelen verilerin istemci tarafından oluşturulan URL'lerin başına eklenmesini engelleyin ve URL'leri beyaz liste ile doğrulayın. Genel öneri
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| sensiolabs symfony | Sürüm belirtilmemiş | – |
Kaynaklar4 kaynak
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.