CVE-2022-39369
Açıklama
phpCAS, PHP uygulamalarının bir Merkezi Kimlik Doğrulama Servisi (CAS) sunucusu aracılığıyla kullanıcıları kolayca kimlik doğrulamasına olanak tanıyan bir kimlik doğrulama kütüphanesidir. phpCAS kütüphanesi, biletleri doğrulamak için kullanılan servis URL'sini belirlemek amacıyla HTTP başlıklarını kullanır. Bu durum, bir saldırganın host başlığını kontrol etmesine ve aynı SSO alanındaki (CAS sunucusu) herhangi bir yetkili servis için verilmiş geçerli bir bileti, phpCAS tarafından korunan serviste kimlik doğrulaması yapmak için kullanmasına izin verir. CAS sunucu servis kayıt ayarları nedeniyle, en kötü durumda bu herhangi bir servis URL'si olabilir (izin verilen URL'ler "^(https)://.*" olarak yapılandırılmışsa) veya uygun URL servis doğrulaması uygulanmışsa, aynı SSO federasyonundaki bilinen ve yetkilendirilmiş servislerle kesin olarak sınırlandırılabilir. Bu güvenlik açığı, mağdurun aynı CAS sunucusunda oturum açmış haldeyken saldırganın web sitesini ziyaret etmesi durumunda, saldırganın mağdurun bilgisi olmadan savunmasız bir CASified servis üzerindeki hesabına erişim sağlamasına neden olabilir. phpCAS 1.6.0, PHP'de maalesef %100 güvenli bir varsayılan yapılandırmanın bulunmaması nedeniyle servis URL keşfi doğrulamasını zorunlu kılmaya başlayan büyük bir sürüm yükseltmesidir. Bu sürümden itibaren, istemci sınıfı oluşturulurken ek bir servis temel URL argümanının iletilmesi gerekmektedir. Daha fazla bilgi için lütfen yükseltme dokümanına bakın. Bu güvenlik açığı yalnızca phpCAS kütüphanesinin koruduğu CAS istemcisini etkiler. phpCAS < 1.6.0 sürümlerindeki sorunlu servis URL keşif davranışı, yalnızca aşağıdaki phpCAS yapılandırmaları mevcutsa devre dışı kalacaktır ve dolayısıyla bundan etkilenmezsiniz: 1. `phpCAS::setUrl()` çağrılmışsa (servis temel URL'niz yerine mevcut sayfanın tam URL'sini iletmeniz gerektiğini hatırlatırız) ve 2. Proxy modu etkin olduğunda `phpCAS::setCallbackURL()` çağrılmışsa. 3. Eğer PHP'nin `X-Forwarded-Host`, `X-Forwarded-Server`, `Host`, `X-Forwarded-Proto`, `X-Forwarded-Protocol` HTTP başlık girişleri PHP'ye ulaşmadan önce (örneğin bir ters proxy tarafından) temizleniyorsa, bu güvenlik açığından etkilenmezsiniz. CAS sunucu servis kaydınız yalnızca bilinen ve güvenilir servis URL'lerine izin verecek şekilde yapılandırılmışsa, saldırganın başka bir yetkili servisi kontrol etmesi gerektiğinden, güvenlik açığının ciddiyeti önemli ölçüde azalır. Aksi takdirde, güvenli servis keşif davranışını elde etmek için kütüphaneyi yükseltmelisiniz.
Nasıl düzeltilir
- apereo phpcas1.6.0 ya da sonraki bir sürüm
- apereo/phpcas1.6.0 ya da sonraki bir sürüm
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/RUA2JM6YT3ZXSZLBJVRA32AXYM3GJMO3/
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/2XL7SMW6ESSP2Y6HHRYWW2MMCZSI4LBZ/
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/VJZGTWJ5ZXUUT47EHARNOUUNTH6SYDSE/
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| apereo phpcas | v < 1.6.0 | 1.6.0 |
| fedoraproject fedora | 35, 36, 37 | — |
| apereo/phpcasPackagist | v < 1.6.0 | 1.6.0 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.