Lucene search

K
githubGitHub Advisory DatabaseGHSA-2CCF-FFRJ-M4QW
HistoryApr 21, 2023 - 10:32 p.m.

CSRF token fixation in fastify-passport

2023-04-2122:32:47
CWE-352
GitHub Advisory Database
github.com
27
csrf token
fastify
passport
synchronizer token pattern
session
secure session
same-site attackers
fixate
csrf attack
clear session
configuration options
session attributes

6.5 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N

0.001 Low

EPSS

Percentile

30.7%

The CSRF protection enforced by the @fastify/csrf-protection library, when combined with @fastify/passport, can be bypassed by network and same-site attackers.

Details

fastify/csrf-protection implements the synchronizer token pattern (using plugins @fastify/session and @fastify/secure-session) by storing a random value used for CSRF token generation in the _csrf attribute of a user’s session.

The @fastify/passport library does not clear the session object upon authentication, preserving the _csrf attribute between pre-login and authenticated sessions. Consequently, CSRF tokens generated before authentication are still valid. Network and same-site attackers can thus obtain a CSRF token for their pre-session, fixate that pre-session in the victim’s browser via cookie tossing, and then perform a CSRF attack after the victim authenticates.

Fix

As a solution, newer versions of @fastify/passport include the configuration options

  • clearSessionOnLogin (default: true) and
  • clearSessionIgnoreFields (default: ['session'])

to clear all the session attributes by default, preserving those explicitly defined in clearSessionIgnoreFields.

Credits

Affected configurations

Vulners
Node
fastifypassportRange<2.3.0
OR
fastifypassportRange<1.1.0

6.5 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N

0.001 Low

EPSS

Percentile

30.7%

Related for GHSA-2CCF-FFRJ-M4QW