Impact
Plug.Crypto performs argument type validation through function-head guards, and a guard failure triggers a FunctionClauseError that includes the exact argument values in the top stack frame. When the provided token or comparison operand is not a binary, the guard fails, and the Erlang VM raises an error that propagates the secret key base, a derived key, or an API key into application logs or error-tracking crash reports. This reveals sensitive configuration values and constitutes a confidentiality violation, described by the CWE‑532 weakness.
Affected Systems
The vulnerability is present in the Elixir Plug library and its plug_crypto submodule. It affects plug versions from 1.6.3 up to, but not including, 1.7.0, and plug_crypto versions from 1.0.0 up to, but not including, 2.2.1. The affected products are identified by the cpe strings for elixir-plug:plug and elixir-plug:plug_crypto.
Risk and Exploitability
The CVSS score of 5.1 indicates a moderate severity. EPSS data is not available, and the vulnerability is not listed in the CISA KEV catalog. An unauthenticated remote attacker can trigger the guard failure by sending a wrong-typed parameter; however, the secret is exposed only through logged stack traces or forwarded error reports, so the attacker must have access to application logs or an error‑tracking system that forwards them. The practical threat is limited to environments where logs are centrally monitored or visible to third parties, but the confidentiality impact of leaked secret keys remains significant.
OpenCVE Enrichment