CVE-2026-105963: CWE-532 Insertion of Sensitive Information into Log File in elixir-plug plug
Description
CVE-2026-105963 is a medium severity vulnerability in elixir-plug's plug and plug_crypto libraries that causes sensitive information, including secret key bases, to be inserted into application logs. This occurs due to improper handling of function argument type validation failures, which leads to error logs containing secret values. The vulnerability 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. Exploitation requires separate access to logs or error trackers, as the secret is not disclosed directly through the request alone.
CVSS v4.0
Score 5.1medium
Affected software
elixir-plug
plug
elixir-plug
plug
elixir-plug
plug_crypto
elixir-plug
plug_crypto
cpe:2.3:a:elixir-plug:plug:*:*:*:*:*:*:*:*cpe:2.3:a:elixir-plug:plug_crypto:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability arises because every public function in Plug.Crypto validates argument types using function-head guards. When a guard fails, the Erlang VM raises a FunctionClauseError that includes the actual argument values in the top stack frame. This frame can contain sensitive data such as the secret key base or derived keys. The rescue blocks and Plug.Crypto.prune_args_from_stacktrace/1 only handle exceptions raised inside function bodies, not guard failures. Plug.Cowboy and Bandit write this stack frame to error logs and attach it as crash_reason Logger metadata, which error trackers forward. Two main entry points are affected: Plug.Crypto.verify/4, which exposes the secret key base when the token argument is neither binary nor nil, and Plug.Crypto.secure_compare/2, which exposes the other operand when one side is not binary (e.g., nil from a missing request header). Since reading the leaked secret requires access to logs or error trackers, the vulnerability does not allow secret disclosure from the request alone.
Potential Impact
An unauthenticated remote attacker can cause the application to log sensitive information including secret key bases and derived keys. This exposure occurs in error logs and crash metadata, potentially allowing attackers with access to logs or error tracking systems to obtain secrets. The vulnerability does not allow direct secret disclosure via network requests alone, limiting the attack vector to those with log access.
Mitigation Recommendations
Patch to plug version 1.7.0 or later and plug_crypto version 2.2.1 or later where this issue is fixed. Since no vendor advisory or patch links are provided, confirm patch availability with the vendor or official sources. Until patched, restrict access to logs and error tracking systems to trusted personnel only to prevent secret leakage. Monitor for updates from the elixir-plug project regarding official fixes.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-10-06T10:30:01.805Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6adb33e24d27ba8daaf6b4d8
Added to database: 10/23/2026, 10:16:02 UTC
Last enriched: 10/23/2026, 10:30:18 UTC
Last updated: 10/23/2026, 10:30:59 UTC
Views: 6
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.