Projet

Général

Profil

Actions

Anomalie #1647

fermé

GroupsController::doEdit n'est pas protégée : possibilité de soumettre des modifications non autorisées

Ajouté par Florian Hatat il y a presque 2 ans. Mis à jour il y a 8 mois.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Catégorie:
Security
Version cible:
Début:
18/07/2022
Echéance:
% réalisé:

100%

Temps estimé:
Version utilisée:

Description

Un responsable de groupe peut modifier n'importe quel groupe, même ceux dont il n'est pas responsable. L'interface utilisateur n'affiche certes pas les groupes dont il n'est pas responsable, cependant la route GroupsController::doEdit ne vérifie pas que l'utilisateur qui soumet les données du formulaire est bien un gestionnaire du groupe.

Il est donc possible de s'identifier (avec un compte qui est gestionnaire d'un groupe) puis de soumettre une requête qui porte sur un autre identifiant de groupe que ceux autorisés. La requête est acceptée.

Dans le template, l'interface utilisateur est gardée par le booléen "can_edit" défini dans le gabarit. Cependant le code qui traite la requête POST ne fait pas la même modification.

Cette faille me semble uniquement exploitable par les comptes ayant un statut responsable de groupe pour au moins un groupe parmi tous ceux qui existent. Les autres utilisateurs (non "groupmanager") sont bloqués par les ACLs dans core_acls.php.

Je pense que le comportement correct serait de faire, en tête de GroupsController::doEdit, la même vérification que le "can_edit" du template. Je pense essayer de rédiger un patch.


Fichiers

group_permissions.patch (4,02 ko) group_permissions.patch Test de permission sur les vues doEdit et getGroup Florian Hatat, 18/07/2022 16:02
Actions

Formats disponibles : Atom PDF