openssl / openssl/openssl

OpenSSL 3.6.2: ruby require 'openssl' and openssl CLI hang indefinitely on macOS arm64 (regression from 3.6.1)

Open
#31,179 0 comments 0 reactions 0 assignees View on GitHub

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.dylib updated 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/null does not fix the hang (ruling out config file issue)
  • OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES does not fix it either
  • The hang happens before any network activity (during dlopen / library initialization)
  • otool -L shows the extension links against /opt/homebrew/opt/openssl@3/lib/libssl.3.dylib and libcrypto.3.dylib

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.