Summary
Plane allows authenticated low-privilege workspace members to upload SVG attachments that retain an attacker-controlled content type and are later served inline. When a victim opens the asset link from a same-origin self-hosted deployment, embedded script may execute in the application's security context and compromise the victim's session.
Plane allows authenticated low-privilege workspace members to upload SVG attachments that retain an attacker-controlled content type and are later served inline. When a victim opens the asset link from a same-origin self-hosted deployment, embedded script may execute in the application's security context and compromise the victim's session.
Affected context
The issue occurs in Plane deployments where workspace members can upload generic or issue attachments and the asset-download flow preserves an SVG content type while issuing an inline Content-Disposition response. Risk is higher in default self-hosted MinIO configurations where assets are served from the same origin as the Plane application, allowing browser content isolation boundaries to be bypassed.
The issue occurs in Plane deployments where workspace members can upload generic or issue attachments and the asset-download flow preserves an SVG content type while issuing an inline Content-Disposition response. Risk is higher in default self-hosted MinIO configurations where assets are served from the same origin as the Plane application, allowing browser content isolation boundaries to be bypassed.
Exploit preconditions
- Attack surface: Generic and issue attachment upload and asset-download functionality
- Required access: An authenticated workspace member with permission to upload attachments, including a Guest in affected configurations
- Trigger point: A victim opens an attacker-controlled SVG asset URL
- Why exploitation is possible: The uploaded SVG is served inline with an attacker-controlled content type and can execute script when delivered from the application's origin
- Attack surface: Generic and issue attachment upload and asset-download functionality
- Required access: An authenticated workspace member with permission to upload attachments, including a Guest in affected configurations
- Trigger point: A victim opens an attacker-controlled SVG asset URL
- Why exploitation is possible: The uploaded SVG is served inline with an attacker-controlled content type and can execute script when delivered from the application's origin
Why this happens
The underlying bug combines insufficient file-type and content validation with unsafe browser delivery behavior. User-controlled SVG content is treated as an inline, same-origin asset rather than as untrusted downloadable content, allowing active markup to execute in a privileged application context. This maps primarily to CWE-79: Improper Neutralization of Input During Web Page Generation, with related concerns involving unrestricted file upload (CWE-434) and insufficient isolation of uploaded content (CWE-616).
The underlying bug combines insufficient file-type and content validation with unsafe browser delivery behavior. User-controlled SVG content is treated as an inline, same-origin asset rather than as untrusted downloadable content, allowing active markup to execute in a privileged application context. This maps primarily to CWE-79: Improper Neutralization of Input During Web Page Generation, with related concerns involving unrestricted file upload (CWE-434) and insufficient isolation of uploaded content (CWE-616).
Potential impact
- An attacker could execute JavaScript in a victim's application security context
- A victim's session could be compromised
- An attacker may perform actions as the victim, including an administrator
- Workspace data could be accessed, modified, or deleted
- The issue could lead to account takeover or broader workspace compromise
- An attacker could execute JavaScript in a victim's application security context
- A victim's session could be compromised
- An attacker may perform actions as the victim, including an administrator
- Workspace data could be accessed, modified, or deleted
- The issue could lead to account takeover or broader workspace compromise
General mitigation guidance
Mitigation generally focuses on treating uploaded files as untrusted content and preventing active formats from executing in the application's origin.
Common defensive patterns include:
- Allowing only required image formats and rejecting or transforming SVG uploads when active content is not needed
- Validating file type using trusted server-side inspection rather than relying on client-supplied metadata
- Serving user-uploaded assets from a separate, isolated origin or storage domain
- Using attachment response headers that prevent inline execution where appropriate
- Applying a restrictive Content Security Policy and related browser isolation controls
- Enforcing authorization checks for asset access and using least-privilege storage permissions
- Avoiding exposure of session credentials to scripts through secure cookie settings
Mitigation generally focuses on treating uploaded files as untrusted content and preventing active formats from executing in the application's origin.
Common defensive patterns include:
- Allowing only required image formats and rejecting or transforming SVG uploads when active content is not needed
- Validating file type using trusted server-side inspection rather than relying on client-supplied metadata
- Serving user-uploaded assets from a separate, isolated origin or storage domain
- Using attachment response headers that prevent inline execution where appropriate
- Applying a restrictive Content Security Policy and related browser isolation controls
- Enforcing authorization checks for asset access and using least-privilege storage permissions
- Avoiding exposure of session credentials to scripts through secure cookie settings
How teams detect issues like this
Detection can combine application testing, code review, and deployment policy checks:
- Search upload handlers for acceptance of SVG or other active document formats without sanitization
- Review whether uploaded content types are derived from attacker-controlled metadata
- Inspect asset-download responses for inline Content-Disposition and same-origin delivery
- Test whether untrusted assets are hosted on the application's origin
- Add static analysis or automated review rules for unsafe file-upload and HTML-rendering patterns
- Monitor attachment uploads, asset access, and unusual authenticated actions following asset visits
Detection can combine application testing, code review, and deployment policy checks:
- Search upload handlers for acceptance of SVG or other active document formats without sanitization
- Review whether uploaded content types are derived from attacker-controlled metadata
- Inspect asset-download responses for inline Content-Disposition and same-origin delivery
- Test whether untrusted assets are hosted on the application's origin
- Add static analysis or automated review rules for unsafe file-upload and HTML-rendering patterns
- Monitor attachment uploads, asset access, and unusual authenticated actions following asset visits

