diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-07-06 15:05:05 +0200 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2023-07-07 11:45:48 -0500 |
commit | c58ab80b976410b51bc5520b00a98dcdc256dee3 (patch) | |
tree | 30f37474642eb7d8120c82b6dd534fb43806d5df /config/imagemagick | |
parent | 5ddae512857eb143ff91741f4a35c186fac1036e (diff) |
Merge pull request from GHSA-9928-3cp5-93fm
* Fix attachments getting processed despite failing content-type validation * Add a restrictive ImageMagick security policy tailored for Mastodon * Fix misdetection of MP3 files with large cover art * Reject unprocessable audio/video files instead of keeping them unchanged
Diffstat (limited to 'config/imagemagick')
-rw-r--r-- | config/imagemagick/policy.xml | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/config/imagemagick/policy.xml b/config/imagemagick/policy.xml new file mode 100644 index 000000000..1052476b3 --- /dev/null +++ b/config/imagemagick/policy.xml @@ -0,0 +1,27 @@ +<policymap> + <!-- Set some basic system resource limits --> + <policy domain="resource" name="time" value="60" /> + + <policy domain="module" rights="none" pattern="URL" /> + + <policy domain="filter" rights="none" pattern="*" /> + + <!-- + Ideally, we would restrict ImageMagick to only accessing its own + disk-backed pixel cache as well as Mastodon-created Tempfiles. + + However, those paths depend on the operating system and environment + variables, so they can only be known at runtime. + + Furthermore, those paths are not necessarily shared across Mastodon + processes, so even creating a policy.xml at runtime is impractical. + + For the time being, only disable indirect reads. + --> + <policy domain="path" rights="none" pattern="@*" /> + + <!-- Disallow any coder by default, and only enable ones required by Mastodon --> + <policy domain="coder" rights="none" pattern="*" /> + <policy domain="coder" rights="read | write" pattern="{PNG,JPEG,GIF,HEIC,WEBP}" /> + <policy domain="coder" rights="write" pattern="{HISTOGRAM,RGB,INFO}" /> +</policymap> |