Report privately via GitHub's security advisories ("Report a vulnerability" on the repository's Security tab) or by email to ryan@ryanseys.com. Please do not open public issues for suspected vulnerabilities.
- Programs compiled by Zeo execute with the full privileges of the invoking user, like any native binary; compiling untrusted Ruby source is equivalent to running it.
SecureRandom/OpenSSL::Randomdraw from the operating system's CSPRNG.- The
opensslextension binds a vendored OpenSSL 3.x through the official rust-openssl bindings, so the digest, cipher, BN and TLS primitives are the ones CRuby binds. Client-side TLS verifies certificates:SSLContexthonoursverify_mode,ca_file/ca_pathand the system trust store. As in CRuby, a bareSSLContext.newstarts atVERIFY_NONE-- net/http raises it toVERIFY_PEER, but code that builds its own context must set it. PKey generation, X509 issuance, PKCS#7, ASN1 andSSLServerare declined; see docs/how-to/add-an-extension.md and docs/reference/compatibility.md. - OpenSSL links statically into every compiled binary. An OpenSSL security fix reaches a program only when you rebuild it with an updated Zeo. Programs already shipped keep the version they were compiled with.
Kernel#rand/Randomare deterministic PRNGs and are NOT suitable for secrets (true in CRuby as well).
Pre-1.0: only the main branch receives fixes.