Skip to main content
Public proof of conceptFix available

CVE-2023-24538

A public proof of concept exists; no exploitation attested.

  • Published2023-04-06
  • Fixed in1.20.3 · 1.19.8
  • WeaknessCWE-94

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

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.

Timeline

dates in UTC
  1. 2023-04-0616:15CVE publishedNVD
  2. 2026-10-2319:23First public proof of conceptPoC-in-GitHub

Observed activity

isMalicious corpus · updated 2026-10-23 21:37 UTC
Indicators tagged with this CVE, per day0 indicators over 7 days
Block these indicators
  • Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2023-24538?format=txt
  • CSV export: https://api.ismalicious.com/edl/cve/CVE-2023-24538?format=csv
  • TAXII collection of exploited CVEs
  • The EDL and CSV take an API key on the Pro plan.

Versions per branch

NVD · OSV
Go
BranchAffectedFixed in
1.20≥ 1.20.0, < 1.20.31.20.3
1.20≥ 1.20.0-0, < 1.20.31.20.3
1.19< 1.19.81.19.8

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • aardvark-dnsAlmaLinux:8all versions · fixed in 2:1.7.0-1.module_el8.9.0+3657+d86e192f
  • buildahAlmaLinux:9all versions · fixed in 1:1.31.3-1.el9and 1 other package
  • buildahAlmaLinux:8all versions · fixed in 1:1.24.6-7.module_el8.9.0+3627+db8ec155and 1 other package
  • buildahAlmaLinux:8all versions · fixed in 1:1.31.3-1.module_el8.9.0+3643+9234dc3band 1 other package
  • cockpit-podmanAlmaLinux:8all versions · fixed in 46-1.module_el8.7.0+3344+5bcd850f
  • cockpit-podmanAlmaLinux:8all versions · fixed in 75-1.module_el8.9.0+3643+9234dc3b
  • conmonAlmaLinux:8all versions · fixed in 2:2.1.4-2.module_el8.9.0+3627+db8ec155
  • conmonAlmaLinux:8all versions · fixed in 3:2.1.8-1.module_el8.9.0+3643+9234dc3b

38 more package ranges on OSV.dev

Vendor advisories

  • RHSA-2024:2944 Red Hat Product Security5 products fixed

    Red Hat Security Advisory: AMQ Broker 7.12.0.OPR.1.GA Container Images release and security update

  • RHSA-2024:0746 Red Hat Product Security3 products fixed

    Red Hat Security Advisory: new container image: rhceph-5.3

  • RHSA-2023:6939 Red Hat Product Security261 products fixed

    Red Hat Security Advisory: container-tools:rhel8 security and bug fix update

  • RHSA-2023:6938 Red Hat Product Security267 products fixed

    Red Hat Security Advisory: container-tools:4.0 security and bug fix update

  • RHSA-2023:6346 Red Hat Product Security17 products fixed

    Red Hat Security Advisory: toolbox security and bug fix update

  • RHSA-2023:6402 Red Hat Product Security13 products fixed

    Red Hat Security Advisory: containernetworking-plugins security and bug fix update

28 more advisories

Full record on NVD

Fix

  1. Update Go to 1.20.3 · 1.19.8
  2. Vendor fix Red Hat Product Security RHSA-2024:2944 · 5 productsTo update to the latest image please refer to the AMQ container images in the Red Hat Container catalog.
  3. Vendor fix Red Hat Product Security RHSA-2024:0746 · 3 productsBefore applying this update, make sure all previously released errata relevant to your system have been applied. For details on how to apply this update, refer to: https://access.redhat.com/articles/2789521 and https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/5/html-single/up…
  4. Vendor fix Red Hat Product Security RHSA-2023:6939 · 261 productsFor details on how to apply this update, which includes the changes described in this advisory, refer to: https://access.redhat.com/articles/11258
  5. Vendor fix Red Hat Product Security RHBA-2023:6109 · 1 productBefore applying this update, make sure all previously released errata relevant to your system have been applied. For details on how to apply this update, refer to: https://access.redhat.com/articles/11258
  6. Vendor fix Red Hat Product Security RHSA-2023:4986 · 54 productsTo update all RPMs for your particular architecture, run: rpm -Fvh [filenames] where [filenames] is a list of the RPMs you wish to upgrade. Only those RPMs which are currently installed will be updated. Those RPMs which are not installed but included in the list will not be updated. Note that y…
  7. Vendor fix Red Hat Product Security RHBA-2023:4275 · 10 productsBefore applying this update, make sure all previously released errata relevant to your system have been applied. For details on how to apply this update, refer to: https://access.redhat.com/articles/11258

Advisories and patches

Detection

read 2026-10-23 19:23 UTC
Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof-of-concept repositories
2 repositories, unverifiedskulkarni-mv/goIssue_dunfellskulkarni-mv/goIssue_kirkstone
PoC-in-GitHub

Sources

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Published
2023-04-06
Last Modified
2026-06-17
NVD status
Modified

Frequently asked questions

What is CVE-2023-24538?

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.

Is CVE-2023-24538 actively exploited?

Active exploitation of CVE-2023-24538 has not been confirmed. Its EPSS score was 2.3% on 2026-10-22, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2023-24538?

CVE-2023-24538 has a CVSS v3 base score of 9.8 (CRITICAL severity), with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Running skopeo? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month