Index › programming › erlang erlang 4 tools · 1 release line Erlang/OTP runtime system, compiler and standard library. Every tool here carries the same sandbox boundary. $ kapsl erl ⧉ $ kapsl erlc ⧉ $ kapsl escript ⧉ $ kapsl dialyzer ⧉ Source ↗ Registry ↗ Release lines we maintain · the project decides these findings shown are the whole project at that line Tag Resolves to Lifecycle Updated Findings What the tag promises ▸ latest 29.0.5 stable 2026-08-30 19 tracks the newest supported release stable — floats, carries security updates unstable — tracks pre-releases, may break eol — frozen, upstream is done Tools in this project · pick one to inspect all share one boundary Tool Capabilities Seccomp Findings Image Description ▸ erl rw default C1H12M6 erlang The Erlang emulator and interactive shell ▸ erlc rw default C1H12M6 erlang erlc compiles Erlang source to BEAM bytecode ▸ escript rw default C1H12M6 erlang escript runs Erlang scripts without a separate compile step ▸ dialyzer rw default C1H12M6 erlang dialyzer finds type errors and dead code in BEAM bytecode ▸ showing erl erlc escript dialyzer from erlang@latest → 29.0.5 stable Findings C1H12M6 identical on amd64, arm64 — one table describes both CVE Sev CVSS Affects Description CVE-2026-75803 ↗ C 9.1 openssl Issue summary: ChaCha20-Poly1305 and AES-OCB decryption with an empty ciphertext can report success without verifying the supplied authentication tag when the operation is finalized by calling the EVP_Cipher() function. CVE-2026-69664 ↗ H 8.7 erlang Missing Release of Resource after Effective Lifetime vulnerability in Erlang/OTP inets httpd allows an unauthenticated remote attacker to cause denial of service by sending a request with a chunked body whose chunk-size line is not a… CVE-2026-70399 ↗ H 8.7 erlang Allocation of Resources Without Limits or Throttling vulnerability in Erlang/OTP inets httpd allows an unauthenticated remote attacker to cause denial of service by opening and holding open a large number of connections. CVE-2026-71380 ↗ H 8.7 erlang Missing Release of Resource after Effective Lifetime vulnerability in Erlang/OTP inets httpd allows an unauthenticated remote attacker to cause denial of service by sending valid request headers with a large Content-Length and then… CVE-2026-74835 ↗ H 8.7 erlang The inets application HTTP server httpd fails to enforce a configured body-size limit on chunked request. This issue affects OTP from OTP 17.0 before OTP 27.3.4.17, from OTP 28.0 before OTP 28.5.0.6, and from OTP 29.0 before OTP 29.0.6… CVE-2026-66357 ↗ H 8.3 erlang httpd has never implemented obs-fold (RFC 2616 §2.2 / RFC 7230 §3.2.4 header continuation lines). Every CRLF followed by a non-CRLF octet unconditionally starts a new header. CVE-2026-73276 ↗ H 8.3 erlang Gracefulness code ignored cases that should be rejected, resulting in possible HTTP Request Smuggling opportunities. This issue affects OTP from OTP 22.2 before OTP 27.3.4.17, from OTP 28.0 before OTP 28.5.0.6, and from OTP 29.0 before OTP… CVE-2026-73812 ↗ H 8.3 erlang httpd function check_header/3 rejects duplicate Content-Length (per CVE-2026-23941) but never checks for the TE+CL co-presence that RFC 9112 §6.3 identifies as a probable smuggling attempt. CVE-2026-85091 ↗ H 8.3 zlib zlib versions 1.3.1.2 through 1.3.2 contain a heap buffer overflow vulnerability in the gz_vacate() function when processing non-blocking gzwrite() operations with stale external buffer pointers. CVE-2026-55951 ↗ H 8.2 erlang The Erlang/OTP httpc HTTP client does not enforce a limit on the total size of response headers received from a server. The max_header_size option defaults to nolimit, and httpc_response:parse_headers/6 accumulates every header into a list… CVE-2026-66835 ↗ H 8.2 erlang Path Equivalence vulnerability in Erlang/OTP inets httpd allows a remote unauthenticated attacker to read files inside a mod_auth protected directory by prefixing the request path with an extra slash. CVE-2026-73270 ↗ H 8.2 erlang Improper Handling of Case Sensitivity vulnerability in Erlang/OTP inets httpd allows a remote unauthenticated attacker to read files inside a mod_auth protected directory by requesting them with different casing, on deployments whose… CVE-2026-75538 ↗ H 8.2 erlang An attacker that connects to an open Erlang TCP port that uses the inet driver with {packet,4} mode can use a signed overflow in an incorrect packet length calculation to overflow the receive buffer into the VM allocator area and beyond up… CVE-2026-59696 ↗ M 6.9 erlang Improper Validation of Specified Quantity in Input vulnerability in Erlang/OTP stdlib allows a remote attacker to degrade availability by supplying a URI whose port component is a very long run of digits. CVE-2026-70405 ↗ M 6.3 erlang Improper Validation of Specified Quantity in Input vulnerability in Erlang/OTP snmp allows a remote attacker to degrade availability by sending an SNMP message containing a BER INTEGER whose length field is arbitrarily large. CVE-2026-70409 ↗ M 6.3 erlang Improper Validation of Specified Quantity in Input vulnerability in Erlang/OTP eldap allows a malicious or compromised LDAP server to degrade availability by returning a referral URL whose port component is a very long run of digits. CVE-2026-71562 ↗ M 6.3 erlang Improper Validation of Specified Quantity in Input vulnerability in Erlang/OTP inets httpc allows a malicious or compromised HTTP server to degrade availability by returning a numeric header whose value is a very long run of digits. CVE-2026-74994 ↗ M 6.0 erlang The mod_auth module in OTP's inets httpd server, when configured with dets or mnesia authentication backends and multiple directory configuration blocks, collapses all directory blocks into a single shared user/group namespace. CVE-2026-27171 ↗ M 5.5 zlib zlib before 1.3.2 allows CPU consumption via crc32_combine64 and crc32_combine_gen64 because x2nmodp can do right shifts within a loop that has no termination condition. These are the findings of erlang, which ships every tool in this project. kapsl reports and gates; it never edits an image to clear a finding. Composition default + env, dirname runtime bash composes bash, env, dirname Some tools are only useful composed: a pip-installed CLI needs python as its runtime, bash pulls in coreutils. kapsl resolves that for you — -e git,python:flake8 composes explicitly. Composition default + env, dirname runtime bash composes bash, env, dirname Some tools are only useful composed: a pip-installed CLI needs python as its runtime, bash pulls in coreutils. kapsl resolves that for you — -e git,python:flake8 composes explicitly. Composition default + env, dirname runtime bash composes bash, env, dirname Some tools are only useful composed: a pip-installed CLI needs python as its runtime, bash pulls in coreutils. kapsl resolves that for you — -e git,python:flake8 composes explicitly. Composition default + env, dirname runtime bash composes bash, env, dirname Some tools are only useful composed: a pip-installed CLI needs python as its runtime, bash pulls in coreutils. kapsl resolves that for you — -e git,python:flake8 composes explicitly. Image name erlang platforms amd64 sha256:5c39…bf8e copy arm64 sha256:76a0…61b4 copy size 119 MB unpacked · 1 layer base scratch signed cosign · 2026-08-30 · public key findings last changed 2026-09-16 Sandbox boundary erl capabilities rw Filled is granted to every invocation; the rest need --cap at the point of use. seccomp tier per tool default The syscall filter applied to this tool's entry point. Tools sharing an image do not share a tier. host paths mounted in read-only unless noted ~/.cache/erlang-history · writable env passed through 6 forwarded ERL_AFLAGSERL_EPMD_ADDRESSERL_EPMD_PORTERL_FLAGSERL_LIBSERL_ZFLAGS Nothing else crosses in. No AWS_*, no SSH_AUTH_SOCK unless you ask. env set by kapsl none none per-subcommand no overrides Every invocation gets the same boundary. Where a tool needs more for one subcommand only, kapsl scopes it there rather than granting it everywhere. Sandbox boundary erlc capabilities rw Filled is granted to every invocation; the rest need --cap at the point of use. seccomp tier per tool default The syscall filter applied to this tool's entry point. Tools sharing an image do not share a tier. host paths mounted in read-only unless noted none env passed through 5 forwarded ERL_AFLAGSERL_COMPILER_OPTIONSERL_FLAGSERL_LIBSERL_ZFLAGS Nothing else crosses in. No AWS_*, no SSH_AUTH_SOCK unless you ask. env set by kapsl none none per-subcommand no overrides Every invocation gets the same boundary. Where a tool needs more for one subcommand only, kapsl scopes it there rather than granting it everywhere. Sandbox boundary escript capabilities rw Filled is granted to every invocation; the rest need --cap at the point of use. seccomp tier per tool default The syscall filter applied to this tool's entry point. Tools sharing an image do not share a tier. host paths mounted in read-only unless noted none env passed through 4 forwarded ERL_AFLAGSERL_FLAGSERL_LIBSERL_ZFLAGS Nothing else crosses in. No AWS_*, no SSH_AUTH_SOCK unless you ask. env set by kapsl none none per-subcommand no overrides Every invocation gets the same boundary. Where a tool needs more for one subcommand only, kapsl scopes it there rather than granting it everywhere. Sandbox boundary dialyzer capabilities rw Filled is granted to every invocation; the rest need --cap at the point of use. seccomp tier per tool default The syscall filter applied to this tool's entry point. Tools sharing an image do not share a tier. host paths mounted in read-only unless noted ~/.dialyzer_plt · writable env passed through 5 forwarded DIALYZER_PLTERL_AFLAGSERL_FLAGSERL_LIBSERL_ZFLAGS Nothing else crosses in. No AWS_*, no SSH_AUTH_SOCK unless you ask. env set by kapsl none none per-subcommand no overrides Every invocation gets the same boundary. Where a tool needs more for one subcommand only, kapsl scopes it there rather than granting it everywhere. Provenance sbom amd64 ↗ arm64 ↗ attestation amd64 ↗ arm64 ↗ scan report amd64 ↗ arm64 ↗ vex amd64 ↗ arm64 ↗ Every image ships a full SBOM and a signed build attestation. Nothing here is a claim you have to take on trust. 19 findings across this project at latest. Counted once per advisory across every image the project builds.