Quick answers
- Is CVE-2021-29444 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2021-29444 being exploited in the wild.
- How severe is CVE-2021-29444?
- Low severity, with a CVSS score of 3.1, published 19 April 2021.
- Which products and versions are affected?
- jose-browser-runtime (npm) SEMVER:introduced=0,fixed=3.11.4.
- Is there a fix for CVE-2021-29444?
- Yes. jose-browser-runtime (npm): upgrade to 3.11.4 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2021-29444 attacked?
- It is attacked over the network.
- Am I affected by CVE-2021-29444?
- Check whether you run jose-browser-runtime (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- jose-browser-runtime (npm): upgrade to 3.11.4 or later
npm install jose-browser-runtime@3.11.4
Technical details
The vulnerability is a padding oracle attack arising from observable timing discrepancies in the AES_CBC_HMAC_SHA2 decryption algorithm (A128CBC-HS256, A192CBC-HS384, A256CBC-HS512). The vulnerable code performs HMAC tag verification and CBC decryption in a specific order without constant-time comparison, causing measurable timing differences when padding validation fails versus when HMAC verification fails. An attacker with network access to a service using the library can issue crafted JWE payloads and measure response times to determine correct padding byte-by-byte, enabling full decryption without the key (approximately 128*b queries needed where b is the ciphertext block size). The fix ensures HMAC verification is performed before CBC decryption and uses constant-time comparison. Patched in version 3.11.4 and later.
Affected products
- Jose jose-browser-runtime < 3.11.4
Identifiers
- CVE-2021-29444
- GHSA-94hh-pjjg-rwmr
Timeline
- 2021-04-15: disclosed
- 2021-04-15: patched: Fixed in version 3.11.4