Vulnerability Details CVE-2023-22491
Gatsby is a free and open source framework based on React that helps developers build websites and apps. The gatsby-transformer-remark plugin prior to versions 5.25.1 and 6.3.2 passes input through to the `gray-matter` npm package, which is vulnerable to JavaScript injection in its default configuration, unless input is sanitized. The vulnerability is present in gatsby-transformer-remark when passing input in data mode (querying MarkdownRemark nodes via GraphQL). Injected JavaScript executes in the context of the build server. To exploit this vulnerability untrusted/unsanitized input would need to be sourced by or added into a file processed by gatsby-transformer-remark. A patch has been introduced in `gatsby-transformer-remark@5.25.1` and `gatsby-transformer-remark@6.3.2` which mitigates the issue by disabling the `gray-matter` JavaScript Frontmatter engine. As a workaround, if an older version of `gatsby-transformer-remark` must be used, input passed into the plugin should be sanitized ahead of processing. It is encouraged for projects to upgrade to the latest major release branch for all Gatsby plugins to ensure the latest security updates and bug fixes are received in a timely manner.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.006
EPSS Ranking 47.8%
CVSS Severity
CVSS v3 Score 8.1
Products affected by CVE-2023-22491
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.1
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.10
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.11
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.12
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.13
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.14
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.15
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.16
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.17
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.18
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.19
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.2
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.20
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.3
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.4
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.5
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.6
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.7
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.8
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.1.9
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.10.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.11.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.12.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.13.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.14.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.15.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.16.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.2.1
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.2.2
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.2.3
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.2.4
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.2.5
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.2.6
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.1
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.10
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.11
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.12
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.2
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.3
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.4
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.5
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.6
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.7
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.8
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.3.9
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.1
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.10
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.11
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.12
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.13
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.14
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.15
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.16
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.17
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.18
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.19
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.2
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.20
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.21
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.22
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.23
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.24
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.25
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.26
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.27
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.28
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.29
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.3
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.30
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.31
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.32
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.33
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.34
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.35
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.36
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.37
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.38
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.39
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.4
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.40
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.41
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.42
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.43
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.44
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.45
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.46
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.47
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.48
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.49
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.5
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.50
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.51
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.52
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.53
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.54
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.55
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.56
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.57
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.58
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.59
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.6
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.7
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.8
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.6.9
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.7.1
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.7.2
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.7.3
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.7.4
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.7.5
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.1
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.10
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.11
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.12
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.13
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.14
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.15
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.16
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.17
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.18
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.19
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.20
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.21
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.22
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.23
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.24
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.25
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.26
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.27
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.28
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.29
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.3
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.30
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.31
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.32
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.33
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.34
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.35
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.36
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.37
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.38
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.39
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.4
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.40
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.41
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.42
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.43
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.44
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.45
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.46
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.47
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.5
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.6
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.7
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.8
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.8.9
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:2.9.1
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:3.0.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:3.1.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:3.2.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.0.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.1.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.10.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.11.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.2.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.3.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.4.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.5.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.6.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.7.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.8.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:4.9.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.0.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.1.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.10.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.11.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.12.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.13.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.14.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.15.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.16.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.17.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.18.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.19.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.2.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.20.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.21.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.22.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.23.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.24.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.3.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.4.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.5.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.6.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.7.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.8.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:5.9.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:6.0.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:6.1.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:6.2.0
-
cpe:2.3:a:gatsbyjs:gatsby-transformer-remark:6.3.0