CVE-2023-42456
Açıklama
Sudo-rs, sudo ve su'nun bellek güvenli bir uygulamasıdır ve kullanıcıların her sudo denemesinde kimlik doğrulaması yapmasına gerek kalmamasını, bunun yerine yalnızca her terminalde veya süreç grubunda ara sıra kimlik doğrulaması yapmasını sağlar. Kullanıcının yeniden kimlik doğrulaması yapması ancak yapılandırılabilir bir zaman aşımı geçtikten sonra gerekli olur. Bu işlevselliği destekleyen, her kullanıcı için `/var/run/sudo-rs/ts` içinde saklanan bir dizi oturum dosyası (zaman damgaları) bulunur. Bu dosyalar, sudo denemesinin yapıldığı kullanıcı adına (kaynak kullanıcı) göre adlandırılır. 0.2.1 öncesi sürümlerde, `.` ve `/` karakterlerini içeren kullanıcı adlarının dosya sistemindeki belirli dosyaların bozulmasına yol açabildiği bir sorun keşfedildi. Kullanıcı adları genellikle içerebilecekleri karakterlerle sınırlı olmadığından, göreli bir yol gibi görünen bir kullanıcı adı oluşturulabilir. Örneğin, sisteme `../../../../bin/cp` kullanıcı adını içeren bir kullanıcı ekleyebiliriz. Bu ada sahip bir kullanıcı olarak oturum açıldığında, o kullanıcı oturum kayıt dosyasını temizlemek için `sudo -K` çalıştırabilir. Oturum kodu daha sonra kullanıcı adını oturum dosyası depolama dizinine birleştirerek oturum dosyasının yolunu oluşturur ve sonuçta `/bin/cp` çözümlenmiş yolu elde edilir. Kod daha sonra bu dosyayı temizler ve sonuç olarak `cp` ikili dosyası sistemden etkin biçimde kaldırılır. Bir saldırganın, oluşturulmuş bir kullanıcı adına sahip bir kullanıcı olarak oturum açabilmesi gerekir. Böyle bir kullanıcı adının mevcut bir sistemde bulunması olası olmadığından, ayrıca oluşturulmuş kullanıcı adlarıyla kullanıcıları oluşturabilmesi de gerekir. Sorun, sudo-rs'nin 0.2.1 sürümünde yamalandı. Sudo-rs artık dosya adını belirlemek için kullanıcının kullanıcı adı yerine uid'sini kullanıyor. Bu sürüme yükseltmenin, mevcut oturum dosyalarının yok sayılmasına ve kullanıcıların yeniden kimlik doğrulaması yapmaya zorlanmasına yol açacağını unutmayın. Ayrıca, uid'ler her zaman tamsayı değerler olduğundan, yol geçişi olasılığını tamamen ortadan kaldırır. `sudo -K` ve `sudo -k` komutları, bir kullanıcının sudo erişimi olmasa bile çalışabilir. Geçici bir çözüm olarak, sistemde özel olarak hazırlanmış bir kullanıcı adına sahip hiçbir kullanıcının bulunmadığından emin olun. Bu durum geçerli olduğu ve güvenilmeyen kullanıcıların sistemde rastgele kullanıcılar oluşturma yeteneği olmadığı sürece, bu sorunun istismar edilememesi gerekir.
Nasıl düzeltilir
- memorysafety sudo0.2.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| memorysafety sudo | v < 0.2.1 | 0.2.1 |
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.