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-27 3 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 H1M1L1 erlang The Erlang emulator and interactive shell ▸ erlc rw default H1M1L1 erlang erlc compiles Erlang source to BEAM bytecode ▸ escript rw default H1M1L1 erlang escript runs Erlang scripts without a separate compile step ▸ dialyzer rw default H1M1L1 erlang dialyzer finds type errors and dead code in BEAM bytecode ▸ showing erl erlc escript dialyzer from erlang@latest → 29.0.5 stable Findings H1M1L1 identical on amd64, arm64 — one table describes both CVE Sev CVSS Affects Description CVE-2026-14456 ↗ H 7.5 openssl Issue summary: When an OpenSSL QUIC server (Listener SSL object) processes valid QUIC Initial packets for unknown destination connection IDs, it can allocate and queue new incoming channels without enforcing any limit. 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. CVE-2026-75803 ↗ L — openssl CVE-2026-75803 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, bash runtime none — self-contained composes env, bash 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, bash runtime none — self-contained composes env, bash 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, bash runtime none — self-contained composes env, bash 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, bash runtime none — self-contained composes env, bash 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 image ghcr.io/kapsl-sh/erlang:29.0.5 digest sha256:19e5…8587 copy platforms amd64 sha256:8ebc…ae2c copy arm64 sha256:a103…8548 copy size 119 MB unpacked · 1 layer base scratch signed cosign · verified last scan 2026-08-27 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. dotfiles mapped 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. dotfiles mapped 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. dotfiles mapped 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. dotfiles mapped 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 ↗ grype · 2026-08-27 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. 3 findings across this project at latest. Counted once per advisory across every image the project builds.