Görünüşe göre CVE-2018-10933 bugün piyasaya çıktı ve burada libssh'den bir özet bulabilirsiniz burada
Özet:
libssh sürüm 0.6 ve üstü, sunucu kodunda bir kimlik doğrulama baypas güvenlik açığına sahiptir. Sunucunun, sunucunun kimlik doğrulamasını başlatmasını bekleyeceği SSH2_MSG_USERAUTH_REQUEST iletisinin yerine bir SSH2_MSG_USERAUTH_SUCCESS iletisi sunarak, saldırgan kimlik bilgileri olmadan başarılı bir şekilde kimlik doğrulaması yapabilir.
Bunu ve etki alanını daha fazla anlamaya çalışıyorum. Debian, Ubuntu gibi işletim sistemleri SSH için libssh'a güveniyor mu ve eğer öyleyse SSH'yi maruz bırakan her sunucunun bu saldırıya karşı savunmasız olduğu anlamına mı geliyor? Ayrıca, OpenSSH libssh'a mı dayanıyor yoksa iki ayrı uygulama mı? OpenSSH vs libssh aramaya çalıştım ama aradığım şeyi bulamadım. Bu güvenlik açığı SSH için en kötü durum senaryosu gibi geliyor, bu yüzden manşetlere ya da havaya uçmadığına şaşırdım. Bu güvenlik açığının özeti belirsizdir, bu yüzden etki yelpazesine ve hangi senaryolarda endişelenmem gerektiğine dair bir fikir arıyorum.
... OpenSSH libssh'a güveniyor mu?
OpenSSH (çoğu sistemde standart SSH arka plan programıdır) libssh'a güvenmez.
Openssh v.s. aramaya çalıştım libssh ...
Ayrıca, OpenSSH etkilenecekse, bu tür bilgileri açıkça OpenSSH Security hakkında bir sayfası olan OpenSSH resmi sitesinde bulacağınızdan emin olabilirsiniz.
Debian, Ubunutu gibi İşletim Sistemleri SSH için libssh'a güveniyor mu ...
Bakınız libssh'in resmi belgeleri Kimin kullandığı hakkında (en azından): KDE, GitHub ...
Ayrıca kendi işletim sisteminizde hangi mevcut veya yüklü paketlerin libssh'a bağlı olduğunu da kontrol edebilirsiniz. Örneğin. Debian ve benzeri için (örneğin Ubuntu) bu
apt rdepends libssh-4 veya
apt rdepends --installed libssh-4.
Libssh kullanımının ürünün otomatik olarak savunmasız olduğu anlamına gelmediğini unutmayın. İlk olarak, sorun sadece istemci değil SSH sunucusu için libssh kullanırken ilgili gibi görünüyor. Ve sunucu rolünde bile etkilenmez, örneğin Github etkilenmemiş gibi görünüyor sunucu rolünde libssh kullanıyor olsalar da.
Debian, Ubuntu gibi İşletim Sistemleri SSH için libssh'a güveniyor mu ve eğer öyleyse SSH'yi maruz bırakan her sunucunun bu saldırıya karşı savunmasız olduğu anlamına mı geliyor?
Sorunlar libssh kullanan uygulamalarda ortaya çıkabilir. Libssh website : "libssh, SSH protokolünü kullanan bir program yazmanızı sağlayan bir C kütüphanesidir." Bu nedenle, işletim sisteminin kendisi değil, savunmasız olabilecek libssh kütüphanesini kullanan kullanıcı uygulamalarıdır. İşte libssh kullanan bazı uygulamalar (libssh website ):
Ayrıca, OpenSSH libssh'a mı dayanıyor yoksa iki ayrı uygulama mı?
Hayır. Onlar ayrı.
Güncelleme 2018-10-18: Güvenlik açığı bulucu tarafından yazılmış ve ayrıntılı bir açıklama ile kavram kanıtı kodu (Paramiko aracılığıyla) içeren bir blog yazısı artık mevcut .
Bağlantılı blog yazısı, güvenlik açığının paket işleme dağıtım tablosundaki (libssh\src\packet.c dosyasındaki) kodun sunucular için bile SSH2_MSG_USERAUTH_SUCCESS yürütme işleyicilerini yürütmesinden kaynaklandığı gerçeğini açıklar (bu tür bir iletinin yalnızca müşteriler tarafından işlenir). Kodun daha ayrıntılı incelenmesi, libssh\src\auth.c dosyasındaki iletinin bu tür hatalı işlemenin sunucunun oturum durumunu kimlik doğrulamasına değiştirmesine neden olduğunu gösterir!
python Paramiko'nun SSH2_MSG_USERAUTH_SUCCESS mesajını bir SSH2_MSG_USERAUTH_REQUEST mesajı göndermek ve güvenlik açığından yararlanmak için güncellenebileceğini gösteren ayrıntılı bir kavram kanıtı kodu da mevcuttur.
Ancak, blog yayını şunları da belirtir:
"Tüm libSSH sunucularının kimlik doğrulama baypasına karşı savunmasız kalması gerekmeyecektir; kimlik doğrulama baypası, herhangi bir kayıtlı kimlik doğrulama geri çağrısı yürütme fırsatı vermeden dahili libSSH durum makinesini kimlik doğrulamasına ayarladığından, ek özel oturum durumunu koruyan libSSH kullanılarak geliştirilen sunucular başarısız olabilir bu durum oluşturulmadan bir kullanıcının kimliği doğrulanırsa düzgün çalışmasını "
Bir uygulamanın bağımlılıklarını komut satırı üzerinden görüntülemek için aşağıdaki komutu çalıştırabilirsiniz:
ldd/usr/sbin/ssh
Bu, söz konusu başvurunun herhangi bir bağımlılığını gösterecektir. Bu komut yürütüldüğünde libssh, libssh'ın OpenSSH'nin bir parçası olmadığı anlamına gelmez.