Zamieszczone przez nahi 2013-06-27
Tłumaczone przez mlen
Luka bezpieczeństwa w kliencie SSL Ruby może umożliwić ataki man-in-the-middle, co pozwala atakującemu podszyć się pod domenę korzystając z poprawnego certyfikatu wydanego przez zaufany urząd certyfikacji.
Luce został przydzielony identyfikator CVE-2013-4073.
Podsumowanie
Klient SSL Ruby implementuje sprawdzenie tożsamości nazwy hosta, jednak niepoprawnie zachowuje się w przypadku, gdy nazwy hostów zawierają zerowe bajty.
Szczegóły
OpenSSL::SSL.verify_certificate_identity
implementuje sprawdzenie tożsamości
serwera opisane w RFC2818 dla klienta SSL Ruby, jednak niepoprawnie obsługuje
nazwy hostów w polu subjectAltName rozszerzenia X509, które zawierają zerowe
bajty.
Istniejący kod w lib/openssl/ssl.rb
wykorzystuje metodę
OpenSSL::X509::Extension#value
aby odczytać tożsamość z pola subjectAltName.
Metoda ta polega na funkcji X509V3_EXT_print()
zawartej w OpenSSL, która
aby odczytać dNSName z subjectAltName korzysta z funkcji sprintf()
, która nie
obsługuje poprawnie bajtów zerowych. W rezultacie metoda Extension#value
zwraca ‘www.ruby-lang.org’, jeśli subjectAltName w rzeczywistości zawiera
‘www.ruby-lang.org\0.example.com’ oraz
OpenSSL::SSL.verify_certificate_identity
niepoprawnie uznaje, że certyfikat
należy do domeny ‘www.ruby-lang.org’.
Jeśli urząd certyfikacji, któremu ufa klient pozwoli wydać certyfikat zawierający zerowy bajt w polu subjectAltName, atakujący może uzyskać certyfikat dla ‘www.ruby-lang.org\0.example.com’, aby podszyć się pod ‘www.ruby-lang.org’ i wykonać ataki typu man-in-the-middle między klientem Ruby, a serwerem SSL.
Dotyczy wersji
- wszystkich wersji ruby 1.8 wcześniejszych niż 1.8.7 patchlevel 374
- wszystkich wersji ruby 1.9 wcześniejszych niż 1.9.3 patchlevel 448
- wszystkich wersji ruby 2.0 wcześniejszych niż 2.0.0 patchlevel 247
- wcześniejszych niż rewizja trunk 41671
Rozwiązanie
Zaleca się, aby wszyscy użytkownicy zainstalowali wersję Ruby 2.0.0-p247, 1.9.3-p448 lub 1.8.7-p374.
Podziękowania
Podatność ta została znaleziona przez Williama (B.J.) Snowa Orvisa oraz skoordynowana z security@ruby-lang.org przez Davida Thiela z iSEC Partners.
Historia
- Opublikowane 2013-06-27 11:00:00 (UTC)