OpenSSL 3.6.2: ruby require 'openssl' and openssl CLI hang indefinitely on macOS arm64 (regression from 3.6.1)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 30.8k
- Forks
- 11.5k
- Avg merge
- 10m
- Merged PRs (30d)
- 1
Description
Description
After upgrading from OpenSSL 3.6.1 to 3.6.2 via Homebrew on macOS (arm64), both the openssl CLI binary and Ruby's require 'openssl' hang indefinitely with no output or error. Rolling back to 3.6.1 resolves the issue immediately.
Environment
- OS: macOS 26.3.1 (Darwin 25.3.0, arm64 / Apple Silicon)
- OpenSSL: 3.6.2 (Homebrew) —
libssl.3.dylibupdated 2026-05-14 - Ruby: 4.0.1 (arm64-darwin24), openssl extension linked against
/opt/homebrew/opt/openssl@3/lib/libssl.3.dylib - Previous working version: OpenSSL 3.6.1 (27 Jan 2026)
Steps to Reproduce
brew upgrade openssl@3 # upgrades to 3.6.2
openssl version # hangs — no output, no error
ruby -ropenssl -e "puts OpenSSL::VERSION" # hangs indefinitely
Workaround:
# Rollback to 3.6.1 (still in Homebrew Cellar)
rm /opt/homebrew/opt/openssl@3
ln -s /opt/homebrew/Cellar/openssl@3/3.6.1 /opt/homebrew/opt/openssl@3
# Now both commands work again
Expected Behavior
openssl version should print version string; require 'openssl' should load without hanging.
Notes
OPENSSL_CONF=/dev/nulldoes not fix the hang (ruling out config file issue)OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YESdoes not fix it either- The hang happens before any network activity (during
dlopen/ library initialization) otool -Lshows the extension links against/opt/homebrew/opt/openssl@3/lib/libssl.3.dylibandlibcrypto.3.dylib
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the hang with openssl version and ruby -ropenssl -e "puts OpenSSL::VERSION" on macOS arm64, comparing OpenSSL 3.6.2 with the working 3.6.1 installation. Inspect initialization of libssl.3.dylib and libcrypto.3.dylib, using the reported otool -L paths as entry points. Done means both commands complete normally on 3.6.2 without requiring the rollback workaround.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, macos, ruby
- Domain
- operating-systems, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100