Impact
Unauthorized JavaScript can be executed by inserting an iframe into the rich text html interface that links to a file uploaded HTML file that loads another uploaded JS file in its script tag. This satisfies the regular content security policy header, which in turn allows the file to run any arbitrary JS.
Patches
This was resolved in https://github.com/directus/directus/pull/12020 which is released in 9.7.0
Workarounds
You can disable the live embed in the WYSIWYG by adding { "media_live_embeds": false }
to the Options Overrides option of the Rich Text HTML interface.
References
https://github.com/directus/directus/pull/12020
For more information
If you have any questions or comments about this advisory:
- Open an issue in directus/directus
- Email us at security@directus.io