data/reports: add GO-2023-1703.yaml
Aliases: CVE-2023-24538
Updates golang/vulndb#1703
Change-Id: I14085ebbad5ff6593841480f05acba69a33da101
Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/482618
Run-TryBot: Tatiana Bradley <tatianabradley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Tatiana Bradley <tatianabradley@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/data/reports/GO-2023-1703.yaml b/data/reports/GO-2023-1703.yaml
new file mode 100644
index 0000000..bc4ecfe
--- /dev/null
+++ b/data/reports/GO-2023-1703.yaml
@@ -0,0 +1,46 @@
+modules:
+ - module: std
+ versions:
+ - fixed: 1.19.8
+ - introduced: 1.20.0
+ fixed: 1.20.3
+ vulnerable_at: 1.20.2
+ packages:
+ - package: html/template
+ symbols:
+ - tJS
+ - tJSDelimited
+ derived_symbols:
+ - Template.Execute
+ - Template.ExecuteTemplate
+summary: Backticks not treated as string delimiters in html/template
+description: |
+ 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: Sohom Datta, Manipal Institute of Technology
+references:
+ - report: https://go.dev/issue/59234
+ - fix: https://go.dev/cl/482079
+ - web: https://groups.google.com/g/golang-announce/c/Xdv6JL9ENs8
+cve_metadata:
+ id: CVE-2023-24538
+ cwe: 'CWE-94: Improper Control of Generation of Code (''Code Injection'')'