[Mineur] Paramètre take non borné et négatif accepté (500) #117

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

Gravité : Mineur
Rapports QA d'origine : CHAT-08, SECURITY_UX-11, FRIENDS-06

Liste des messages et /me/conversations : take=-1 donne 500, take=2147483647 est accepté.

Détails des rapports

[CHAT-08] `take` négatif -> 500 ; `take` non borné — Gravité : Mineur
  • GET /channels/{id}/messages?take=-1 -> 500 Npgsql 2201W: LIMIT must not be negative. take=1000 renvoie les 120 messages du channel de test (non borné : dump complet du channel possible, aucun plafond). Messages/List/ListMessagesQuery.cs.
[SECURITY_UX-11] `take` non borné/non validé sur la liste des messages : `take=-5` -> 500, `take=2147483647` accepté — Gravité : Mineur
  • Où : GET /api/channels/{id}/messages/?take=-5 (idem probablement GET /me/conversations?take=)
  • Obtenu : take=-5 -> 500 Npgsql.PostgresException (LIMIT négatif) avec stack trace ; take=2147483647 -> 200 (aucune borne maximale : une requête peut ramener tout l'historique).
  • Cause probable : backend/API/Channels/Messages/List/ListMessagesEndpoint.cs:10 (paramètre int take = 20 sans plage), ListMessagesQuery.cs.
[FRIENDS-06] `GET /api/me/conversations?take=-1` renvoie 500 (exception Npgsql) et `take` n'est pas borné — Gravité : Mineur
  • Où : GET /api/me/conversations?take=-1 -> 500 Npgsql.PostgresException (LIMIT négatif) ; take=100000 -> 200 avec tout. take=abc / before=garbage -> 400 avec message d'exception .NET brut (BadHttpRequestException) exposé.
  • Cause probable : backend/API/Users/Me/Conversations/List/ListConversationsEndpoint.cs / ListConversationsQuery.cs : pas de [Range] sur take.
  • Preuve : sortie de scripts/friends/api3.py.

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-08, SECURITY_UX-11, FRIENDS-06 Liste des messages et `/me/conversations` : `take=-1` donne 500, `take=2147483647` est accepté. ## Détails des rapports <details><summary>[CHAT-08] `take` négatif -> 500 ; `take` non borné — Gravité : Mineur</summary> - `GET /channels/{id}/messages?take=-1` -> 500 `Npgsql 2201W: LIMIT must not be negative`. `take=1000` renvoie les 120 messages du channel de test (non borné : dump complet du channel possible, aucun plafond). `Messages/List/ListMessagesQuery.cs`. </details> <details><summary>[SECURITY_UX-11] `take` non borné/non validé sur la liste des messages : `take=-5` -> 500, `take=2147483647` accepté — Gravité : Mineur</summary> - Où : `GET /api/channels/{id}/messages/?take=-5` (idem probablement `GET /me/conversations?take=`) - Obtenu : `take=-5` -> 500 `Npgsql.PostgresException` (LIMIT négatif) avec stack trace ; `take=2147483647` -> 200 (aucune borne maximale : une requête peut ramener tout l'historique). - Cause probable : `backend/API/Channels/Messages/List/ListMessagesEndpoint.cs:10` (paramètre `int take = 20` sans plage), `ListMessagesQuery.cs`. </details> <details><summary>[FRIENDS-06] `GET /api/me/conversations?take=-1` renvoie 500 (exception Npgsql) et `take` n'est pas borné — Gravité : Mineur</summary> - Où : `GET /api/me/conversations?take=-1` -> 500 `Npgsql.PostgresException` (LIMIT négatif) ; `take=100000` -> 200 avec tout. `take=abc` / `before=garbage` -> 400 avec message d'exception .NET brut (`BadHttpRequestException`) exposé. - Cause probable : `backend/API/Users/Me/Conversations/List/ListConversationsEndpoint.cs` / `ListConversationsQuery.cs` : pas de `[Range]` sur `take`. - Preuve : sortie de `scripts/friends/api3.py`. </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 self-assigned this 2026-10-28 11:54:24 +00:00
Equoo referenced this issue from a commit 2026-10-31 20:03:51 +00:00
Equoo closed this issue 2026-10-31 20:05:22 +00:00
asventi referenced this issue from a commit 2026-11-02 13:08:20 +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#117
No description provided.