WIP: empêcher le contrôle des redirections sur les mails d'enregistrement et de réinitialisation de mot de passe (#76835) #44
Closed
bdauvergne
wants to merge 2 commits from
wip/76835-Verifier-la-possibilite-de-redir
into main
pull from: wip/76835-Verifier-la-possibilite-de-redir
merge into: entrouvert:main
entrouvert:main
entrouvert:wip/82541-role-summary-layout
entrouvert:wip/82736-account-create-as-recent-authn
entrouvert:wip/84017-Une-configuration-OIDC-avec-des
entrouvert:wip/84096-Page-recapitulaitve-des-roles-JS
entrouvert:wip/84093-auth-fc-ajouter-le-mapping-par-d
entrouvert:wip/16474-manage-tri-asciibetique-des-rol
entrouvert:wip/83425-Hote-manquant-sur-l-affichage-de
entrouvert:wip/83841-auth-oidc-jwkset-renewal
entrouvert:wip/10688-Do-not-raise-AssertError-when-ge
entrouvert:wip/70439-ldap-crash-sur-une-erreur-de-mot
entrouvert:wip/84084-tests-desactiver-le-gestionnaire
entrouvert:wip/84019-tox-ini-retirer-la-constrainte-p
entrouvert:wip/68946-auth-oidc-provider-jwkset-from-wellknown
entrouvert:wip/81969-ldap-down-authn-failure-message
entrouvert:wip/83700-api-users-crud-phone-uniqueness-tel
entrouvert:wip/83730-authenticators-fix-helptext
entrouvert:wip/82737-authn-tel-post-registration-account-selection-buggy-form
entrouvert:wip/82739-account-deletion-no-phone-yet-validated
entrouvert:wip/82522-ldap-user-bo-page-no-deletion-info
entrouvert:wip/83078-role-summary-refresh-cache-job-infra
entrouvert:wip/82389-manager-fix-slug-computing-on-role-creation
entrouvert:wip/83211-a11y-add-title-attribute-to-password-policy-rules
entrouvert:wip/83078-role-summary-refresh-cache
entrouvert:wip/76858-Ne-pas-permettre-la-reutilisatio
entrouvert:wip/76835-open-redirection
entrouvert:wip/83227-phone-based-registration-api-save-registration-data
entrouvert:wip/83190-phone-registration-api-endpoint
entrouvert:wip/83024-idp-oidc-authz-default-max-value
entrouvert:wip/81334-manage-apiclient-edit-tabs
entrouvert:wip/81845-bo-form-error-on-hidden-tab
entrouvert:wip/82388-phone-authn-accounts-verification-label
entrouvert:wip/66416-ldap-add-ppolicy-support
entrouvert:wip/82128-do-not-migrate-role-attribution-condition-with-on-name-set
entrouvert:wip/81943-drf314
entrouvert:wip/81945-bookworm-jwcrypto-version
entrouvert:wip/81282-remove-user-phone-column
entrouvert:wip/81478-csv-buggy-password-hashes
entrouvert:wip/81152-phone-info-stats
entrouvert:wip/75255-user-details-effective-deletion-alert-date
entrouvert:wip/79807-zxcvbn-champs-profil
entrouvert:wip/80236-vacuum-at-cleanup
entrouvert:wip/78907-zxcvbn-champs-profil
entrouvert:wip/72614-phone-identifier-modification-ui
entrouvert:wip/79183-phone-authn-healthcheck-endpoint
entrouvert:wip/75474-auth-oidc-active-attributes-mapping
entrouvert:wip/79135-user-phone-model-field-deprecation
entrouvert:wip/79489-configuration-d-un-moyen-d-authe
entrouvert:wip/79507-page-d-info-sur-un-moyen-d-authe
entrouvert:wip/79528-libelle-valeur-par-defaut-du-sys
entrouvert:wip/77243-Voir-les-roles-administres-par-u
entrouvert:tmp-test-authn-migration
entrouvert:wip/78919-authn-local-admin-manager-perm
entrouvert:wip/78046-password-authn-identifier-selection
entrouvert:wip/78409-password-lost-phone-retrieval-next-url
entrouvert:wip/78096-password-lost-phone-retrieval-next-url
entrouvert:wip/78157-phone-registration-enforce-signed-next-url
entrouvert:wip/77756-authn-addroleaction-conditions
entrouvert:wip/77452-idp-oidc-ne-pas-lever-d-erreur-c
entrouvert:wip/77296-default-saml-service-appearance
entrouvert:wip/77366-authn-manager-oidc-claim-edit
entrouvert:wip/77309-default-saml-service-appearance
entrouvert:wip/69890-password-lost-sms-recovery
entrouvert:wip/72449-login-authn-single-identifier-field
entrouvert:wip/74969-auth-oidc-masquer-les-options-ho
entrouvert:wip/75138-sso-authz-default-appearance
entrouvert:wip/75139-neutral-authz-theme-bo-config
entrouvert:wip/76809-poser-HttpOnly-sur-le-cookie-OPE
entrouvert:wip/72538-auth-oidc-prompt-none-error
entrouvert:wip/76542-utiliser-hobo-multitenant-spoole
entrouvert:wip/76342-a2_rbac-role-natural-keys
entrouvert:wip/69606-statistics-performance
entrouvert:wip/65942-rebase
entrouvert:wip/73677-phone-usages-stats-command
entrouvert:wip/66053-csv-import-stocker-une-informati-postrebase-paul
entrouvert:wip/73150-fc-existing-account-manual-link
entrouvert:wip/66053-csv-import-stocker-une-informati
entrouvert:wip/73148-fc-link-mail-validation-on-account-create
entrouvert:wip/69561-page-title
entrouvert:wip/65877-idp-oidc-sync-claim-resolution
entrouvert:wip/65942-idp-oidc-client-api-access-queryset-reduction
entrouvert:wip/72870-fc-nolink-default
entrouvert:wip/auth-oidc-passive
entrouvert:wip/62710-auth-oidc-mainline-sync-cmd
entrouvert:wip/test-tox-4
entrouvert:wip/71463-api-ou-permissions-filtering
entrouvert:wip/66053-csv-import-verification-source
entrouvert:hotfix/v4.49
entrouvert:wip/71069-a11y-close-label-email-hint
entrouvert:wip/65411-auth-fc-locker-le-sub-pendant-le
entrouvert:wip/69335-check-password-drf-api
entrouvert:wip/69468-ldap-password-policy-control-mes
entrouvert:wip/69466-PasswordResetConfirmView-gerer-c
entrouvert:wip/69464-PasswordChangeView-en-cas-de-ref
entrouvert:hotfix/v4.37
entrouvert:wip/blocktrans-trimmed
entrouvert:wip/69526-apiclient-key
entrouvert:wip/62868-su-view-ldap-authn-failed-crash
entrouvert:wip/65411-auth-fc-sub-lock
entrouvert:wip/68607-Preparation-django-DeprecationWa
entrouvert:wip/68607-local-paul
entrouvert:wip/43221-CAS-and-referer-header
entrouvert:wip/67600-ldap-sync-case-sensitivity
entrouvert:wip/xdist
entrouvert:wip/66986-saml-bo-idp-md-sources
entrouvert:wip/66794-role-add-form
entrouvert:wip/66497-manager-homepage
entrouvert:wip/60783-manu
entrouvert:wip/66207-sidepage-menu
entrouvert:wip/65943-idp-oidc-api-user-attr-reduction
entrouvert:wip/65122-user-deletion-message
entrouvert:wip/distutils
entrouvert:wip/63937-ldapobject-timeout
entrouvert:wip/62900-pm-personal-data-minimization-during-authz
entrouvert:wip/62889-pm-do-not-ask-again
entrouvert:wip/20690-Ajouter-automatiquement-des-role
entrouvert:hotfix/v3.81
entrouvert:wip/34829-Avoir-des-vues-backoffice-pour-q
entrouvert:wip/57499-role-members-through-soft-deletion
entrouvert:wip/61299-attribute-kinds-title
entrouvert:wip-paul/non-binary-title
entrouvert:wip/61196-manager-utiliser-le-nouveau-widg
entrouvert:wip/61188-UI-gestion-des-roles-impossible-
entrouvert:wip/50861-api-memberships-roles-ne-pas-ecr
entrouvert:wip/60493-ldap-enabled-option
entrouvert:wip/60488-auth-oidc-strategy-email
entrouvert:wip/locale-boolean-attr
entrouvert:wip/59414-test-59482
entrouvert:wip/58829-django-rbac-operation-model
entrouvert:wip/58948-missing-migration
entrouvert:wip/57663-Definir-une-permission-pour-acce
entrouvert:hotfix/v3.50
entrouvert:wip/47024-auth_oidc-faulty-provider-attribute-sharing-consent
entrouvert:wip/56850-IndexError-list-index-out-of-ran
entrouvert:wip/tox
entrouvert:wip/tel-account-simple
entrouvert:wip/53754-authentification-forcee-ForceAut
entrouvert:wip/54525-journal-expired-sessions
entrouvert:wip/54185-ldap-password-messages
entrouvert:hotfix/v3.34
entrouvert:wip/26277-remove-duplicated-jquery
entrouvert:hotfix/v3.32
entrouvert:wip/test-eo-jenkins-lib
entrouvert:hotfix/v3.2
entrouvert:wip/52226-API-utilisation-avec-slug-des-ro
entrouvert:hotfix/v2.100
entrouvert:wip/tel-account
entrouvert:wip/22687-pouvoir-utiliser-le-niveau-d-isolatoin-serializable-sur-postgresql
entrouvert:hotfix/v2.82
entrouvert:wip/48090-crash-migrations
entrouvert:wip/48352-custom-user-dans-free-text-searc
entrouvert:wip/tmp/paul-devinst-crash-troubleshooting
entrouvert:hotfix/v2.67
entrouvert:wip/36966-auth-oidc-signed-requests
entrouvert:hotfix/v2.64
entrouvert:hotfix/v2.62
entrouvert:hotfix/v2.47-email-validation
entrouvert:wip/40685-squash-des-migrations
entrouvert:wip/importlib-resources-limit
entrouvert:wip/virtualenv-limit
entrouvert:wip/py3-nouvelle-vague
entrouvert:hotfix/v2.18
entrouvert:hotfix/v2.7
entrouvert:wip/33550-multifacteurs-2-haut-niv
entrouvert:wip/move-a2-rbac-tests
entrouvert:hotfix/v2.1.78
entrouvert:wip/33745-missing-migration-files
entrouvert:wip/misc_paul_ui_snapshots
entrouvert:wip/25645-roles-in-users-api
entrouvert:wip/26251-avatar-cadrage-cote-client-de-l-
entrouvert:wip/play-with-jenkinsfile
entrouvert:wip/25645-API-pour-obtenir-la-liste-des-roles-portes-par-un-utilisateur
entrouvert:wip/22865-Ne-plug-utiliser-pkg-resources-pour-charger-les-applications-incluses-dans-authentic
entrouvert:wip/stretch
entrouvert:wip/review-25045
entrouvert:wip/delete-render-block
entrouvert:wip/newpassword
entrouvert:wip/django111
entrouvert:release-2.1.20
entrouvert:release-2.1.19
entrouvert:release-2.1.18
entrouvert:release-2.1.15
entrouvert:release-2.1.14
entrouvert:release-2.1.13
entrouvert:debian-squeeze
No reviewers
Labels
Clear labels
No items
No Label
Milestone
Clear milestone
No items
No Milestone
Assignees
Clear assignees
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: entrouvert/authentic#44
Reference in New Issue
No description provided.
Delete Branch "wip/76835-Verifier-la-possibilite-de-redir"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ce n’est pas ce que relève le rapport d’audit.
La next_url arbitraire se fait sur le
POST /password/reset/confirm/
.Effectivement en testant de mon coté, j’arrive à la modifier sans que ça fâche authentic.
Et, chose que je n’ai pas testée, le rapport semble indiquer qu’on peut utiliser la next-signature de ce lien généré pour la réinitialisation de mot de passe, pour forger une url frauduleuse de création de compte.
C’est bien d’avoir ce test mais ce n’est pas ce que semble relever le rapport.
Arf, le rapport est pas clair, je ne suis pas sur d’avoir capté. En relisant j’ai l’impression que rien à voir avec du CSRF en fait, le rapport suppose que l’attaquant modifie le payload POST d’une demande de ré-initialisation vraiment soumise par l’usager cible de l’attaque, auquel cas la vérification CSRF n’est pas invalidée mais il n’y a pas de vérif sur la next_url initiale (?)
Ça me paraît un peu gros cette affaire.
Perso j'avais noté dans https://dev.entrouvert.org/issues/76816#note-7 :
C'est en tout cas ce que j'ai lu de leur scénario d'exploitation : (page 26)
Ok je comprends mieux.
tests: check open redirection is impossible for /password/reset/ (#76835)to WIP: tests: check open redirection is impossible for /password/reset/ (#76835)WIP: tests: check open redirection is impossible for /password/reset/ (#76835)to WIP: empêcher le contrôle des redirections sur les mails d'enregistrement et de réinitialisation de mot de passe (#76835)c8c50ea028
tobd8c937773
bd8c937773
to3dff2974d2
Pull request closed