Directus allows privilege escalation using Share feature
Summary
When sharing an item, user can specify an arbitrary role. It allows user to use a higher-privileged role to see fields that otherwise the user should not be able to see.
Details
Specifying role on share should be available only for admins. The current flow has a security flaw.
Each other role should allow to share only in the context of the same role. As there is no role hierarchy in Directus, it is impossible to tell which role is higher or lower, so only admins should be able to specify the role for share.
Optionally, instead of specifying a role, shareer* should be able to specify which fields (limited to fields shareer sees) are available on shared item. Similarily to import.
*shareer - a person that creates a share link to item
PoC
- Create a collection with a secret field.
- Create role A that sees the secret field
- Create role B that does not see the secret field, but can use share feature.
- Create item with secret field filled.
- Use account with role B to share the object as role A and gain unauthorized access to secret value.
Here's video example: https://www.youtube.com/watch?v=DbV4IxbWzN4 I had to upload it to YouTube, because GitHub allows only 10MB videos.
Impact
Impacted are instances that use the share feature and have specific roles hierarchy and fields that are not visible for certain roles.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| npm package | directus | < 11.2.0 | 11.2.0 |
| npm package | @directus/app | < 13.3.1 | 13.3.1 |
References
- https://github.com/directus/directus/security/advisories/GHSA-pmf4-v838-29hg
- https://nvd.nist.gov/vuln/detail/CVE-2025-24353
- https://github.com/directus/directus/pull/23716
- https://github.com/directus/directus/commit/e288a43a79613dada905da683f4919c6965ac804
- https://github.com/directus/directus
- https://github.com/directus/directus/releases/tag/v11.2.0
- https://www.youtube.com/watch?v=DbV4IxbWzN4
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N- Weakness (CWE)
CWE-269- Platform
- npm
- Package
directus, @directus/app- Disclosed
- 23.01.2025
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-pmf4-v838-29hg - CC BY 4.0
Vulnerability history: @directus/app
All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 2
- First → latest
- 12.2024 01.2025
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- Medium 2
Disclosures per year
- 2024: 1
- 2025: 1
- 2026: 0
-
Directus allows privilege escalation using Share feature this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.