TSPortal: Any user can forge self-deletion requests for any account
### Summary Conversion of empty strings to null allows disguising DPA reports as genuine self-deletion reports. ### Details Creating a DPA report about another user and leaving the evidence field empty causes that report to look like the reported user self-requested deletion of their data. Ingenuine report is not distinguishable from a genuine one. This can be prevented by disabling [convertEmptyStringsToNull](https://api.laravel.com/docs/12.x/Illuminate/Foundation/Configuration/Middleware.html#method_convertEmptyStringsToNull) in the middleware, or by validating `evidence` in Http/Controllers/DPAController::store() to not be empty. ### PoC New DPA report -> Select "...someone who I suspect is under the age of 13" for the "The above username is..." field -> Add nothing to the "Evidence" field -> Submit ### Impact Potential unauthorized deletion of any arbitrary user's data both in the current system (TSPortal) and subsequent systems if actioned.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-29788US | high7.5 | — | ||
TSPortal is the WikiTide Foundation’s in-house platform used by the Trust and Safety team to manage reports, investigations, appeals, and transparency work. Prior to version 30, co… | ||||
references
External citations — patches, advisories, analysis.
- https://api.laravel.com/docs/12.x/Illuminate/Foundation/Configuration/Middleware.html#method_convertEmptyStringsToNullWEB
- https://github.com/miraheze/TSPortalPACKAGE
- https://github.com/miraheze/TSPortal/security/advisories/GHSA-gfhq-7499-f3f2WEB
- https://issue-tracker.miraheze.org/T15053WEB
- https://nvd.nist.gov/vuln/detail/CVE-2026-29788ADVISORY
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan