Hostname-Prüfung umgehende Schwachstelle im SSL-Client (CVE-2013-4073)

Gepostet von nahi am 27. Juni 2013

Eine Schwachstelle in Rubys SSL-Client, die es Man-in-the-Middle-Angreifern ermöglichen könnte, SSL-Server über ein gültiges Zertifikat zu fälschen, das von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde.

Diese Schwachstelle wurde unter der CVE-Nummer CVE-2013-4073 identifiziert.

Zusammenfassung

Rubys SSL-Client implementiert eine Hostnamen-Identitätsprüfung, behandelt jedoch Hostnamen im Zertifikat, die Null-Bytes enthalten, nicht ordnungsgemäß.

Details

OpenSSL::SSL.verify_certificate_identity implementiert die RFC2818 Server Identity Check für Rubys SSL-Client, behandelt jedoch Hostnamen in der subjectAltName X509-Erweiterung, die Null-Bytes enthalten, nicht ordnungsgemäß.

Der vorhandene Code in lib/openssl/ssl.rb verwendet OpenSSL::X509::Extension#value zum Extrahieren der Identität aus subjectAltName. Extension#value hängt von der OpenSSL-Funktion X509V3_EXT_print() ab und verwendet für dNSName von subjectAltName sprintf(), das bekanntermaßen unsicher im Umgang mit Null-Bytes ist. Infolgedessen gibt Extension#value ‘www.ruby-lang.org’ zurück, wenn subjectAltName ‘www.ruby-lang.org\0.example.com’ ist und OpenSSL::SSL.verify_certificate_identity das Zertifikat fälschlicherweise als eines für ‘www.ruby-lang.org’ identifiziert.

Wenn eine von einem SSL-Client vertraute CA die Ausstellung eines Serverzertifikats erlaubt, das ein Null-Byte in subjectAltName enthält, können entfernte Angreifer das Zertifikat für ‘www.ruby-lang.org\0.example.com’ von der CA erhalten, um ‘www.ruby-lang.org’ zu fälschen und einen Man-in-the-Middle-Angriff zwischen Rubys SSL-Client und SSL-Servern durchzuführen.

Betroffene Versionen

  • Alle Ruby 1.8-Versionen vor Ruby 1.8.7 patchlevel 374
  • Alle Ruby 1.9-Versionen vor Ruby 1.9.3 patchlevel 448
  • Alle Ruby 2.0-Versionen vor Ruby 2.0.0 patchlevel 247
  • vor Revision 41671 im Trunk

Lösung

Allen Benutzern wird empfohlen, auf Ruby 2.0.0-p247, 1.9.3-p448 oder 1.8.7-p374 zu aktualisieren.

Danksagung

Diese Schwachstelle wurde von William (B.J.) Snow Orvis gefunden und mit security@ruby-lang.org von David Thiel von iSEC Partners koordiniert.

Verlauf

  • Ursprünglich veröffentlicht am 27. Juni 2013, 11:00:00 (UTC)

Aktuelle Nachrichten

Ruby 4.0.0 veröffentlicht

Wir freuen uns, die Veröffentlichung von Ruby 4.0.0 bekannt zu geben. Ruby 4.0 führt „Ruby Box“ und „ZJIT“ ein und bringt viele Verbesserungen mit sich.

Veröffentlicht von naruse am 25. Dez 2025

Ein neuer Look für Rubys Dokumentation

Nach dem Redesign von ruby-lang.org gibt es weitere Neuigkeiten zur Feier des 30-jährigen Jubiläums von Ruby: docs.ruby-lang.org hat ein komplett neues Erscheinungsbild mit Aliki – dem neuen Standard-Theme von RDoc.

Veröffentlicht von Stan Lo am 23. Dez 2025

Neues Website-Erscheinungsbild

Wir freuen uns, ein umfassendes Redesign unserer Website bekannt zu geben. Das Design für dieses Update wurde von Taeko Akatsuka erstellt.

Veröffentlicht von Hiroshi SHIBATA am 22. Dez 2025

Ruby 4.0.0 preview3 veröffentlicht

Wir freuen uns, die Veröffentlichung von Ruby 4.0.0-preview3 bekannt zu geben. Ruby 4.0 führt Ruby::Box und „ZJIT“ ein und bringt viele Verbesserungen mit sich.

Veröffentlicht von naruse am 18. Dez 2025

Weitere Neuigkeiten...