Skip to content
Heist/ feed
Medium

Cloak PBKDF2 field ignores the configured iteration count and runs only :size rounds

Type: advisorySource: Official CVE List1 source record

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.

Announced Group revision 1
Original source ↗

CVE-2026-94206

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-94206

cloak_ecto

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

cloak_ecto

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

cloak

Source reference: /containers/cna/affected/2/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

cloak

Source reference: /containers/cna/affected/3/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "cpes": [
      "cpe:2.3:a:danielberkompas:cloak_ecto:*:*:*:*:*:*:*:*"
    ],
    "repo": "https://github.com/danielberkompas/cloak_ecto",
    "vendor": "danielberkompas",
    "modules": [
      "'Elixir.Cloak.Ecto.PBKDF2'"
    ],
    "product": "cloak_ecto",
    "versions": [
      {
        "status": "affected",
        "version": "1.0.0-alpha.0",
        "lessThan": "*",
        "versionType": "semver"
      }
    ],
    "packageURL": "pkg:hex/cloak_ecto",
    "packageName": "cloak_ecto",
    "programFiles": [
      "lib/cloak_ecto/types/pbkdf2.ex"
    ],
    "collectionURL": "https://repo.hex.pm",
    "defaultStatus": "unaffected"
  },
  {
    "cpes": [
      "cpe:2.3:a:danielberkompas:cloak_ecto:*:*:*:*:*:*:*:*"
    ],
    "repo": "https://github.com/danielberkompas/cloak_ecto",
    "vendor": "danielberkompas",
    "modules": [
      "'Elixir.Cloak.Ecto.PBKDF2'"
    ],
    "product": "cloak_ecto",
    "versions": [
      {
        "status": "affected",
        "version": "a8fa1642b02f1c445a1ee8794c9095eb0921f8f3",
        "lessThan": "*",
        "versionType": "git"
      }
    ],
    "packageURL": "pkg:github/danielberkompas/cloak_ecto",
    "packageName": "danielberkompas/cloak_ecto",
    "programFiles": [
      "lib/cloak_ecto/types/pbkdf2.ex"
    ],
    "collectionURL": "https://github.com",
    "defaultStatus": "unaffected"
  },
  {
    "cpes": [
      "cpe:2.3:a:danielberkompas:cloak:*:*:*:*:*:*:*:*"
    ],
    "repo": "https://github.com/danielberkompas/cloak",
    "vendor": "danielberkompas",
    "modules": [
      "'Elixir.Cloak.Fields.PBKDF2'"
    ],
    "product": "cloak",
    "versions": [
      {
        "status": "affected",
        "version": "0.7.0",
        "lessThan": "1.0.0-alpha.0",
        "versionType": "semver"
      }
    ],
    "packageURL": "pkg:hex/cloak",
    "packageName": "cloak",
    "programFiles": [
      "lib/cloak/fields/pbkdf2.ex"
    ],
    "collectionURL": "https://repo.hex.pm",
    "defaultStatus": "unaffected"
  },
  {
    "cpes": [
      "cpe:2.3:a:danielberkompas:cloak:*:*:*:*:*:*:*:*"
    ],
    "repo": "https://github.com/danielberkompas/cloak",
    "vendor": "danielberkompas",
    "modules": [
      "'Elixir.Cloak.Fields.PBKDF2'"
    ],
    "product": "cloak",
    "versions": [
      {
        "status": "affected",
        "version": "8699e6417a162c39d9f0ef63511bd23d3f38d1d2",
        "lessThan": "681c9702b7cd9afe0e5a840751ab009f550c69a9",
        "versionType": "git"
      }
    ],
    "packageURL": "pkg:github/danielberkompas/cloak",
    "packageName": "danielberkompas/cloak",
    "programFiles": [
      "lib/cloak/fields/pbkdf2.ex"
    ],
    "collectionURL": "https://github.com",
    "defaultStatus": "unaffected"
  }
]
Related CVEs
CVE-2026-94206

Source reference: /cveMetadata/cveId

Publisher severity

medium

Source reference: /containers/cna/metrics

Event
#9203 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement