Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attacker must already hold the configured secret (PR:H) and only low-entropy values are feasibly recoverable (AC:H); impact is confidentiality-only and low, with no integrity or availability effect.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
Lifecycle Timeline
3DescriptionCVE.org
Use of Password Hash With Insufficient Computational Effort vulnerability in danielberkompas cloak_ecto and danielberkompas cloak allows an attacker who holds the hashed values and the configured secret to brute-force low-entropy plaintexts much faster than configured.
The dump/1 callback that Cloak.Ecto.PBKDF2 (Cloak.Fields.PBKDF2 in cloak before the Ecto code moved to cloak_ecto) injects into a field module calls :pbkdf2.pbkdf2/4 with config[:size] in the iteration-count position. The :iterations setting is validated but never used. With the cloak_ecto defaults (iterations: 600_000, size: 32) each hash runs 32 PBKDF2 rounds instead of 600,000, so offline guessing of values such as email addresses costs about 18,750 times less than configured.
This issue affects cloak_ecto: from 1.0.0-alpha.0 onward; cloak: from 0.7.0 before 1.0.0-alpha.0.
AnalysisAI
Insufficient password-hashing work factor in the Cloak.Ecto PBKDF2 field module causes hashes to be derived with roughly 18,750 times less computational effort than the configured parameters imply, letting anyone who already holds both the stored hash values and the configured :secret brute-force low-entropy plaintexts (such as email addresses) far more cheaply than the library promises. The affected code is cloak_ecto from 1.0.0-alpha.0 onward and cloak from 0.7.0 before 1.0.0-alpha.0; the vulnerable dump/1 callback passes config[:size] (default 32) into PBKDF2's iteration-count position, so each hash runs 32 rounds instead of the default 600,000. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
No credit card · 7-day full trial
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires the application to use Cloak.Ecto.PBKDF2 (or legacy Cloak.Fields.PBKDF2) hashed/blind-index fields, and the attacker must already possess BOTH the stored hash values (e.g., an email_hash column) and the configured :secret - the secret is normally confidential, so this weakness accelerates rather than enables offline cracking. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CNA (Erlang Ecosystem Foundation) assigned CVSS 4.0 base 6.3 (medium) with vector AV:N/AC:L/AT:P/PR:N/UI:N and confidentiality-only low impact (VC:L, VI:N, VA:N). … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Patch status is 'Patch available per vendor advisory' with upstream fix commits published: the commit marked as the patch is https://github.com/danielberkompas/cloak/commit/681c9702b7cd9afe0e5a840751ab009f550c69a9, alongside the cloak_ecto and cloak commits linked from https://cna.erlef.org/cves/CVE-2026-94206.html; a released, tagged patched version is not independently confirmed in the available data, so verify the effective iteration count after upgrading rather than assuming a version number. … Detailed patch versions, workarounds, and compensating controls in full report. |
Threat intelligence, references, and detailed analysis are available after sign-in.
Unbounded recursion in the Elixir `protobuf` Hex package (versions >= 0.8.0, < 0.16.1) lets unauthenticated remote attac
Improper JWT signature verification in Dashbit's nimble_zta (0.1.2 up to but not including 0.1.3) lets an unauthenticate
Session-swapping authentication bypass in the Elixir library AshAuthentication (versions 4.10.0 before 4.15.0 and 5.0.0-
Authentication bypass in the Elixir library ash_authentication lets an attacker who operates one federated identity-prov
Account takeover in AshAuthentication (Elixir/Ash) 4.14.0 through 4.14.x and 5.0.0-rc.10 through 5.0.0-rc.13 lets unauth
Server-Side Request Forgery protection bypass in the Elixir safeurl library (versions 0.1.0 and later) allows unauthenti
Memory-exhaustion denial of service in the elixir-protobuf library (protobuf) from 0.8.0 onward allows an unauthenticate
Atom table exhaustion in the Ash framework (Elixir) allows an unauthenticated remote attacker to crash a BEAM node by su
Ciphertext tampering in the Cloak Elixir encryption library (danielberkompas/cloak, all versions from 0.1.0-pre onward)
Memory exhaustion denial-of-service in Elixir Mint affects versions 1.1.0 through 1.10.x and allows a malicious or compr
Authentication bypass in the AshAuthentication library for Elixir/Ash lets an authenticated attacker who holds a valid s
An authenticated account-takeover primitive exists in the Elixir library AshAuthentication (ash_authentication) versions
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-93091
GHSA-fjfg-jh7h-6w3j