# CVE-2026-65629: Weak PBKDF2 parameters for password-encrypted private-key export in jose


- **Severity:** High 7.4 (`CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N`)
- **Exploited in the wild:** Not known
- **Fix available:** Yes
- **Published:** 26 Oct 2026
- **Updated:** 26 Oct 2026
- **Also known as:** DEBIAN-CVE-2026-65629, EEF-CVE-2026-65629, GHSA-h4gx-8jq2-mfhc, UBUNTU-CVE-2026-65629

## What is CVE-2026-65629?

CVE-2026-65629 is a high-severity vulnerability in potatosalad jose, published on 26 Oct 2026. 

### Official description

Use of Password Hash With Insufficient Computational Effort in the jose library allows an attacker who obtains a password-encrypted private-key export to recover the private key through an offline password-cracking attack.

When jose exports a password-encrypted private key with jose_jwk:to_der/2 (JOSE.JWK.to_der/2), the jose_jwk_der:to_binary/3 function in src/jwk/jose_jwk_der.erl serializes the key as a PKCS#8 EncryptedPrivateKeyInfo using the PBES2 scheme with hardcoded key-derivation parameters: PBKDF2-HMAC-SHA256 with an iteration count of 2048 and an 8-byte (64-bit) random salt. Neither value can be overridden by the caller.

Both values are far below current guidance (OWASP recommends on the order of 600,000 iterations for PBKDF2-HMAC-SHA256, and NIST recommends salts of at least 128 bits), so the key-stretching work factor is roughly 300 times lower than intended and the short salt reduces the cost of precomputation across keys. The symmetric encryption (AES-256-CBC with a 16-byte random IV) is not affected; the weakness is entirely in the derivation strength. An attacker who obtains one of these exported blobs (for example from a backup, configuration repository, object storage, or logs) can mount a cheap offline dictionary or brute-force attack against the export password, and success yields the full private key.

This issue affects jose: from 1.10.0 before 1.11.13.

Weakness: CWE-916 (Use of Password Hash With Insufficient Computational Effort)

## Which versions are affected by CVE-2026-65629?

1 open source package ship an affected version, including jose.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `jose` | Hex | From 1.10.0 | 1.11.13 |

## How do I fix CVE-2026-65629?

Upgrade jose to 1.11.13 or later.

## Is CVE-2026-65629 being exploited?

There is no known exploitation of CVE-2026-65629 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-65629 and fix it if it is affected.

What it is: CVE-2026-65629 is a high-severity vulnerability in potatosalad jose, published on 26 Oct 2026. 
Exploitation: There is no known exploitation of CVE-2026-65629 in the wild and no public exploit code.

Affected packages and fixed versions:
- jose (Hex): affected from 1.10.0; fixed in 1.11.13

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-65629/ (Markdown: https://insights.sbomify.com/CVE-2026-65629/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-65629
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-65629
- OSV: https://osv.dev/vulnerability/CVE-2026-65629

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-65629/
Summaries are generated and may contain mistakes; the official description above is the record.
