CVE-2023-24538 json
Backticks not treated as string delimiters in html/template
published 2023-04-05 3 y ago modified 2026-09-08 2 mo ago also BIT-golang-2023-24538 , EUVD-2023-28554 , GO-2023-1703
- cvss
- 9.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.3%
- EPSS 2.3% chance of exploitation in 30 days, percentile 83%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- bitnami golang 1.19.8, 1.20.3
- go stdlib 1.19.8, 1.20.3
- Go standard library html/template 1.19.8, 1.20.3
- golang-1.19 Debian 12 1.19.8-2
debian advisories DEBIAN-CVE-2023-24538
- golang-1.13 Ubuntu 20.04 LTS 1.13.8-1ubuntu1.2
- golang-1.13 Ubuntu 22.04 LTS 1.13.8-1ubuntu2.22.04.2
- golang-1.16 Ubuntu 20.04 LTS 1.16.2-0ubuntu1~20.04.1
- golang-1.17 Ubuntu 22.04 LTS 1.17.13-3ubuntu1.2
- golang-1.18 Ubuntu 18.04 LTS 1.18.1-1ubuntu1~18.04.4
- golang-1.18 Ubuntu 20.04 LTS 1.18.1-1ubuntu1~20.04.2
- golang-1.18 Ubuntu 22.04 LTS 1.18.1-1ubuntu1.1
- golang-1.13 Ubuntu Pro 16.04 LTS 1.13.8-1ubuntu1~16.04.3+esm3
ubuntu advisories UBUNTU-CVE-2023-24538
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- crit RHEL 8 3.15-3.module+el8.9.0+19243+df4d9ff2
- criu RHEL 8 3.15-3.module+el8.9.0+19243+df4d9ff2
- crun RHEL 8 1.8.3-1.module+el8.9.0+19098+6e7a5e3f
- runc RHEL 8 1:1.1.5-2.module+el8.9.0+19104+fcef53a3
- udica RHEL 8 0.2.6-4.module+el8.9.0+19098+6e7a5e3f
- conmon RHEL 8 2:2.1.4-2.module+el8.9.0+19098+6e7a5e3f
- podman RHEL 8 2:4.0.2-24.module+el8.9.0+19784+443be299
- skopeo RHEL 8 2:1.6.2-8.module+el8.9.0+19104+fcef53a3
red hat advisories RHSA-2023:6938RHSA-2023:6939RHSA-2023:3319RHSA-2023:5964RHSA-2023:6473RHSA-2023:6474
- go1.19 SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Real Time 15 SP3 +5 more 1.19.9-150000.1.31.1
- go1.20 SLE Real Time 15 SP3, SLE Module for Development Tools 15 SP4, openSUSE Leap 15.4 1.20.4-150000.1.11.1
- go1.19 SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Real Time 15 SP3 +5 more 1.19.8-150000.1.26.1
- go1.20 SLE Module for Development Tools 15 SP4, openSUSE Leap 15.4 1.20.3-150000.1.8.1
suse advisories SUSE-SU-2023:2127-1SUSE-SU-2023:2105-2SUSE-SU-2023:2105-1SUSE-SU-2023:1792-1SUSE-SU-2023:1791-1
- go1.20 openSUSE Tumbleweed 1.20.3-1.1
- go1.19 openSUSE Tumbleweed 1.19.8-1.1
opensuse advisories openSUSE-SU-2024:12841-1openSUSE-SU-2024:12845-1
- crit AlmaLinux 8 3.15-3.module_el8.6.0+3137+d33c3efb
- crit AlmaLinux 8 3.15-3.module_el8.6.0+2877+8e437bf5
- criu AlmaLinux 8 3.15-3.module_el8.6.0+2877+8e437bf5
- criu AlmaLinux 8 3.15-3.module_el8.6.0+3137+d33c3efb
- crun AlmaLinux 8 1.8.3-1.module_el8.9.0+3627+db8ec155
- runc AlmaLinux 8 1:1.1.5-2.module_el8.9.0+3627+db8ec155
- udica AlmaLinux 8 0.2.6-4.module_el8.9.0+3627+db8ec155
- conmon AlmaLinux 8 2:2.1.4-2.module_el8.9.0+3627+db8ec155
almalinux advisories ALSA-2023:6938ALSA-2023:6939ALSA-2023:6346ALSA-2023:6363ALSA-2023:6402ALSA-2023:6473
- criu Rocky Linux 8 3.15-3.module+el8.9.0+1445+07728297
- crun Rocky Linux 8 1.8.3-1.module+el8.9.0+1445+07728297
- runc Rocky Linux 8 1:1.1.5-2.module+el8.9.0+1445+07728297
- udica Rocky Linux 8 0.2.6-4.module+el8.9.0+1445+07728297
- conmon Rocky Linux 8 2:2.1.4-2.module+el8.9.0+1445+07728297
- podman Rocky Linux 8 2:4.0.2-24.module+el8.9.0+1445+07728297
- buildah Rocky Linux 8 1:1.24.6-7.module+el8.9.0+1445+07728297
- libslirp Rocky Linux 8 4.4.0-1.module+el8.9.0+1445+07728297
rocky linux advisories RLSA-2023:6938RLSA-2023:6939
- go Alpine 3.17 1.19.8-r0
- go Alpine 3.24, Alpine 3.23, Alpine 3.22 +4 more 1.20.3-r0
alpine advisories ALPINE-CVE-2023-24538
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- golang CBL-Mariner 2.0, Azure Linux 3.0 1.19.8-1
- msft-golang CBL-Mariner 2.0 1.20.11-1
- golang CBL-Mariner 2.0 1.21.6-1
azure linux advisories AZL-25992AZL-25993AZL-34751AZL-37296AZL-37411
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
- go.dev/issue/59234 patch
- go.dev/cl/482079 patch
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2023-24538 updated cvss 9.8
golang: html/template: backticks not treated as string delimiters
-
Red Hat Node HealthCheck Operator workload-availability/node-healthcheck-rhel8-operator Red Hat Node Maintenance Operator openshift4/node-maintenance-operatoraffected: workaround, no fix available
-
Red Hat OpenShift Developer Tools and Services odo, helm, openshift4/ose-jenkinsaffected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat OpenShift Pipelines openshift-pipelines-client Red Hat Advanced Cluster Management for Kubernetes 2 openshift4/ose-thanos-rhel8 Red Hat Advanced Cluster Security 3 advanced-cluster-security/rhacs-main-rhel8 Red Hat AMQ Broker 7 ansible-automation-platform-24/controller-rhel8-operator Red Hat Ansible Automation Platform 2 receptor Red Hat Application Interconnect 1.0 skupper-cliaffected: workaround, no fix available
-
Red Hat Ceph Storage 3 golang, golang-bin, golang-srcaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 8 skopeo, toolbox, skopeo-tests, toolbox-tests, osbuild-composer, containers-common, +4 more Red Hat Enterprise Linux 9 ignition, ignition-edge, ignition-grub, osbuild-composer, ignition-validate, osbuild-composer-core, +2 more Red Hat OpenShift Container Platform 4 ignition, ignition-validateaffected: workaround, no fix planned “Will not fix”
-
Red Hat OpenShift Dev Spaces devspaces/udi-base-rhel9 Red Hat OpenShift distributed tracing 2 rhosdt/tempo-jaeger-query-rhel8affected: workaround, no fix available
-
Red Hat OpenShift GitOps openshift-gitops-1/gitops-rhel8, openshift4/ose-baremetal-installer-rhel9affected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat Openshift Sandboxed Containers openshift-sandboxed-containers/osc-rhel9-operatoraffected: workaround, no fix planned “Out of support scope”
show 21 moreshow fewer
-
Red Hat OpenShift Virtualization 4 kubevirtaffected: workaround, no fix available
-
Red Hat OpenStack Platform 17.0 rhosp13/openstack-gnocchi-statsd, golang-github-infrawatch-apputilsaffected: workaround, no fix planned “Will not fix”
-
Red Hat Storage 3 golang, heketi, golang-bin, golang-src, golang-misc, golang-tests, +3 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Web Terminal web-terminal/web-terminal-exec-rhel9 Red Hat Self Node Remediation Operator openshift4/self-node-remediation-operatoraffected: workaround, no fix available
-
Red Hat Service Telemetry Framework 1.4 for RHEL 8 rhoso-operators/sg-core-rhel9affected: workaround, no fix planned “Will not fix”
-
Red Hat CNV 4.13 for RHEL 9 container-native-virtualization/virt-api-rhel9 v4.13.1--2023-115326, container-native-virtualization/virtio-win-rhel9 v4.13.1--2023-115326, container-native-virtualization/kubemacpool-rhel9 v4.13.1--2023-115326, container-native-virtualization/multus-dynamic-networks-rhel9 v4.13.1-4, container-native-virtualization/virt-handler-rhel9 v4.13.1--2023-115326, container-native-virtualization/bridge-marker-rhel9 v4.13.1--2023-115326, +53 morefixed: vendor fix RHEA-2023:3686
-
Red Hat Ironic content for Red Hat OpenShift Container Platform 4.13 python-flask 2.0.1-4.el9.2, python3-flask 2.0.1-4.el9.2, openstack-ironic 21.3.1-0.20230510075528.b3c902e.el9, openstack-ironic-api 21.3.1-0.20230510075528.b3c902e.el9, python3-ironic-tests 21.3.1-0.20230510075528.b3c902e.el9, openstack-ironic-common 21.3.1-0.20230510075528.b3c902e.el9, +2 morefixed: vendor fix RHSA-2023:3366
-
Red Hat Middleware Containers for OpenShift amq7/amq-broker-rhel8-operator 7.12.0-16, amq7/amq-broker-rhel8-operator-bundle 7.12.0-10fixed: vendor fix RHSA-2024:2944
-
Red Hat Migration Toolkit for Virtualization 2.4 migration-toolkit-virtualization/mtv-controller-rhel9 2.4.3-5fixed: vendor fix RHBA-2023:6109
-
Red Hat MTA 6.2 for RHEL 8 mta/mta-hub-rhel9 6.2.0-16fixed: vendor fix RHSA-2023:4627
-
Red Hat OpenShift API for Data Protection 1.1 oadp/oadp-velero-rhel8 1.1.5-3fixed: vendor fix RHSA-2023:3918
-
Red Hat OSSO 1.1 for RHEL 8 openshift-secondary-scheduler-operator/secondary-scheduler-operator-rhel8 v1.1-30fixed: vendor fix RHSA-2023:4657
-
Red Hat Quay v3 quay/clair-rhel8 v3.8.11-3, quay/quay-rhel8 v3.8.11-13, quay/quay-builder-rhel8 v3.8.11-4, quay/quay-operator-rhel8 v3.8.11-3, quay/quay-operator-bundle v3.8.11-20, quay/quay-bridge-operator-rhel8 v3.8.11-3, +4 morefixed: vendor fix RHBA-2023:4275
-
Red Hat Ansible Automation Platform 2.3 for RHEL 8 openshift-clients 4.12.0-202307200611.p0.g49844f7.assembly.stream.el8fixed: vendor fix RHSA-2023:4470
-
Red Hat Ceph Storage 5.3 Tools rhceph/rhceph-5-dashboard-rhel8 5-83fixed: vendor fix RHSA-2024:0746
-
Red Hat Developer Tools for Red Hat Enterprise Linux Server (v. 7) go-toolset-1.19-golang 1.19.9-1.el7_9, go-toolset-1.19-golang-bin 1.19.9-1.el7_9, go-toolset-1.19-golang-src 1.19.9-1.el7_9, go-toolset-1.19-golang-misc 1.19.9-1.el7_9, go-toolset-1.19-golang-race 1.19.9-1.el7_9, go-toolset-1.19-golang-tests 1.19.9-1.el7_9 Red Hat Developer Tools for Red Hat Enterprise Linux Workstation (v. 7) go-toolset-1.19-golang 1.19.9-1.el7_9, go-toolset-1.19-golang-bin 1.19.9-1.el7_9, go-toolset-1.19-golang-src 1.19.9-1.el7_9, go-toolset-1.19-golang-misc 1.19.9-1.el7_9, go-toolset-1.19-golang-race 1.19.9-1.el7_9, go-toolset-1.19-golang-tests 1.19.9-1.el7_9fixed: vendor fix RHSA-2023:3323
-
Red Hat Enterprise Linux AppStream (v. 8) crit 3.15-3.module+el8.9.0+19243+df4d9ff2, crit 3.18-4.module+el8.9.0+19090+d2921118, criu 3.15-3.module+el8.9.0+19243+df4d9ff2, criu 3.18-4.module+el8.9.0+19090+d2921118, crun 1.8.3-1.module+el8.9.0+19098+6e7a5e3f, crun 1.8.7-1.module+el8.9.0+19731+94cfa27e, +68 morefixed: vendor fix RHSA-2023:3319
-
Red Hat Enterprise Linux AppStream (v. 9) podman 4.6.1-5.el9, skopeo 1.13.3-1.el9, buildah 1.31.3-1.el9, golang 1.19.9-2.el9_2, podman-tests 4.6.1-5.el9, toolbox 0.0.99.4-6.el9_3, +13 morefixed: vendor fix RHSA-2023:3318
-
Red Hat Migration Toolkit 1.7 rhmtc/openshift-velero-plugin-rhel8 v1.7.10-2fixed: vendor fix RHSA-2023:3624
-
Red Hat OpenShift Container Platform 4.13 cri-tools 1.26.0-2.el9, perf 5.14.0-284.16.1.el9_2, rtla 5.14.0-284.16.1.el9_2, bpftool 7.0.0-284.16.1.el9_2, conmon 2.1.7-2.rhaos4.13.el8, kernel 5.14.0-284.16.1.el9_2, +307 morefixed: vendor fix RHSA-2023:3612
-
Red Hat OpenShift Serverless 1.0 openshift-serverless-clients 1.8.1-3.el8fixed: vendor fix RHSA-2023:3450
5 more fixed, 29 more not affected in the full advisory
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
cisa ICSA-24-046-11 updated cvss 9.8
Siemens SCALANCE XCM-/XRM-300
-
Siemens SCALANCE XCH328 (6GK5328-4TS01-2EC2) <V2.4 Siemens SCALANCE XCM324 (6GK5324-8TS01-2AC2) <V2.4 Siemens SCALANCE XCM328 (6GK5328-4TS01-2AC2) <V2.4 Siemens SCALANCE XCM332 (6GK5332-0GA01-2AC2) <V2.4 Siemens SCALANCE XRH334 (24 V DC, 8xFO, CC) (6GK5334-2TS01-2ER3) <V2.4 Siemens SCALANCE XRM334 (2x230 V AC, 8xFO) (6GK5334-2TS01-4AR3) <V2.4affected: fixed in V2.4 support.industry.siemens.com
+5 more productsfewer
Siemens SCALANCE XRM334 (2x230 V AC, 12xFO) (6GK5334-3TS01-4AR3) <V2.4 Siemens SCALANCE XRM334 (24 V DC, 8xFO) (6GK5334-2TS01-2AR3) <V2.4 Siemens SCALANCE XRM334 (24 V DC, 12xFO) (6GK5334-3TS01-2AR3) <V2.4 Siemens SCALANCE XRM334 (230 V AC, 8xFO) (6GK5334-2TS01-3AR3) <V2.4 Siemens SCALANCE XRM334 (230 V AC, 12xFO) (6GK5334-3TS01-3AR3) <V2.4
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 20 mo ago
Exploit prediction
2.28% chance of exploitation in the next 30 days, higher than 83% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| OSV | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| bitnami | golang | <1.19.8 >=1.20.0, <1.20.3 |
1.19.8 1.20.3 |
| go | stdlib | <1.19.8 >=1.20.0-0, <1.20.3 |
1.19.8 1.20.3 |
Affected products
- Go standard library html/template
Classification
- Weakness
-
- CWE-94 Improper Control of Generation of Code
References
-
go.dev
/issue/59234
issue-tracking, patch, report
-
go.dev
/cl/482079
patch
-
pkg.go.dev
/vuln/GO-2023-1703
vendor-advisory, advisory
-
groups.google.com
/g/golang-announce/c/Xdv6JL9ENs8
mailing-list, discussion, web
-
security.gentoo.org
/glsa/202311-09
web
-
security.netapp.com
/advisory/ntap-20241115-0007/
web
-
nvd.nist.gov
/vuln/detail/CVE-2023-24538
web
Sources
- CVE List CVE-2023-24538
- NVD CVE-2023-24538
- OSV BIT-golang-2023-24538
- OSV GO-2023-1703
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.