CVE-2023-41318: matrix-media-repo Unsafe Media Served Inline On Vulnerability

MODERATE
Advisory Identifier: GHSA-5crw-6j7v-xc72
CVSS 4.1
CWE-79
Published
Advisory Summary

CVE-2023-41318 is a MODERATE (CVSS 4.1) unsafe media served inline on vulnerability (CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')) affecting matrix-media-repo libraries in the Go ecosystem. The issue involves unsafe media served inline on download endpoints. Remediation is available by upgrading affected packages to version 1.3.0.

CVE-2023-41318 at a Glance

CVE Identifier CVE-2023-41318
GHSA Identifier GHSA-5crw-6j7v-xc72
Severity MODERATE
CVSS v3.1 Base Score 4.1
CWE Classification CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Affected Product matrix-media-repo
Package Ecosystem Go
Published Date
Last Updated

Security Impact

CVSS: 4.1

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:N/A:N).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required Low (PR:L)
User Interaction Required (UI:R)
Scope Changed (S:C)
Confidentiality Low (C:L)
Integrity None (I:N)
Availability None (A:N)

How to Fix CVE-2023-41318

To remediate this vulnerability, upgrade all affected matrix-media-repo dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/turt2live/matrix-media-repo fixed: 1.3.0
Upgrade github.com/turt2live/matrix-media-repo to 1.3.0
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/turt2live/matrix-media-repo

How to Check if You Are Affected

To determine whether your application is affected by CVE-2023-41318, inspect your project dependencies for matrix-media-repo:

inspect dependencies for github.com/turt2live/matrix-media-repo

Analyze the terminal output to locate any version of matrix-media-repo in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.3.0), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), where the product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. In matrix-media-repo, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact A malicious user can upload an SVG image containing JavaScript to their server. When matrix-media-repo is asked to serve that media via the `/_matrix/media/(r0|v3)/download` endpoint, it would be served with a `Content-Disposition` of `inline`. This can allow JavaScript to run in the browser if a client links to the `/download` endpoint directly. Server operators which do not share a domain between matrix-media-repo and other services are not affected, but are encouraged to upgrade regardless. ### Patches https://github.com/turt2live/matrix-media-repo/commit/77ec2354e8f46d5ef149d1dcaf25f51c04149137 and https://github.com/turt2live/matrix-media-repo/commit/bf8abdd7a5371118e280c65a8e0ec2b2e9bdaf59 fix the issue. Operators should upgrade to v1.3.0 as soon as possible. ### Workarounds The `Content-Disposition` header can be overridden by the reverse proxy in front of matrix-media-repo to always use `attachment`, defeating this issue at the cost of "worse" user experience when clicking download links. ### References https://developer.mozilla.org/en-US/docs/Web/SVG/Element/script

CVE-2023-41318 Affected matrix-media-repo Versions

1 component(s)
Fixed Versions:
1.3.0
Product / Package Ecosystem Affected Versions Fixed Version
github.com/turt2live/matrix-media-repo
Go
< 1.3.0
1.3.0

References

Frequently Asked Questions

What is CVE-2023-41318?
CVE-2023-41318 is a security vulnerability in matrix-media-repo involving Unsafe media served inline on download endpoints under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').
Which matrix-media-repo versions are affected?
Affected versions include releases prior to 1.3.0 across affected packages: github.com/turt2live/matrix-media-repo.
What version fixes CVE-2023-41318?
Upgrading to 1.3.0 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/turt2live/matrix-media-repo affected?
Yes, github.com/turt2live/matrix-media-repo is affected in releases prior to 1.3.0. Upgrade your dependency to 1.3.0 or later.
What is the CVSS score of CVE-2023-41318?
CVE-2023-41318 has a CVSS v3.1 base score of 4.1 (MODERATE) with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:N/A:N.
What CWE is associated with CVE-2023-41318?
CVE-2023-41318 is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.).
How can I check Go dependencies for CVE-2023-41318?
Run the dependency tree command: 'inspect dependencies for github.com/turt2live/matrix-media-repo'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-5crw-6j7v-xc72",
  "modified" : "2023-09-08T13:18:23Z",
  "published" : "2023-09-08T13:18:23Z",
  "aliases" : [ "CVE-2023-41318" ],
  "summary" : "matrix-media-repo: Unsafe media served inline on download endpoints",
  "details" : "### Impact\nA malicious user can upload an SVG image containing JavaScript to their server. When matrix-media-repo is asked to serve that media via the `/_matrix/media/(r0|v3)/download` endpoint, it would be served with a `Content-Disposition` of `inline`. This can allow JavaScript to run in the browser if a client links to the `/download` endpoint directly.\n\nServer operators which do not share a domain between matrix-media-repo and other services are not affected, but are encouraged to upgrade regardless.\n\n### Patches\nhttps://github.com/turt2live/matrix-media-repo/commit/77ec2354e8f46d5ef149d1dcaf25f51c04149137 and https://github.com/turt2live/matrix-media-repo/commit/bf8abdd7a5371118e280c65a8e0ec2b2e9bdaf59 fix the issue. Operators should upgrade to v1.3.0 as soon as possible.\n\n### Workarounds\nThe `Content-Disposition` header can be overridden by the reverse proxy in front of matrix-media-repo to always use `attachment`, defeating this issue at the cost of \"worse\" user experience when clicking download links.\n\n### References\nhttps://developer.mozilla.org/en-US/docs/Web/SVG/Element/script\n\n",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:N/A:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/turt2live/matrix-media-repo"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.3.0"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/turt2live/matrix-media-repo/security/advisories/GHSA-5crw-6j7v-xc72"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2023-41318"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/turt2live/matrix-media-repo/commit/77ec2354e8f46d5ef149d1dcaf25f51c04149137"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/turt2live/matrix-media-repo/commit/bf8abdd7a5371118e280c65a8e0ec2b2e9bdaf59"
  }, {
    "type" : "WEB",
    "url" : "https://developer.mozilla.org/en-US/docs/Web/SVG/Element/script"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/turt2live/matrix-media-repo"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-79" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2023-09-08T13:18:23Z",
    "nvd_published_at" : "2023-09-08T20:15:14Z"
  }
}