Skip to content

Commit 528eb61

Browse files
committed
Merge pull request ruby#206 from mlen/master
[pl] Translated latest security advisory
2 parents 741c781 + 91d5496 commit 528eb61

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
layout: news_post
3+
title: "Luka pozwalająca na ominięcie sprawdzenia nazwy hosta w kliencie SSL (CVE-2013-4073)"
4+
author: "nahi"
5+
translator: "mlen"
6+
date: 2013-06-27 11:00:00 UTC
7+
lang: pl
8+
---
9+
10+
Luka bezpieczeństwa w kliencie SSL Ruby może umożliwić ataki man-in-the-middle,
11+
co pozwala atakującemu podszyć się pod domenę korzystając z poprawnego
12+
certyfikatu wydanego przez zaufany urząd certyfikacji.
13+
14+
Luce został przydzielony identyfikator CVE-2013-4073.
15+
16+
## Podsumowanie
17+
18+
Klient SSL Ruby implementuje sprawdzenie tożsamości nazwy hosta, jednak
19+
niepoprawnie zachowuje się w przypadku, gdy nazwy hostów zawierają zerowe
20+
bajty.
21+
22+
## Szczegóły
23+
24+
`OpenSSL::SSL.verify_certificate_identity` implementuje sprawdzenie tożsamości
25+
serwera opisane w RFC2818 dla klienta SSL Ruby, jednak niepoprawnie obsługuje
26+
nazwy hostów w polu subjectAltName rozszerzenia X509, które zawierają zerowe
27+
bajty.
28+
29+
Istniejący kod w `lib/openssl/ssl.rb` wykorzystuje metodę
30+
`OpenSSL::X509::Extension#value` aby odczytać tożsamość z pola subjectAltName.
31+
Metoda ta polega na funkcji `X509V3_EXT_print()` zawartej w OpenSSL, która z
32+
aby odczytać dNSName z subjectAltName korzysta z funkcji `sprintf()`, która nie
33+
obsługuje poprawnie bajtów zerowych. W rezultacie metoda `Extension#value`
34+
zwraca 'www.ruby-lang.org', jeśli subjectAltName w rzeczywistości zawiera
35+
'www.ruby-lang.org\0.example.com' oraz
36+
`OpenSSL::SSL.verify_certificate_identity` niepoprawnie uznaje, że certyfikat
37+
należy do domeny 'www.ruby-lang.org'.
38+
39+
Jeśli urząd certyfikacji, któremu ufa klient pozwoli wydać certyfikat
40+
zawierający zerowy bajt w polu subjectAltName, atakujący może uzyskać
41+
certyfikat dla 'www.ruby-lang.org\0.example.com', aby podszyć się pod
42+
'www.ruby-lang.org' i wykonać ataki typu man-in-the-middle między klientem
43+
Ruby, a serwerem SSL.
44+
45+
## Dotyczy wersji
46+
47+
* wszystkich wersji ruby 1.8 wcześniejszych niż 1.8.7 patchlevel 374
48+
* wszystkich wersji ruby 1.9 wcześniejszych niż 1.9.3 patchlevel 448
49+
* wszystkich wersji ruby 2.0 wcześniejszych niż 2.0.0 patchlevel 247
50+
* wcześniejszych niż rewizja trunk 41671
51+
52+
## Rozwiązanie
53+
54+
Zaleca się, aby wszyscy użytkownicy zainstalowali wersję Ruby 2.0.0-p247,
55+
1.9.3-p448 lub 1.8.7-p374.
56+
57+
## Podziękowania
58+
59+
Podatność ta została znaleziona przez William (B.J.) Snow Orvis oraz
60+
skoordynowana z security@ruby-lang.org przez David Thiel z iSEC Partners.
61+
62+
## Historia
63+
64+
* Opublikowane 2013-06-27 11:00:00 (UTC)

0 commit comments

Comments
 (0)