[Mineur] Channels restreints visibles : GET /channels non filtré par whitelist #131

Closed
opened 2026-10-28 10:32:19 +00:00 by asventi · 0 comments
Owner

Gravité : Mineur
Rapports QA d'origine : CHAT-15

Un Member hors whitelist voit le channel dans la liste et son UI (nom, topic, membres) par URL directe.

Détails des rapports

[CHAT-15] Accès direct par URL à un channel restreint : l'UI s'affiche normalement (nom, topic, composer, membres) sans écran "accès refusé" — Gravité : Mineur
  • Où : /channels/<id d'un channel whitelisté> en tant que Member hors whitelist (bob, id obtenu via GET /api/channels).
  • Obtenu : l'en-tête (nom + topic), le composer et le panneau des membres (liste des utilisateurs du rôle autorisé) s'affichent ; la liste de messages est vide ("Discussion start here") car GET .../messages -> 401 silencieux ; l'envoi déclenche seulement un toast "Access not authorized". Les données du channel (nom, topic, rôles whitelistés) fuitent via GET /api/channels (non filtré, voir suspicions). Le channel n'apparaît pourtant pas dans la sidebar de bob (filtre front).
  • Preuve : chat_bob_direct_wl_send.png (écran perdu lors du déménagement du dossier QA).
  • Cause : frontend/src/routes/channel.tsx n'applique pas isWhitelisted à la route (seulement au filtre de MembersSidebar) ; backend/API/Channels/List/ListChannelsQuery.cs ne filtre pas par whitelist.

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.

**Gravité :** Mineur **Rapports QA d'origine :** CHAT-15 Un Member hors whitelist voit le channel dans la liste et son UI (nom, topic, membres) par URL directe. ## Détails des rapports <details><summary>[CHAT-15] Accès direct par URL à un channel restreint : l'UI s'affiche normalement (nom, topic, composer, membres) sans écran "accès refusé" — Gravité : Mineur</summary> - Où : `/channels/<id d'un channel whitelisté>` en tant que Member hors whitelist (bob, id obtenu via `GET /api/channels`). - Obtenu : l'en-tête (nom + topic), le composer et le panneau des membres (liste des utilisateurs du rôle autorisé) s'affichent ; la liste de messages est vide ("Discussion start here") car `GET .../messages` -> 401 silencieux ; l'envoi déclenche seulement un toast "Access not authorized". Les données du channel (nom, topic, rôles whitelistés) fuitent via `GET /api/channels` (non filtré, voir suspicions). Le channel n'apparaît pourtant pas dans la sidebar de bob (filtre front). - Preuve : `chat_bob_direct_wl_send.png` (écran perdu lors du déménagement du dossier QA). - Cause : `frontend/src/routes/channel.tsx` n'applique pas `isWhitelisted` à la route (seulement au filtre de MembersSidebar) ; `backend/API/Channels/List/ListChannelsQuery.cs` ne filtre pas par whitelist. </details> --- _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._
Equoo closed this issue 2026-10-29 12:30:04 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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
Transcendence/backend#131
No description provided.