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.
Published: 2026-10-06
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Password Hash Weakness
Action: Apply Patch
AI Analysis

Impact

The vulnerability stems from a bug in the Cloak.Ecto.PBKDF2 implementation where the configured iteration count is ignored. Instead of using the configured 600 000 iterations, the algorithm uses only 32 rounds defined by the :size parameter. This dramatically reduces the computational cost of cracking stored password hashes, allowing an adversary who has the hash and the secret to brute‑force low‑entropy plaintexts approximately 18,750 times faster. Consequently, confidentiality of user credentials is severely compromised.

Affected Systems

The flaw exists in the danielberkompas cloak_ecto library from version 1.0.0‑alpha.0 onward and in the cloak library from version 0.7.0 up to, but excluding, 1.0.0‑alpha.0. Systems using either package in these releases are vulnerable.

Risk and Exploitability

With a CVSS score of 6.3 the flaw presents a moderate severity risk. The EPSS score is below 1%, indicating a very low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog. Based on the description, it is inferred that the attack vector is offline; an attacker who obtains the hashed values and the configured secret can perform a brute‑force search with dramatically lower effort. As the vulnerability is a Password Hash With Insufficient Computational Effort, it directly weakens the integrity of authentication mechanisms.

Generated by OpenCVE AI on October 6, 2026 at 15:17 UTC.

Remediation

Vendor Workaround

Override dump/1 in the field module that uses Cloak.Ecto.PBKDF2, so that it calls :pbkdf2.pbkdf2/5 with the configured :iterations and :size. Then recompute all stored hashes, because the existing values no longer match.


OpenCVE Recommended Actions

  • Upgrade cloak_ecto to the latest stable release that contains the patch (commits 8699e6417a… or newer) or apply the hot‑fix commit directly.
  • Override the dump/1 callback to call :pbkdf2.pbkdf2/5 with the configured :iterations and :size, ensuring that future hashes use the intended iteration count.
  • Re‑hash all existing stored password hashes with the corrected function so that the security margin is restored.

Generated by OpenCVE AI on October 6, 2026 at 15:17 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 06 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 06 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
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.
Title Cloak PBKDF2 field ignores the configured iteration count and runs only :size rounds
First Time appeared Danielberkompas
Danielberkompas cloak
Danielberkompas cloak Ecto
Weaknesses CWE-916
CPEs cpe:2.3:a:danielberkompas:cloak:*:*:*:*:*:*:*:*
cpe:2.3:a:danielberkompas:cloak_ecto:*:*:*:*:*:*:*:*
Vendors & Products Danielberkompas
Danielberkompas cloak
Danielberkompas cloak Ecto
References
Metrics cvssV4_0

{'score': 6.3, 'vector': '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'}


Subscriptions

Danielberkompas Cloak Cloak Ecto
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-10-06T11:36:25.466Z

Reserved: 2026-09-24T09:30:02.102Z

Link: CVE-2026-94206

cve-icon Vulnrichment

Updated: 2026-10-06T11:34:55.954Z

cve-icon NVD

Status : Deferred

Published: 2026-10-06T09:17:56.813

Modified: 2026-10-06T15:03:59.427

Link: CVE-2026-94206

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-06T19:00:05Z

Weaknesses
  • CWE-916

    Use of Password Hash With Insufficient Computational Effort