[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...

Issue #11420 has been reported by Koichi Sasada.

11 messages 2015/08/06

[ruby-core:70414] [Ruby trunk - Bug #10910] NoMethodError when opening SSL connection with OpenSSL::SSL::VERIFY_PEER set and anonymous ciphers allowed

From: usa@...
Date: 2015-08-17 08:30:47 UTC
List: ruby-core #70414
Issue #10910 has been updated by Usaku NAKAMURA.

Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: DONE to 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE

ruby_2_1 r51608 merged revision(s) 51409,51453.
note: changed a little to get rid of conflicts.

----------------------------------------
Bug #10910: NoMethodError when opening SSL connection with OpenSSL::SSL::VERIFY_PEER set and anonymous ciphers allowed
https://bugs.ruby-lang.org/issues/10910#change-53822

* Author: Chris Sinjakli
* Status: Closed
* Priority: Normal
* Assignee: openssl
* ruby -v: ruby 2.3.0dev
* Backport: 2.0.0: REQUIRED, 2.1: DONE, 2.2: DONE
----------------------------------------
When establishing an SSL connection with peer verification enabled, if the list of allowed ciphers includes an anonymous cipher, and negotiation with the server results in that cipher being used, a NoMethodError is raised with a stack trace like:

~~~
/Users/sinjo/rubies/2.1.3/lib/ruby/2.1.0/openssl/ssl.rb:99:in `verify_certificate_identity': undefined method `extensions' for nil:NilClass (NoMethodError)
        from /Users/sinjo/rubies/2.1.3/lib/ruby/2.1.0/openssl/ssl.rb:156:in `post_connection_check'
        from /Users/sinjo/rubies/2.1.3/lib/ruby/2.1.0/net/http.rb:922:in `connect'
        from /Users/sinjo/rubies/2.1.3/lib/ruby/2.1.0/net/http.rb:863:in `do_start'
        from /Users/sinjo/rubies/2.1.3/lib/ruby/2.1.0/net/http.rb:852:in `start'
        from ../test_ssl.rb:4:in `<main>'
~~~

This is because no certificate is returned when using an anonymous cipher, while the verification code which runs when OpenSSL::SSL::VERIFY_PEER is set expects one to be present.

I've attached a patch which fixes this. Let me know if there's anything you'd like me to change (happy to refactor, or alter the approach).

This behaviour is present in 2.0, 2.1, and 2.2.

---Files--------------------------------
ssl_verify.patch (2.71 KB)
update_libssl_on_travis.patch (821 Bytes)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next