Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| danielberkompas | cloak_ecto | 1.0.0-alpha.0 | — |
| danielberkompas | cloak | 0.7.0 – < 1.0.0-alpha.0 | 1.0.0-alpha.0 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Hex | cloak | >= 0.7.0, < 1.0.0-alpha.0 | 1.0.0-alpha.0 | EEF-CVE-2026-94206 |
| Hex | cloak_ecto | >= 1.0.0-alpha.0 | — | EEF-CVE-2026-94206 |
References
- EEF CNA record for CVE-2026-94206 related third-party-advisory
- OSV record EEF-CVE-2026-94206 related
- Introducing commit a8fa164 in danielberkompas/cloak_ecto related
- Introducing commit 8699e64 in danielberkompas/cloak related
- Fix commit 681c970 in danielberkompas/cloak patch