Directus' TUS resumable upload endpoint (/files/tus) allows any authenticated user with basic file upload permissions to overwrite arbitrary existing files by UUID. The TUS controller performs only collection-level authorization checks, verifying the user has some permission on directus_files, but never validates item-level access to the specific file being replaced. As a result, row-level permission rules (e.g., "users can only update their own files") are completely bypassed via the TUS path while being correctly enforced on the standard REST upload path.
directus_files by UUID, regardless of row-level permission rules.directus_files, a low-privilege user could replace them with malicious content.Disable TUS uploads by setting TUS_ENABLED=false if resumable uploads are not required.
This vulnerability was discovered and reported by bugbunny.ai.
11.16.1Exploitability
AV:NAC:LPR:LUI:NScope
S:UImpact
C:NI:HA:L7.1/CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L