elixir-fips
Echo's FIPS-validated Elixir image — the Elixir runtime for concurrent, fault-tolerant applications, built on FIPS 140-3 validated cryptography for FedRAMP and US government workloads.
What is Elixir FIPS?
The Elixir image packages the Elixir language, the Mix build tool, and the Erlang/OTP runtime they depend on, so you can compile and run Elixir applications in a container. Elixir is a functional, concurrent language that runs on the BEAM virtual machine, inheriting Erlang's reputation for fault tolerance, low latency, and massive concurrency, and is widely used for real-time web applications built with Phoenix, messaging and chat systems, IoT backends, and distributed services. The official image is most often used as the build stage of a multi-stage Dockerfile that runs mix release and copies the release into a minimal runtime image, and it is also used as a ready-made environment for running mix test in CI. It is used by backend teams and platform teams that need a reproducible, version-pinned Elixir and OTP combination across development, staging, and production.
The Elixir FIPS image is Echo's FIPS variant of Elixir: the same build and runtime environment, built to run on FIPS 140-3 validated cryptography. It is designed for organizations that sell to or operate for the US government — FedRAMP-authorized services, federal contractors, and regulated industries — where a build and runtime environment that compiles code and runs long-lived, network-facing services must use cryptographic modules with an active NIST CMVP certificate, not merely FIPS-enabled libraries.
What is Echo's Elixir FIPS image?
Echo's Elixir FIPS image is a hardened, FIPS-validated build of Elixir on Echo's hardened base. Cryptography on this image is routed through the Echo FIPS Provider for OpenSSL, a software module validated under FIPS 140-3 (NIST CMVP certificate #5560, Level 1, active). Echo images are designed to be a drop-in replacement: swap the image reference in your Dockerfile or deployment manifest for the elixir-fips image and CVEs go to zero without disrupting your Mix releases, OTP configuration, and CI pipeline steps. Every image is tested across clouds, image use cases, and deployment targets. Echo ships every image in two variants:
- Distroless variant — optimized for runtime use, with the smallest possible attack surface
- Default variant — includes essential build tools, package managers, and shells for teams that need operational access
For production Elixir deployments, the distroless variant keeps all runtime operations — compilation, release building, test execution, and BEAM runtime operation — fully intact while minimizing exposure; the default variant suits application and platform teams that need shell access for opening an IEx session, debugging releases, or inspecting the Hex package cache.
What is the difference between Echo's Elixir FIPS image and the public Elixir image?
Public Elixir images ship on general-purpose bases whose cryptographic libraries have not been validated under FIPS 140-3, and FIPS-enabled is not the same as FIPS-validated — auditors for FedRAMP and other federal frameworks flag the gap. Those bases also include OS-level tooling convenient for development but which contribute CVEs that accumulate on a build and runtime environment used in production. Elixir images run with access to your application code, dependencies, and the environment variables and credentials your orchestrator injects. OS-level CVEs in the base image — particularly in libraries such as openssl, ncurses, and libstdc++ used by Erlang/OTP — create exploitable paths that bypass application-layer controls entirely. For teams running many services, the image is also one of the largest sources of scanner noise in the CI pipeline — every package in the base becomes a finding your security team must triage, even when none of it is reachable from the application. Echo's FIPS build retains everything Elixir needs for compilation, release building, test execution, and BEAM runtime operation while routing cryptography through a validated module and removing the packages that don't belong in a production Elixir build and runtime environment. As we covered in our post on how to protect your company from software supply chain attacks, runtime and build images that combine access to source code, secrets, and network exposure are among the widest attack surfaces in the container stack. Echo commits to a 7-day SLA for critical and high severity vulnerabilities, and 10 days for medium, low, and unknown — with vulnerabilities triaged within 24 hours. Echo FIPS images are STIG-hardened, ship with SBOMs in SPDX and CycloneDX formats and signed provenance, and are recognized by all major scanners and mirrored to all major registries, so they fit into existing pipelines without changing your registry, scanner, or runtime tooling.
FAQ
Can I replace my Elixir image with Echo's Elixir FIPS image?
Yes. Echo's Elixir FIPS image is a drop-in replacement. Update the FROM line in your Dockerfile to the elixir-fips image and your workloads keep running. Mix dependency resolution, release building, runtime configuration, distributed Erlang settings, and test execution all continue to work without changes to your mix.exs or deployment configuration. Because FIPS mode disallows non-approved algorithms, anything that depends on legacy ciphers or hashes such as MD5-based signatures needs to move to approved algorithms.
Is Echo's Elixir FIPS image FIPS-validated?
Yes. Echo's FIPS images use CMVP-validated cryptographic modules, operating in a configuration consistent with the module's FIPS 140-3 security policy. Cryptography on this image is routed through the Echo FIPS Provider for OpenSSL, a software module validated under FIPS 140-3 (NIST CMVP certificate #5560, Level 1, active). That makes the image fit for federal use — unlike FIPS-enabled or FIPS-compliant images whose cryptographic libraries have never been validated. This matters for teams running Elixir inside FedRAMP boundaries, where a build and runtime environment that compiles code and runs long-lived, network-facing services must meet cryptographic requirements across the full stack. Echo also provides a FIPS runtime tester that executes approved and unapproved algorithms to show how the image behaves at runtime.
What is Echo's vulnerability management SLA on the Elixir FIPS image?
Echo commits to a 7-day SLA for critical and high severity vulnerabilities, and 10 days for medium, low, and unknown — with vulnerabilities triaged within 24 hours. Patches are mirrored automatically into your private registry so you're always running a clean version — critical for a build and runtime environment that runs with access to your code, dependencies, and injected secrets.
Is Echo's Elixir FIPS image distroless?
Echo ships every image in two variants: a distroless variant optimized for runtime use, and a default variant that includes essential build tools, package managers, and shells. For production Elixir deployments, the distroless variant is the leaner, more secure choice; for application and platform teams that need shell access for opening an IEx session, debugging releases, or inspecting the Hex package cache, the default variant is the right fit.
How does Echo achieve such a drastic CVE reduction in Elixir?
Echo's Elixir FIPS image is built from source with only the absolute essentials needed to run the Elixir build and runtime environment, which significantly shrinks the attack surface. Echo also patches aggressively over time, with backports available so you can stay on the Elixir version your applications and their dependencies are certified against — avoiding a disruptive upgrade forced purely by OS-level vulnerabilities in the base image rather than by your own requirements.
Will Echo's Elixir FIPS image help us achieve FedRAMP?
Yes. The hard parts of FedRAMP — managing vulnerabilities, applying fixes, and using FIPS-validated cryptography — are baked into Echo images, including STIG-hardened configuration and ConMon/POA&M-ready reporting. For application and platform teams running Elixir under an ATO — whether that's a Phoenix web application, a real-time messaging service, or a distributed backend handling government data — Echo's FIPS-validated Elixir image keeps the build and runtime environment layer in-boundary and compliant without requiring custom hardening scripts or manual base image patching between compliance cycles.
.avif)