SSL3_CTX_CTRL:called a function you should not call
Maxim Dounin
mdounin at mdounin.ru
Tue Mar 17 13:25:58 UTC 2015
Hello!
On Tue, Mar 17, 2015 at 06:25:51AM -0400, rbqdg9 wrote:
> Maxim Dounin Wrote:
> -------------------------------------------------------
> > If you see problems with nginx 1.7.9, consider following hints
> > at http://wiki.nginx.org/Debugging.
> I think it will not help (at least if not did by anyone who really knows
> both openssl and nginx internals).
> the problem is quickly traceable to
>
> long
> ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp)(void))
> {
> CERT *cert;
>
> cert = ctx->cert;
>
> switch (cmd) {
> case SSL_CTRL_SET_TMP_RSA_CB:
> SSLerr(SSL_F_SSL3_CTX_CTRL,
> ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
> (yes, this occurence, exactly)
>
> inside libressl-2.1.3/ssl/s3_lib.c, and this function seems newer called by
> nginx code directly and not supposed to be externally-called at all.
> The pure openssl have some pointer-magic in this place, dropped by libressl
> developers (with the data structure itself, so no easy way to bring it
> back)
I see no magic in the OpenSSL here. It looks like the alert is
due to LibreSSL dropped the support for export ciphers, while
nginx calls SSL_CTX_set_tmp_rsa_callback() to be able to support
them if configured to do so. So, the alert is harmless and can be
safely ignored. It's just a result of LibreSSL dropping support
for parts of the OpenSSL API nginx uses.
> I think the only thing developers may do (if not willing to really
> investigate and fix this issue) - just stop declaring nginx compatibility
> with libressl. It not only nonworking, but worse - it cleanly execute some
> garbage instead of code.
The only thing we declaring is that nginx can be built with
LibreSSL. And it is going to work as long as LibreSSL does the
right thing and don't deverge from the OpenSSL API too much. We
consider both LibreSSL and BoringSSL to be interesting
experimental libraries, and plan to preserve at least minimal
support as long as it doesn't require too much effort.
> (I have full system log of stack-protection mechanics trying to prevent
> this)
>
> and yes, 1.7.10 still does the same. The problem itself does not appear on
> any connection, just in some special cases, but easely reproduceable.
So again:
http://wiki.nginx.org/Debugging
--
Maxim Dounin
http://nginx.org/
More information about the nginx
mailing list