Exim posta sunucusunda
Varsayılan yapılandırmada, harici adresler için ek kontroller gerçekleştiren "doğrulama = alıcı" ACL uygulandığından, saldırı yerel bir kullanıcı tarafından gereksiz karmaşıklıklar olmadan gerçekleştirilebilir. Başka bir etki alanı için ikincil MX görevi görmek, "verify=recipient" ACL'yi kaldırmak veya local_part_suffix'te belirli değişiklikler yapmak gibi ayarlar değiştirildiğinde uzaktan saldırı meydana gelebilir. Saldırganın sunucuyla bağlantıyı 7 gün boyunca açık tutması durumunda (örneğin, zaman aşımını atlamak için dakikada bir bayt göndermesi) uzaktan saldırı da mümkündür. Aynı zamanda sorunun uzaktan istismarı için daha basit saldırı vektörlerinin olması da mümkündür.
Güvenlik açığı, /src/deliver.c dosyasında tanımlanan Deliver_message() işlevinde alıcının adresinin yanlış doğrulanmasından kaynaklanıyor. Saldırgan, adres formatını değiştirerek, kök haklarına sahip execv() işlevi aracılığıyla çağrılan bir komutun argümanlarına kendi verilerinin yerleştirilmesini sağlayabilir. İşlem, arabellek taşmaları veya bellek bozulması için kullanılan karmaşık tekniklerin kullanılmasını gerektirmez; basit karakter değişimi yeterlidir.
Sorun, adres dönüşümü için yapının kullanılmasıyla ilgilidir:
teslimat_localpart = extend_string(
string_sprintf("${local_part:%s}", yeni->adres));
teslimat_alanı = extend_string(
string_sprintf("${etki alanı:%s}", yeni->adres));
Expand_string() işlevi aşırı karmaşık bir birleştiricidir ve harici bir işleyicinin başlatılmasına yol açan "${run{command argümanları}" komutunu tanımayı içerir. Bu nedenle, bir SMTP oturumu içinde saldırı yapmak için, yerel bir kullanıcının yalnızca 'RCPT TO “kullanıcı adı+${run{...}}@localhost” gibi bir komut göndermesi gerekir; burada localhost, local_domains listesindeki ana bilgisayarlardan biridir, ve kullanıcı adı mevcut bir yerel kullanıcının adıdır.
Sunucu bir posta aktarımı olarak çalışıyorsa, 'RCPT TO "${run{...}}@relaydomain.com" adresine uzaktan komut göndermek yeterlidir; burada rölealanadi.com, aktarıcı_to_domains'de listelenen ana bilgisayarlardan biridir. ayarlar bölümü. Exim varsayılan olarak ayrıcalık modunu bırakmadığından (deliver_drop_privilege = false), "${run{...}}" yoluyla aktarılan komutlar root olarak yürütülecektir.
Güvenlik açığının olması dikkat çekicidir.
Dağıtımlarda kullanılmaya devam eden önceki sürümlere yönelik bir düzeltme şu anda yalnızca şu adreste mevcuttur:
Kaynak: opennet.ru