Directus 10.13.0 - IDOR
4.1
Medium
Discovered by
Offensive Team, Fluid Attacks
Summary
Full name
Directus 10.13.0 - Insecure object reference via PATCH presets
Code name
State
Public
Release date
Aug 14, 2024
Affected product
Directus
Affected version(s)
10.13.0
Vulnerability name
Insecure object reference - Personal information
Vulnerability type
Remotely exploitable
Yes
CVSS v3.1 vector string
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:N/E:H/RL:U/RC:C
CVSS v3.1 base score
4.1
Exploit available
Yes
CVE ID(s)
Description
Directus v10.13.0 allows an authenticated external attacker to modify presets created by the same user to assign them to another user. This is possible because the application only validates the user parameter in the POST /presets
request but not in the PATCH request. When chained with CVE-2024-6533, it could result in account takeover.
Vulnerability
This vulnerability occurs because the application only validates the user parameter in the POST /presets
request but not in the PATCH request.
Exploit
To exploit this vulnerability, we need to do the follow steps using a non-administrative, default role attacker account.
Create a preset for a collection.
Store the preset id, or use it if it already exists from
GET /presets
. The following example will use thedirect_users
preset.Modify the presets via
PATCH /presets/{id}
.With the malicious configuration and the user ID to which you will assign the preset configuration. The user ID can be obtained from
GET /users
. The following example modifies the title parameter.Notes:
Each new preset to a specific collection will have an integer consecutive
id
independent of the user who created it.The
user
is the userid
of the victim. The server will not validate that we assign a new user to a preset we own.The app will use the first
id
preset with the lowest value it finds for a specific user and collection. If we control a preset with anid
lower than the current presetid
to the same collection of the victim user, we can attack that victim user, or if the victim has not yet defined a preset for that collection, then the presetid
could be any value we control. Otherwise, the attacker user must have permission to modify or create the victim presets.When the victim visits the views of the modified presets, it will be rendered with the new configuration applied.
Evidence of exploitation



Our security policy
We have reserved the ID CVE-2024-6534 to refer to this issue from now on.
System Information
Version: Directus 10.13.0
Operating System: Any
Mitigation
There is currently no patch available for this vulnerability.
References
Vendor page https://directus.io/
Timeline
Vulnerability discovered
Jul 4, 2024
Vendor contacted
Jul 15, 2024
Vendor replied
Jul 16, 2024
Public disclosure
Aug 14, 2024