ruby / ruby/openssl

OpenSSL 3.2.0 - sessions, time, signed vs unsigned, failure with negative session timeout values

Open
#703 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
276
Forks
200
Avg merge
1d 19h
Merged PRs (30d)
7

Description

Very recently MSYS2 (Windows ucrt & mingw builds) upgraded their OpenSSL package from OpenSSL 3.1.4 to 3.2.0.

As we've seen, there are issues with a net-http test failing, which is setting http.ssl_timeout to -1.

A commit in OpenSSL (https://github.com/openssl/openssl/commit/f0131dc04a39afcb1629f5bec2814ef3a4925bbf) updates SSL_CTX_set_timeout in ssl/ssl_sess.c, and the commit only affects 3.2.0.

Some of the code seems to imply uint64_t for timeout values.

Another day where I'm AFK on and off...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the net-http test failure with OpenSSL 3.2.0 and a negative http.ssl_timeout value. Compare the timeout handling in OpenSSL's ssl/ssl_sess.c with commit f0131dc04a39afcb1629f5bec2814ef3a4925bbf, then trace the Ruby entry point that sets SSL_CTX_set_timeout. Done means the relevant test passes on affected MSYS2 builds without breaking timeout behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, ruby
Domain
cryptography, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.