Timing Attack Affecting fernet Open this link in a new tab package, versions <0.1.0 >=0.0.1

  • Attack Complexity


  • Confidentiality


Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • snyk-id


  • published

    22 Nov 2016

  • disclosed

    6 Mar 2014

  • credit

    Chris Continanza

Introduced: 6 Mar 2014

CWE-208 Open this link in a new tab

How to fix?

Upgrade fernet to version 0.1.0 or higher.


fernet is a Javascript implementation of Fernet symmetric encryption. Affected versions of the package are vulnerable to a timing attack.

The library implemented a character to character comparison, similar to the built-in string comparison mechanism, ===, and not a time constant string comparison. As a result, the comparison will fail faster when the first characters in the HMAC are incorrect. An attacker can use this difference to perform a timing attack, essentially allowing them to guess the HMAC one character at a time.

You can read more about timing attacks in Node.js on the Snyk blog.