### [CVE-2024-39701](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39701) ![](https://img.shields.io/static/v1?label=Product&message=directus&color=blue) ![](https://img.shields.io/static/v1?label=Version&message=%3D%20%3E%3D%209.23.0%2C%20%3C%2010.6.0%20&color=brighgreen) ![](https://img.shields.io/static/v1?label=Vulnerability&message=CWE-284%3A%20Improper%20Access%20Control&color=brighgreen) ### Description Directus is a real-time API and App dashboard for managing SQL database content. Directus >=9.23.0, <=v10.5.3 improperly handles _in, _nin operators. It evaluates empty arrays as valid so expressions like {"role": {"_in": $CURRENT_USER.some_field}} would evaluate to true allowing the request to pass. This results in Broken Access Control because the rule fails to do what it was intended to do: Pass rule if **field** matches any of the **values**. This vulnerability is fixed in 10.6.0. ### POC #### Reference - https://github.com/directus/directus/security/advisories/GHSA-hxgm-ghmv-xjjm #### Github No PoCs found on GitHub currently.