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.
{
"github_reviewed": true,
"github_reviewed_at": "2026-04-04T06:11:18Z",
"severity": "HIGH",
"nvd_published_at": null,
"cwe_ids": [
"CWE-863"
]
}