CWE
94
Advisory Published
CVE Published
Updated

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

First published: Tue Apr 04 2023(Updated: )

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.

Credit: security@golang.org security@golang.org

Affected SoftwareAffected VersionHow to fix
Golang Go<1.19.8
Golang Go>=1.20.0<1.20.3
redhat/golang<1.20.3
1.20.3
redhat/golang<1.19.8
1.19.8

Never miss a vulnerability like this again

Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.

Reference Links

Frequently Asked Questions

  • What is the vulnerability ID?

    The vulnerability ID is CVE-2023-24538.

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

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

  • 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.

  • 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.

  • 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.
© 2024 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203