Padding Oracle Attack due to Observable Timing Discrepancy in jose
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-203.
Summary
jose is an npm library providing a number of cryptographic operations. In vulnerable versions AES_CBC_HMAC_SHA2 Algorithm (A128CBC-HS256, A192CBC-HS384, A256CBC-HS512) decryption would always execute both HMAC tag verification and CBC decryption, if either failed `JWEDecryptionFailed` would be thrown. A possibly observable difference in timing when padding error would occur while decrypting the ciphertext makes a padding oracle and an adversary might be able to make use of that oracle to decrypt data without knowing the decryption key by issuing on average 128*b calls to the padding oracle (where b is the number of bytes in the ciphertext block). All major release versions have had a patch released which ensures the HMAC tag is verified before performing CBC decryption. The fixed versions are `^1.28.1 || ^2.0.5 || >=3.11.4`. Users should upgrade their v1.x dependency to ^1.28.1, their v2.x dependency to ^2.0.5, and their v3.x dependency to ^3.11.4. Thanks to Jason from Microsoft Vulnerability Research (MSVR) for bringing this up and Eva Sarafianou (@esarafianou) for helping to score this advisory.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| panva | jose | before 1.28.1; 2.0.0 to before 2.0.5; 3.0.0 to before 3.11.4 | 1.28.1, 2.0.5, 3.11.4 | Patch available | CNA |
| — | jose (npm) | 1.0.0 to before 1.28.1 | 1.28.1 | Patch available | GHSA-58f5-hfqc-jgch |
| — | jose (npm) | 2.0.0 to before 2.0.5 | 2.0.5 | Patch available | GHSA-58f5-hfqc-jgch |
| — | jose (npm) | 3.0.0 to before 3.11.4 | 3.11.4 | Patch available | GHSA-58f5-hfqc-jgch |
- jose Vendorpanva Affected before 1.28.1; 2.0.0 to before 2.0.5; 3.0.0 to before 3.11.4 Fixed in 1.28.1, 2.0.5, 3.11.4 Patch available CNA
- jose (npm) Vendor— Affected 1.0.0 to before 1.28.1 Fixed in 1.28.1 Patch available GHSA-58f5-hfqc-jgch
- jose (npm) Vendor— Affected 2.0.0 to before 2.0.5 Fixed in 2.0.5 Patch available GHSA-58f5-hfqc-jgch
- jose (npm) Vendor— Affected 3.0.0 to before 3.11.4 Fixed in 3.11.4 Patch available GHSA-58f5-hfqc-jgch
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:panva:jose:*:*:*:*:*:node.js:*:* | 1.0.0 to before 1.28.1; 2.0.0 to before 2.0.5; 3.0.0 to before 3.11.4 | Vulnerable | panva |
- cpe:2.3:a:panva:jose:*:*:*:*:*:node.js:*:* Versions 1.0.0 to before 1.28.1; 2.0.0 to before 2.0.5; 3.0.0 to before 3.11.4 Vulnerable ·panva
Remediation
- Fix · CNA jose (panva) Fixed in 1.28.1, 2.0.5, 3.11.4
- Fix · GHSA-58f5-hfqc-jgch jose (npm) Fixed in 1.28.1 Advisory →
- Fix · GHSA-58f5-hfqc-jgch jose (npm) Fixed in 2.0.5 Advisory →
- Fix · GHSA-58f5-hfqc-jgch jose (npm) Fixed in 3.11.4 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2021-29443
- 2026-10-03 Alias added: GHSA-58f5-hfqc-jgch
References
More panva Jose vulnerabilities
- TI-2022-16506 JOSE vulnerable to resource exhaustion via specifically crafted JWE CVSS 3.1MEDIUM 5.3
Sources
- CVE-2021-29443 · CVE Program
- CVE-2021-29443 · NVD
- FIRST EPSS
- GHSA-58f5-hfqc-jgch · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences