CVE-2023-24538: Backticks not treated as string delimiters in html/template

Published Apr 4, 2023
·
Updated

Backticks not treated as string delimiters in html/template

Other sources

Golang Go could allow a remote attacker to execute arbitrary code on the system, caused by the failure to properly consider backticks () as Javascript string delimiters. By sending a specially crafted request, an attacker could exploit this vulnerability to execute arbitrary code on the system.

IBM

Templates did not properly consider backticks () as Javascript string delimiters, and as such did not escape them as expected. Backticks are used, since ES6, for JS template literals. If a template contained a Go template action within a Javascript template literal, the contents of the action could be used to terminate the literal, injecting arbitrary Javascript code into the Go template.

References:

https://github.com/golang/go/issues/59234 https://github.com/golang/go/issues/59272

Red Hat

Templates do not properly consider backticks () as Javascript string delimiters, and do not escape them as expected. Backticks are used, since ES6, for JS template literals. If a template contains a Go template action within a Javascript template literal, the contents of the action can be used to terminate the literal, injecting arbitrary Javascript code into the Go template. As ES6 template literals are rather complex, and themselves can do string interpolation, the decision was made to simply disallow Go template actions from being used inside of them (e.g. "var a = {{.}}"), since there is no obviously safe way to allow this behavior. This takes the same approach as github.com/google/safehtml. With fix, Template.Parse returns an Error when it encounters templates like this, with an ErrorCode of value 12. This ErrorCode is currently unexported, but will be exported in the release of Go 1.21. Users who rely on the previous behavior can re-enable it using the GODEBUG flag jstmpllitinterp=1, with the caveat that backticks will now be escaped. This should be used with caution.

Launchpad

Affected Software

13 affected componentsFixes available
debian/golang-1.15<=1.15.15-1~deb11u4
debian/golang-1.19
1.19.8-2
Golang Go<1.19.8
Golang Go>=1.20.0<1.20.3
IBM Concert Software<=1.0.0 - 1.0.1
redhat/golang<1.20.3
1.20.3
redhat/golang<1.19.8
1.19.8
Microsoft cbl2 golang 1.19.8-1
Microsoft azl3 golang 1.19.8-1
Microsoft cbl2 golang 1.18.8-7
Microsoft cbl2 golang 1.17.13-2
Microsoft cbl2 golang 1.21.6-1
Microsoft cbl2 msft-golang 1.20.11-1

Remediation

Event History

Apr 4, 2023
Data Sourced
via Red Hat·08:21 PM
DescriptionSeverityAffected Software
Apr 6, 2023
CVE Published
via MITRE·03:50 PM
Data Sourced
via MITRE·03:50 PM
DescriptionWeakness
Oct 10, 2024
Data Sourced
via Launchpad·01:15 PM
Description
Oct 14, 2024
Data Sourced
via Ubuntu·01:14 PM
RemedyDescriptionSeverityAffected Software
Oct 21, 2024
Data Sourced
via IBM·12:00 AM
DescriptionAffected Software
Sep 4, 2025
Data Sourced
via Microsoft·06:00 AM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·06:00 AM
Affected Software
Updated
via Microsoft·06:00 AM
DescriptionSeverity

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the vulnerability ID?

The vulnerability ID is CVE-2023-24538.

2

What is the severity rating of CVE-2023-24538?

The severity rating of CVE-2023-24538 is critical with a value of 9.8.

3

Which software versions are affected by CVE-2023-24538?

Versions up to but excluding 1.19.8 of Golang Go, as well as versions up to but excluding 1.20.3 of Golang Go, are affected by CVE-2023-24538.

4

How can I fix CVE-2023-24538?

To fix CVE-2023-24538, update your Golang Go package to version 1.19.8 or later if you are using a version below 1.19.8, or update to version 1.20.3 or later if you are using a version between 1.20.0 and 1.20.3.

5

Are there any references for CVE-2023-24538?

Yes, you can find references for CVE-2023-24538 at the following links: [link1], [link2], [link3].

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203