[Mineur] Un caractère NUL (U+0000) dans un champ texte provoque un 500 #116

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

Gravité : Mineur
Rapports QA d'origine : SECURITY_UX-10, CHAT-07

Messages, noms et autres champs : PostgreSQL refuse le caractère et l'erreur n'est pas gérée.

Détails des rapports

[SECURITY_UX-10] Un caractère NUL (U+0000) dans n'importe quel champ texte provoque un 500 — Gravité : Mineur
  • Où : POST /channels/{id}/messages, PATCH /me (userName), POST /channels (topic), POST /events (name) — probablement tous les champs texte persistés
  • Étapes : 1. POST /api/channels/<id>/messages/ {"content":"a\u0000b"} (JSON valide)
  • Attendu : 400 problem+json
  • Obtenu : 500 DbUpdateException / Npgsql.PostgresException 22021: invalid byte sequence for encoding "UTF8": 0x00, avec stack trace. Les emoji / RTL / CJK / hors-plan multilingue sont bien acceptés ; un surrogate isolé donne 400.
  • Cause probable : aucune validation/normalisation des entrées avant EF/PostgreSQL (aucun filtre global).
[CHAT-07] Caractère NUL dans un message -> 500 — Gravité : Mineur
  • POST /channels/{id}/messages avec content contenant \u0000 -> 500 DbUpdateException (PostgreSQL refuse NUL dans text). Non filtré côté API.
  • Confirmé isolément : content "\u0000" seul et "a\u0000b" -> 500 ; le même texte accents/CJK/emoji/RTL sans NUL -> 201.

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 :** SECURITY_UX-10, CHAT-07 Messages, noms et autres champs : PostgreSQL refuse le caractère et l'erreur n'est pas gérée. ## Détails des rapports <details><summary>[SECURITY_UX-10] Un caractère NUL (U+0000) dans n'importe quel champ texte provoque un 500 — Gravité : Mineur</summary> - Où : `POST /channels/{id}/messages`, `PATCH /me` (userName), `POST /channels` (topic), `POST /events` (name) — probablement tous les champs texte persistés - Étapes : 1. `POST /api/channels/<id>/messages/ {"content":"a\u0000b"}` (JSON valide) - Attendu : 400 problem+json - Obtenu : 500 `DbUpdateException` / `Npgsql.PostgresException 22021: invalid byte sequence for encoding "UTF8": 0x00`, avec stack trace. Les emoji / RTL / CJK / hors-plan multilingue sont bien acceptés ; un surrogate isolé donne 400. - Cause probable : aucune validation/normalisation des entrées avant EF/PostgreSQL (aucun filtre global). </details> <details><summary>[CHAT-07] Caractère NUL dans un message -> 500 — Gravité : Mineur</summary> - `POST /channels/{id}/messages` avec content contenant `\u0000` -> 500 DbUpdateException (PostgreSQL refuse NUL dans text). Non filtré côté API. - Confirmé isolément : content `"\u0000"` seul et `"a\u0000b"` -> 500 ; le même texte accents/CJK/emoji/RTL sans NUL -> 201. </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:31 +00:00
Equoo removed their assignment 2026-10-29 12:28:20 +00:00
asventi self-assigned this 2026-10-30 13:42:56 +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#116
No description provided.