- Top reward
- $1,500
- Top severity paid
- Critical
- Assets in scope
- 13
- Public CVEs
- 51
- Last change
- No changes yet
At a glance
What to know before you start testing.
- Pays from $1,500
- for critical bugs.
- Report on Sorona
- Submit through the program page.
- Partial safe harbor
- Some legal protection; read the terms.
- Publish after a fix
- Coordinate the timing with the company.
Rewards
What Sorona lists as the payout for each severity.
| Severity | Relative size | Reward |
|---|---|---|
| Critical | $1,500+ | |
| High | $700+ | |
| Medium | $300+ | |
| Low |
|
$100 $100 / 1 month Claude Max |
- Safe harbor
-
Partial
Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf.
Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original
Scope
13 assets you may test, 6 excluded.
Web 1
- https://www.erlang.org
Products and areas 12
- Distribution and clustering: the node handshake, the distribution protocol, cookie-based authentication and everything a connected node is trusted to do
- erl_interface, jinterface and the external term format, including binary_to_term on untrusted input
- inets and the HTTP client and server code inside it
- mnesia, ets and dets and the storage layers OTP applications keep state in
- public_key and asn1, which decode attacker-supplied structures before any trust decision has been made
- The BEAM virtual machine: bytecode loading and verification, the schedulers, the memory allocators and the garbage collector
- The Erlang compiler and the bytecode it emits, plus the module loading path that accepts a compiled module
- The NIF and port-driver boundary, where native code runs inside the VM with no isolation from it
- The published policy asks for any vulnerability in Erlang/OTP through one of two private channels and rules out public reporting. It draws no line narrower than the OTP distribution itself
- The ssh application, a full server implementation and one of the OTP components most often exposed directly to the internet
- The ssl and crypto applications, covering the TLS state machine, certificate validation and the OpenSSL bindings underneath
- The stdlib parsers and formatters, xmerl and zlib among them, that OTP applications feed unvalidated data into
Out of scope (6)
- Anything reported through a public channel, which the policy rules out by name
- Elixir, a separate project on the same virtual machine with its own private advisory channel
- OpenSSL itself, as distinct from OTP's crypto and ssl bindings to it
- Operating a distributed Erlang cluster on an untrusted network with a shared cookie, a documented deployment decision rather than a defect
- RabbitMQ, CouchDB, ejabberd, Riak and the other products built on OTP, each with its own security process
- Third-party Erlang libraries pulled in through rebar3 or Hex
Rules
What the policy asks of you, and the bug types it won't reward, quoted from Sorona's policy.
While testing
-
Submit through sorona.xyz.
-
Two private channels, either is fine: a GitHub Security Advisory at github.com/erlang/otp/security, or email to the address on the policy page
-
The policy is explicit that security issues must not go through public channels. No GitHub issue, no mailing list post
-
Name the OTP release and the applications involved.
-
Say whether the input reaches the VM or an OTP application.
-
Products built on OTP have their own processes.
Not accepted
-
Operating a distributed Erlang cluster on an untrusted network with a shared cookie, a documented deployment decision rather than a defect
-
Anything reported through a public channel, which the policy rules out by name
Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original
Changes
Tracked since 11 Nov 2026. Last checked 1 hour ago.
No changes yet. When the rewards or scope move, you will see it here and in the RSS feed.
Public CVEs
Published vulnerabilities in this vendor's products, from the NVD.
| CVE | Summary | Severity | Published |
|---|---|---|---|
| CVE-2026-59251 | Allocation of resources without limits in Erlang/OTP public_key certificate path validation allows a remote unauthenticated attacker to cause denial of service by sending a crafted X.509 certificate chain during the TLS handshake. During RFC 5280 policy processing in public_key:pkix_path_validation/3, the certificate policy tree maintained by pubkey_policy_tree grows without an upper bound. When a | High 8.7 | 27 Jul 2026 |
| CVE-2026-58227 | The Erlang/OTP ssl application does not detect cycles when reconstructing an incomplete peer certificate chain during a TLS or DTLS handshake. In ssl_certificate:handle_incomplete_chain/5, the received chain is passed to ssl_certificate:build_certificate_chain/5, which walks issuer relationships via ssl_certificate:do_certificate_chain/7 with no cycle detection and no depth limit. When the peer su | High 8.7 | 27 Jul 2026 |
| CVE-2026-55953 | The Erlang/OTP ssl TLS 1.2 (and earlier) and DTLS client does not verify that the cipher suite selected by the server in ServerHello was among the suites offered by the client in ClientHello. The client-side tls_handshake:hello/5 handler validates the negotiated protocol version and the downgrade sentinel but hands the server-chosen suite directly to ssl_handshake:handle_server_hello_extensions/9, | Critical 9.1 | 27 Jul 2026 |
| CVE-2026-55737 | Signed to Unsigned Conversion Error and Out-of-bounds Write vulnerability in Erlang OTP erts allows an attacker who can supply a crafted Erlang external term format (ETF) binary to binary_to_term/1 to corrupt the BEAM heap pointer and crash the virtual machine. When decoding a LARGE_TUPLE_EXT term, the validation pass decoded_size() in erts/emulator/beam/external.c reads the 32-bit arity field as | Medium 5.1 | 27 Jul 2026 |
| CVE-2026-54890 | Integer Underflow (Wrap or Wraparound) vulnerability in erlang otp erlang/otp (erts modules), erlang otp erts (erts modules) allows Forced Integer Overflow, Excessive Allocation. This vulnerability is associated with program files erts/emulator/beam/external.c, emulator/beam/external.c. The BIT_BINARY_EXT tag (77) handler in the External Term Format (ETF) decoder accepts an encoding with both leng | High 8.2 | 27 Jul 2026 |
| CVE-2026-42792 | Improper Handling of Exceptional Conditions vulnerability in Erlang OTP erts (epmd) allows an unauthenticated remote attacker to permanently terminate the Erlang Port Mapper Daemon (epmd) via connection slot exhaustion. The do_accept function in erts/epmd/src/epmd_srv.c calls epmd_cleanup_exit() when accept(2) returns EMFILE (per-process file descriptor limit reached) or ENFILE (system-wide file d | Medium 6.3 | 27 Jul 2026 |
| CVE-2026-54887 | Use of Default Cryptographic Key vulnerability in Erlang/OTP ssl (DTLS server) allows predictable DTLS cookie computation during the startup window, enabling source address verification bypass. On DTLS server startup, dtls_server_connection:initial_hello/3 initializes previous_cookie_secret to the empty binary (<<>>) instead of a random value. Because HMAC with an empty key is deterministic, anyon | Medium 6.3 | 2 Jul 2026 |
| CVE-2026-54891 | Improper Enforcement of Message Integrity During Transmission in a Communication Channel vulnerability in Erlang/OTP ssl (tls_gen_connection module) allows a network-positioned attacker to inject unauthenticated plaintext that the TLS client application later treats as authenticated server data. The function tls_gen_connection:handle_protocol_record/3 rejects APPLICATION_DATA records that arrive i | Medium 6.3 | 2 Jul 2026 |
| CVE-2026-55950 | Time-of-check Time-of-use (TOCTOU) race condition vulnerability in Erlang/OTP ssl (dtls_packet_demux module) allows an unauthenticated remote attacker to crash all active DTLS sessions on a listener. A DTLS server listener uses a single shared dtls_packet_demux gen_server process to route incoming UDP datagrams to the correct connection handler. When a DTLS client reconnects rapidly from the same | High 8.7 | 2 Jul 2026 |
| CVE-2026-55952 | The Erlang/OTP ssl application does not validate that the PSK identity list and binder list carried in a TLS 1.3 ClientHello pre-shared key extension have equal length before passing them to the session ticket handler. In tls_handshake_1_3:handle_pre_shared_key/3, an OfferedPreSharedKeys record with a mismatched number of identities and binders is forwarded directly to tls_server_session_ticket:us | High 8.2 | 2 Jul 2026 |
| CVE-2026-54886 | Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in Erlang OTP ssh (ssh_sftpd module) allows an authenticated SFTP user to render an SFTP channel permanently unresponsive. The handle_data/4 function in ssh_sftpd contains a catch-all clause that accepts channel data of any type. When channel data with a non-zero type code (SSH_MSG_CHANNEL_EXTENDED_DATA) arrives with an empty pen | Medium 5.3 | 2 Jul 2026 |
| CVE-2026-53422 | Observable Response Discrepancy vulnerability in Erlang OTP ssh (ssh_sftpd module) allows an authenticated SFTP user to enumerate the existence of files and directories outside the configured root directory. The SSH_FXP_REALPATH handler in ssh_sftpd calls relate_file_name/3 with Canonicalize=false, unlike every other SFTP operation handler. This allows .. components in the requested path to bypass | Low 2.3 | 2 Jul 2026 |
| CVE-2026-48860 | Reliance on IP Address for Authentication vulnerability in Erlang/OTP ssl (inet_tls_dist module) allows unauthenticated bypass of the distribution-over-TLS LAN allowlist. The inet_tls_dist:check_ip/1 function, which enforces a LAN allowlist for Erlang distribution over TLS, calls inet:sockname/1 instead of inet:peername/1 to obtain the peer's IP address. Because inet:sockname/1 returns the local s | High 7.5 | 10 Jun 2026 |
| CVE-2026-49759 | Stack-based Buffer Overflow vulnerability in Erlang OTP erts (inet_drv) allows an unauthenticated remote attacker to crash the BEAM VM by sending a crafted SCTP ERROR chunk. The sctp_parse_error_chunk function in erts/emulator/drivers/common/inet_drv.c parses SCTP ERROR chunks and writes cause codes into a fixed-size stack-allocated ErlDrvTermData spec[] array without checking bounds. A remote att | High 8.8 | 10 Jun 2026 |
| CVE-2026-49760 | Stack-based Buffer Overflow vulnerability in Erlang OTP (erl_interface) allows Stack-based Buffer Overflow. This vulnerability is associated with program file lib/erl_interface/src/misc/ei_printterm.c and program routine ei_s_print_term. The C function ei_s_print_term uses an internal 2000-character stack buffer to format terms. When called with an encoded Erlang term containing a very large integ | Medium 6.9 | 10 Jun 2026 |
| CVE-2026-48859 | Observable Timing Discrepancy vulnerability in Erlang/OTP ssh (ssh_auth, ssh_options modules) allows unauthenticated remote username enumeration via timing side-channel in password authentication. When the SSH daemon is configured with the user_passwords or password option, ssh_auth:check_password/3 performs a PBKDF2-SHA256 computation with 600,000 iterations (~300ms) for valid usernames, but retu | Medium 6.3 | 10 Jun 2026 |
| CVE-2026-48858 | Server-Side Request Forgery (SSRF) vulnerability in Erlang/OTP ftp (ftp_internal module) allows FTP bounce attacks and SSRF via an unvalidated PASV response IP address. The ftp_internal:handle_ctrl_result/2 PASV handler (mode=passive, ipfamily=inet, ftp_extension=false) extracts the IP address from the server's 227 response and passes it directly to gen_tcp:connect/4 without validating it against | Medium 6.3 | 10 Jun 2026 |
| CVE-2026-48855 | Exposure of Sensitive Information to an Unauthorized Actor vulnerability in Erlang OTP ssh (ssh_sftpd module) allows File Discovery. The SSH_FXP_READLINK handler in ssh_sftpd sends the raw result of file:read_link/2 to the client without calling chroot_filename/2 to strip the backend root prefix. An authenticated SFTP client can create a symlink inside the chroot pointing to /; ssh_sftpd resolves | Low 2.3 | 10 Jun 2026 |
| CVE-2026-48856 | Sensitive Data Exposure vulnerability in Erlang OTP inets (httpc_response module) allows Retrieve Embedded Sensitive Data. The httpc client forwards the Authorization and Proxy-Authorization request headers to redirect targets without checking whether the redirect crosses an origin boundary. httpc_response:redirect/2 constructs the redirected request by updating only the host field of the header r | High 7.1 | 10 Jun 2026 |
| CVE-2026-42790 | Improper Certificate Validation vulnerability in Erlang OTP public_key (pubkey_cert and public_key modules) allows a DNS nameConstraints bypass via subject CommonName fallback in TLS hostname verification. Two flaws combine to allow a subordinate CA whose DNS nameConstraints are restricted (e.g. permitted;DNS:allowed.example.com) to issue a leaf certificate that an OTP TLS client accepts as a vali | High 7.6 | 27 May 2026 |
| CVE-2026-42789 | Improper Following of a Certificate's Chain of Trust vulnerability in Erlang OTP public_key (pubkey_cert module) allows a non-CA certificate to be accepted as an intermediate issuer, enabling certificate chain forgery. In lib/public_key/src/pubkey_cert.erl, pubkey_cert:validate_extensions/7 contains two flaws that together allow a certificate with basicConstraints cA:false and no keyUsage extensio | High 7.0 | 27 May 2026 |
| CVE-2026-42791 | Improper Certificate Validation vulnerability in Erlang OTP public_key (pubkey_ocsp module) allows forged OCSP responses signed with an expired responder certificate to be accepted as valid. OCSP response verification in pubkey_ocsp:verify_response/5 and pubkey_ocsp:is_authorized_responder/3 in lib/public_key/src/pubkey_ocsp.erl does not check the validity period (notBefore/notAfter) of the OCSP r | Medium 6.3 | 27 May 2026 |
| CVE-2026-32147 | Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in Erlang OTP ssh (ssh_sftpd module) allows an authenticated SFTP user to modify file attributes outside the configured chroot directory. The SFTP daemon (ssh_sftpd) stores the raw, user-supplied path in file handles instead of the chroot-resolved path. When SSH_FXP_FSETSTAT is issued on such a handle, fil | Medium 5.3 | 21 Apr 2026 |
| CVE-2026-32144 | Improper Certificate Validation vulnerability in Erlang OTP public_key (pubkey_ocsp module) allows OCSP designated-responder authorization bypass via missing signature verification. The OCSP response validation in public_key:pkix_ocsp_validate/5 does not verify that a CA-designated responder certificate was cryptographically signed by the issuing CA. Instead, it only checks that the responder cert | High 7.6 | 7 Apr 2026 |
| CVE-2026-28808 | Incorrect Authorization vulnerability in Erlang OTP (inets modules) allows unauthenticated access to CGI scripts protected by directory rules when served via script_alias. When script_alias maps a URL prefix to a directory outside DocumentRoot, mod_auth evaluates directory-based access controls against the DocumentRoot-relative path while mod_cgi executes the script at the ScriptAlias-resolved pat | High 8.3 | 7 Apr 2026 |
| CVE-2026-28810 | Generation of Predictable Numbers or Identifiers vulnerability in Erlang/OTP kernel (inet_res, inet_db modules) allows DNS Cache Poisoning. The built-in DNS resolver (inet_res) uses a sequential, process-global 16-bit transaction ID for UDP queries and does not implement source port randomization. Response validation relies almost entirely on this ID, making DNS cache poisoning practical for an at | Medium 6.3 | 7 Apr 2026 |
| CVE-2026-23942 | Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in Erlang OTP (ssh_sftpd module) allows Path Traversal. This vulnerability is associated with program files lib/ssh/src/ssh_sftpd.erl and program routines ssh_sftpd:is_within_root/2. The SFTP server uses string prefix matching via lists:prefix/2 rather than proper path component validation when checking if | Medium 5.3 | 13 Mar 2026 |
| CVE-2026-23943 | Improper Handling of Highly Compressed Data (Compression Bomb) vulnerability in Erlang OTP ssh (ssh_transport modules) allows Denial of Service via Resource Depletion. The SSH transport layer advertises legacy zlib compression by default and inflates attacker-controlled payloads pre-authentication without any size limit, enabling reliable memory exhaustion DoS. Two compression algorithms are affec | Medium 6.9 | 13 Mar 2026 |
| CVE-2026-23941 | Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling') vulnerability in Erlang OTP (inets httpd module) allows HTTP Request Smuggling. This vulnerability is associated with program files lib/inets/src/http_server/httpd_request.erl and program routines httpd_request:parse_headers/7. The server does not reject or normalize duplicate Content-Length headers. The earliest Content-Lengt | High 7.0 | 13 Mar 2026 |
| CVE-2026-21619 | Uncontrolled Resource Consumption, Deserialization of Untrusted Data vulnerability in hexpm hex_core (hex_api modules), hexpm hex (mix_hex_api modules), erlang rebar3 (r3_hex_api modules) allows Object Injection, Excessive Allocation. This vulnerability is associated with program files src/hex_api.erl, src/mix_hex_api.erl, apps/rebar/src/vendored/r3_hex_api.erl and program routines hex_core:reques | Low 2.0 | 27 Feb 2026 |
| CVE-2025-32433 | Erlang/OTP is a set of libraries for the Erlang programming language. Prior to versions OTP-27.3.3, OTP-26.2.5.11, and OTP-25.3.2.20, a SSH server may allow an attacker to perform unauthenticated remote code execution (RCE). By exploiting a flaw in SSH protocol message handling, a malicious actor could gain unauthorized access to affected systems and execute arbitrary commands without valid creden | Critical 10.0 | 16 Apr 2025 |
| CVE-2023-48795 | The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remote attackers to bypass integrity checks such that some packets are omitted (from the extension negotiation message), and a client and server may consequently end up with a connection for which some security features have been downgraded or disabled, aka a Terrapin attack. This occ | Medium 5.9 | 18 Dec 2023 |
| CVE-2022-37026 | In Erlang/OTP before 23.3.4.15, 24.x before 24.3.4.2, and 25.x before 25.0.2, there is a Client Authentication Bypass in certain client-certification situations for SSL, TLS, and DTLS. | Critical 9.8 | 21 Sep 2022 |
| CVE-2021-29221 | A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. By adding files to an existing installation's directory, a local attacker could hijack accounts of other users running Erlang programs or possibly coerce a service running with "erlsrv.exe" to execute arbitrary code as Local System. This can occur only under specific conditions on Windows with unsafe f | High 7.0 | 9 Apr 2021 |
| CVE-2020-35733 | An issue was discovered in Erlang/OTP before 23.2.2. The ssl application 10.2 accepts and trusts an invalid X.509 certificate chain to a trusted root Certification Authority. | High 7.5 | 15 Jan 2021 |
| CVE-2020-25623 | Erlang/OTP 22.3.x before 22.3.4.6 and 23.x before 23.1 allows Directory Traversal. An attacker can send a crafted HTTP request to read arbitrary files, if httpd in the inets application is used. | High 7.5 | 2 Oct 2020 |
| CVE-2020-13802 | Rebar3 versions 3.0.0-beta.3 to 3.13.2 are vulnerable to OS command injection via URL parameter of dependency specification. | Critical 9.8 | 2 Sep 2020 |
| CVE-2016-1000107 | inets in Erlang possibly 22.1 and earlier follows RFC 3875 section 4.1.18 and therefore does not protect applications from the presence of untrusted client data in the HTTP_PROXY environment variable, which might allow remote attackers to redirect an application's outbound HTTP traffic to an arbitrary proxy server via a crafted Proxy header in an HTTP request, aka an "httpoxy" issue. | Medium 6.1 | 10 Dec 2019 |
| CVE-2019-1000014 | Erlang/OTP Rebar3 version 3.7.0 through 3.7.5 contains a Signing oracle vulnerability in Package registry verification that can result in Package modifications not detected, allowing code execution. This attack appears to be exploitable via Victim fetches packages from malicious/compromised mirror. This vulnerability appears to have been fixed in 3.8.0. | High 8.8 | 4 Feb 2019 |
| CVE-2017-1000385 | The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. This allows an attacker to decrypt content or sign messages with the server's private key (this is a variation of the Bleichenbacher attack). | Medium 5.9 | 12 Dec 2017 |
| CVE-2016-10253 | An issue was discovered in Erlang/OTP 18.x. Erlang's generation of compiled regular expressions is vulnerable to a heap overflow. Regular expressions using a malformed extpattern can indirectly specify an offset that is used as an array index. This ordinal permits arbitrary regions within the erts_alloc arena to be both read and written to. | Critical 9.8 | 18 Mar 2017 |
| CVE-2015-2774 | Erlang/OTP before 18.0-rc1 does not properly check CBC padding bytes when terminating connections, which makes it easier for man-in-the-middle attackers to obtain cleartext data via a padding-oracle attack, a variant of CVE-2014-3566 (aka POODLE). | Medium 5.9 | 7 Apr 2016 |
| CVE-2014-1693 | Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inject arbitrary FTP commands via CRLF sequences in the (1) user, (2) account, (3) cd, (4) ls, (5) nlist, (6) rename, (7) delete, (8) mkdir, (9) rmdir, (10) recv, (11) recv_bin, (12) recv_chunk_start, (13) send, (14) send_bin, (15) send_chunk_start, (16) append_chunk_start, (17) appe | High 7.5 | 8 Dec 2014 |
| CVE-2011-0766 | The random number generator in the Crypto application before 2.0.2.2, and SSH before 2.0.5, as used in the Erlang/OTP ssh library before R14B03, uses predictable seeds based on the current time, which makes it easier for remote attackers to guess DSA host and SSH session keys. | High 7.8 | 31 May 2011 |
| CVE-2009-0130 | lib/crypto/c_src/crypto_drv.c in erlang does not properly check the return value from the OpenSSL DSA_do_verify function, which might allow remote attackers to bypass validation of the certificate chain via a malformed SSL/TLS signature, a similar vulnerability to CVE-2008-5077. NOTE: a package maintainer disputes this issue, reporting that there is a proper check within the only code that uses th | High 7.5 | 15 Jan 2009 |
Original policy
Copied from sorona.xyz on 12 Nov 2026. The summaries on this page are made from it; the live page may have changed since.
Skip to content What this pays This project runs no bounty of its own. sorona.xyz pays you directly on qualified, reproduced findings. Severity │ sorona.xyz pays Critical │ $1,500+ High │ $700+ Medium │ $300+ Low │ $100 / 1 month Claude Max Submit a vulnerability CVE history 45 Last 12 months 51 Lifetime Protocol implementation 35 % Authentication bypass 25 % Memory safety 25 % Info disclosure 15 % Latest advisories Loading the feed Overview Erlang/OTP is the BEAM virtual machine and the standard library that runs on it. It sits underneath RabbitMQ, CouchDB, ejabberd, Riak and the whole Elixir and Phoenix ecosystem, plus a large amount of telecom infrastructure, so a bug in OTP is a bug in a long list of products at once. The July 2026 batch is the reference point: five advisories in one release, one of them critical. This is the busiest advisory pipeline of any unpaid runtime in the set, 45 published in twelve months out of 51 ever. Neither the SECURITY.md nor erlang.org/security mentions money in any form. sorona.xyz pays you directly on qualified, reproduced findings. In scope The published policy asks for any vulnerability in Erlang/OTP through one of two private channels and rules out public reporting. It draws no line narrower than the OTP distribution itself The BEAM virtual machine: bytecode loading and verification, the schedulers, the memory allocators and the garbage collector The Erlang compiler and the bytecode it emits, plus the module loading path that accepts a compiled module Distribution and clustering: the node handshake, the distribution protocol, cookie-based authentication and everything a connected node is trusted to do The ssl and crypto applications, covering the TLS state machine, certificate validation and the OpenSSL bindings underneath The ssh application, a full server implementation and one of the OTP components most often exposed directly to the internet inets and the HTTP client and server code inside it public_key and asn1 , which decode attacker-supplied structures before any trust decision has been made The NIF and port-driver boundary, where native code runs inside the VM with no isolation from it erl_interface , jinterface and the external term format, including binary_to_term on untrusted input The stdlib parsers and formatters, xmerl and zlib among them, that OTP applications feed unvalidated data into mnesia , ets and dets and the storage layers OTP applications keep state in Out of scope RabbitMQ, CouchDB, ejabberd, Riak and the other products built on OTP, each with its own security process Elixir, a separate project on the same virtual machine with its own private advisory channel OpenSSL itself, as distinct from OTP's crypto and ssl bindings to it Operating a distributed Erlang cluster on an untrusted network with a shared cookie, a documented deployment decision rather than a defect Third-party Erlang libraries pulled in through rebar3 or Hex Anything reported through a public channel, which the policy rules out by name Most-valued findings Anything reachable in ssl or ssh before authentication completes. These are the OTP applications most often exposed directly to the internet, and pre-auth reach is the highest-severity shape this project produces Certificate validation and TLS state-machine defects in ssl , where the failure is silent and every product on top inherits it binary_to_term and external term format handling on untrusted input, the classic route from a network byte string to atom exhaustion or worse Distribution protocol and node handshake defects, since a node that joins a cluster can execute code on every other node by design Memory safety in the VM, at the NIF boundary and in the crypto bindings, where C code runs with no isolation from the scheduler it lives inside Parser defects in asn1 , public_key , xmerl and zlib , all of which decode hostile structures before anything has decided to trust them Bytecode loading and verification bypasses, given that loading a module is the most privileged operation the VM offers Anything that crosses from an OTP application into the VM itself, since the blast radius stops being one product and becomes every product on the host Program rules Submit through sorona.xyz. This project runs no bounty of its own; we validate, coordinate disclosure with the maintainers, and pay you directly. Two private channels, either is fine: a GitHub Security Advisory at github.com/erlang/otp/security, or email to [email protected] The policy is explicit that security issues must not go through public channels. No GitHub issue, no mailing list post Name the OTP release and the applications involved. OTP ships dozens of applications and the word Erlang on its own does not locate a bug Say whether the input reaches the VM or an OTP application. A defect in ssh or ssl and a defect in BEAM itself go to different people on different timelines This project ships advisories in batches. Expect your finding in the next scheduled security release rather than in a one-off patch Products built on OTP have their own processes. A RabbitMQ or CouchDB bug is theirs unless you can show it in OTP code There is no money here at any severity. The team triages properly and publishes properly, and that is what a report earns Disclosure Coordinated through GitHub Security Advisories on erlang/otp or by email with the security team, and published as a GHSA with a CVE alongside a patched release. The cadence is heavy and batched: 45 advisories in the last twelve months, including five that shipped together in July 2026, with two critical and eighteen high across the window. Plan the embargo around the next security release rather than a fixed day count, and expect a substantive triage conversation. Safe harbor Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf. You are responsible for understanding and following the laws that apply to you, wherever you are, and for staying within any scope the project has defined. Submit a vulnerability