Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corriger bug CSRF avec FranceConnect #4637

Open
sentry-sentry-incubateur-net bot opened this issue Sep 16, 2024 · 2 comments
Open

Corriger bug CSRF avec FranceConnect #4637

sentry-sentry-incubateur-net bot opened this issue Sep 16, 2024 · 2 comments
Assignees
Labels

Comments

@sentry-sentry-incubateur-net
Copy link

On a près de 300 erreurs par mois qui empêchent des usagers de se connecter avec FranceConnect. Depuis le dashboard partenaires FC on a accès à des statistiques. J’ai pu voir qu’il y a eu 8500 connexions réussies dans le mois dernier. Ces erreurs représentent donc 3% des cas ce qui est faible mais non-négligeable.

Ces erreurs sont levées par la gem omniauth_openid_connect et signalent à la fois une CSRF et un state invalide : https://github.com/omniauth/omniauth_openid_connect/blob/f9779f098dbc870c4789c1ff928c5883733f5366/lib/omniauth/strategies/openid_connect.rb#L133

Je me demande si on ne fait pas un doublon de checks CSRF avec la gem https://github.com/cookpad/omniauth-rails_csrf_protection/ et si l’erreur pourrait venir de là ? cf cette issue GH qui suggère d’appeler skip_forgery_protection, peut-être que ça ne désactive qu’un des deux appels de vérification CSRF ?

Sentry Issue: LAPINS-15X

OmniAuth::Strategies::OpenIDConnect::CallbackError: csrf_detected | Invalid 'state' parameter (OmniAuth::Strategies::OpenIDConnect::CallbackError)
  config/initializers/cookie_overflow_notify.rb:10:in `call'
    @app.call(env)
  config/initializers/fallback_error_middleware.rb:8:in `call'
    response = @app.call(env)
...
(231 additional frame(s) were not displayed)
@adipasquale
Copy link
Contributor

petit ping @victormours est-ce que tu as des pistes pour cette issue ?

@victormours
Copy link
Contributor

victormours commented Oct 15, 2024

pas de solution évidente, mais le premier truc à faire pour y voir plus clair ça serait de logger le state des params et de la session pour voir à quoi ça ressemble

edit : ça peut tout simplement être des sessions qui ont expiré pendant que l'usager était sur franceconnect (s'il laisse l'onglet ouvert sur son téléphone et y revient plusieurs heures plus tard)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: 🔖 Ready
Development

No branches or pull requests

2 participants