diff options
author | Alex Legler <a3li@gentoo.org> | 2009-02-23 14:05:31 +0000 |
---|---|---|
committer | Alex Legler <a3li@gentoo.org> | 2009-02-23 14:05:31 +0000 |
commit | f5eff08fcad44bc0a53b17aedc009b499a47579d (patch) | |
tree | 1af3aa99915738a2339d94210dfd6f985ad3d7d3 /dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch | |
parent | Sparc stable, security Bug #252576. (diff) | |
download | historical-f5eff08fcad44bc0a53b17aedc009b499a47579d.tar.gz historical-f5eff08fcad44bc0a53b17aedc009b499a47579d.tar.bz2 historical-f5eff08fcad44bc0a53b17aedc009b499a47579d.zip |
Revbumps fixing bugs 260006, 230748, 258893 and 234877.
Package-Manager: portage-2.2_rc23/cvs/Linux x86_64
Diffstat (limited to 'dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch')
-rw-r--r-- | dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch b/dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch new file mode 100644 index 000000000000..2155547ae7e3 --- /dev/null +++ b/dev-lang/ruby/files/ruby-ossl_ocsp-verification.patch @@ -0,0 +1,36 @@ +Patch for CVE-2009-0642 from [ruby-core:21762] / Redmine: [Bug #1091] + +Ruby 1.8 and 1.9 does not properly check the return value from the +OCSP_basic_verify function, which might allow remote attackers to +successfully present an invalid X.509 certificate, possibly +involving a revoked certificate. + +--- trunk/ext/openssl/ossl_ocsp.c 2008/08/31 04:45:44 18975 ++++ trunk/ext/openssl/ossl_ocsp.c 2009/02/19 06:39:52 22440 +@@ -593,22 +593,22 @@ + static VALUE + ossl_ocspbres_verify(int argc, VALUE *argv, VALUE self) + { +- VALUE certs, store, flags; ++ VALUE certs, store, flags, result; + OCSP_BASICRESP *bs; + STACK_OF(X509) *x509s; + X509_STORE *x509st; +- int flg, result; ++ int flg; + + rb_scan_args(argc, argv, "21", &certs, &store, &flags); + x509st = GetX509StorePtr(store); + flg = NIL_P(flags) ? 0 : INT2NUM(flags); + x509s = ossl_x509_ary2sk(certs); + GetOCSPBasicRes(self, bs); +- result = OCSP_basic_verify(bs, x509s, x509st, flg); ++ result = OCSP_basic_verify(bs, x509s, x509st, flg) > 0 ? Qtrue : Qfalse; + sk_X509_pop_free(x509s, X509_free); + if(!result) rb_warn("%s", ERR_error_string(ERR_peek_error(), NULL)); + +- return result ? Qtrue : Qfalse; ++ return result; + } + + /* |