[Mineur] Rôles : aucune validation du nom et permission acceptant n'importe quel entier #120
Labels
No labels
bug
enhancement
feature
groupe/chat-data
groupe/friends-blocking
groupe/input-validation
groupe/realtime-presence
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Transcendence/backend#120
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Gravité : Mineur
Rapports QA d'origine : ADMIN-09, ADMIN-10, SECURITY_UX-13
Nom vide, espaces, 10 000 caractères (rend /admin inutilisable), HTML, doublon de casse ;
PATCH /roles/{id}/permissionaccepte -1 ou 99999. Voir aussi #69.Détails des rapports
[ADMIN-09] Création / renommage de rôle : aucune validation côté API (vide, espaces, 300 caractères, HTML, doublon de casse) — Gravité : Mineur
POST /api/roles,PATCH /api/roles/{id}/namePOST /rolesavec""-> 200 (rôle au nom vide créé)," "-> 200, nom de 300 caractères -> 200,qa_admin_<img src=x onerror=alert(1)>-> 200,QA_ADMIN_R1à côté deqa_admin_r1-> 200,"qa_admin_r1 "-> 200. Seul le doublon exact renvoie 409. L'UI limite à 1-20 caractères (modale), l'API non.PATCH /roles/{id}/nameavec le nom actuel du même rôle -> 409 "already used by an other role" (devrait être un no-op) ; avec""-> 409 "'' already used" (parce que le rôle vide existe déjà).<select>de rôle élargi dans /admin/users. Un nom vide produit une ligne sans libellé.backend/API/Roles/Create/CreateRoleQuery.cs,backend/API/Roles/Patch/PatchRoleNameQuery.cs(comparaisonr.Name == namesensible à la casse, aucune validation,check_nameinclut le rôle lui-même).[ADMIN-10] `PATCH /roles/{id}/permission` accepte n'importe quel entier (-1, 99999, bits inconnus) — Gravité : Mineur
-1,99999,2147483647,65... et la valeur est stockée telle quelle (GET /rolesrenvoie-1).-1active tous les bits, y compris de futures permissions.backend/API/Roles/Patch/PatchRolePermEndpoint.cs:12: cast(Perms)permissionsans masque.[SECURITY_UX-13] Création de rôles sans aucune validation du nom (vide, blanc, 10 000 caractères) — Gravité : Mineur
POST /api/roles(corps = chaîne JSON brute)GET /rolescontient déjà des rôles au nom""et" "(créés par un test précédent d'un autre agent ou manuellement) ; un nouveau POST avec""répond 409 « already used », donc le nom vide a été accepté une première fois.PATCH /roles/{id}/permissionaccepte aussi-1(tous les bits, y compris non définis).backend/API/Roles/Create/CreateRoleEndpoint.cs:11([FromBody] string namesans[Length]/[Required]),Roles/Patch/PatchRolePermEndpoint.cs:12.Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes.