Cloudanix VulnDB

CVE-2025-27144

None

CVSS

—

EPSS

0.4%

Published

Feb 24, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A library used to handle signed and encrypted tokens can be overwhelmed by specially crafted input, causing the programs that depend on it to run out of memory and stop working.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The library uses strings.Split on untrusted compact JWS/JWE input, allocating memory proportional to the number of dot characters; a token containing thousands of dots exhausts available memory and triggers a denial of service.

Why it matters to the business

Applications that accept JWTs or JWE tokens from untrusted sources can be forced offline, causing service outages and loss of availability for any system relying on this library.

How an attack unfolds

An attacker crafts a compact serialization containing an extremely large number of dot separators, submits it to any endpoint that passes the value to Go JOSE's Parse or Decrypt functions, and repeats the request to drive memory consumption until the process terminates or becomes unresponsive.

How to fix it

Upgrade go-jose/go-jose to commit 99b346cec4e86d102284642c5dcbe9bb0cacfc22 (version 4.0.5 or later). As an immediate mitigation, add an input check that rejects any token containing more than a small fixed number of '.' characters before it reaches the library.

How to confirm the fix worked

Confirm the running binary or module version reports a commit at or after 99b346cec4e86d102284642c5dcbe9bb0cacfc22; re-test with a token containing 10 000 dots and verify that memory usage remains bounded and no crash occurs.

Typical attack path

  1. Locate an HTTP or API endpoint that accepts JWT/JWE tokens without prior validation.
  2. Generate a compact token string consisting of a valid header and payload separated by thousands of '.' characters.
  3. Send the malformed token in an authentication or decryption request.
  4. Repeat the request at a rate sufficient to exhaust server memory before garbage collection can reclaim it.

How to detect it

Inspect application logs and request logs for tokens containing unusually high dot counts; correlate with memory-usage spikes or OOM events on the process; look for repeated requests from the same source containing long sequences of '.' characters.

What your security team should do

  • Upgrade all instances of go-jose/go-jose to the fixed commit within the next maintenance window.
  • Add a lightweight pre-validation filter that limits the number of '.' characters in any incoming token.
  • Review other JWT-processing libraries in the environment for similar unbounded-split patterns.
  • Monitor memory and request-rate metrics on services that accept JWTs to detect anomalous spikes.

The record

Go JOSE provides an implementation of the Javascript Object Signing and Encryption set of standards in Go, including support for JSON Web Encryption (JWE), JSON Web Signature (JWS), and JSON Web Token (JWT) standards. In versions on the 4.x branch prior to version 4.0.5, when parsing compact JWS or JWE input, Go JOSE could use excessive memory. The code used strings.Split(token, ".") to split JWT tokens, which is vulnerable to excessive memory consumption when processing maliciously crafted tokens with a large number of `.` characters. An attacker could exploit this by sending numerous malformed tokens, leading to memory exhaustion and a Denial of Service. Version 4.0.5 fixes this issue. As a workaround, applications could pre-validate that payloads passed to Go JOSE do not contain an excessive number of `.` characters.

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/go-jose/go-jose 0 No fix
Go github.com/go-jose/go-jose 0 3.0.4
Go github.com/go-jose/go-jose/v3 0 3.0.4
Go github.com/go-jose/go-jose/v4 0 4.0.5
Go github.com/square/go-jose 0 No fix
AlmaLinux:10 buildah 0 2:1.39.4-1.el10_0
AlmaLinux:10 buildah-tests 0 2:1.39.4-1.el10_0
AlmaLinux:10 osbuild-composer 0 134.1-3.el10_0.alma.1
AlmaLinux:10 osbuild-composer-core 0 134.1-3.el10_0.alma.1
AlmaLinux:10 osbuild-composer-worker 0 134.1-3.el10_0.alma.1
AlmaLinux:10 podman 0 6:5.4.0-9.el10_0
AlmaLinux:10 podman-docker 0 6:5.4.0-9.el10_0
AlmaLinux:10 podman-remote 0 6:5.4.0-9.el10_0
AlmaLinux:10 podman-tests 0 6:5.4.0-9.el10_0
AlmaLinux:10 skopeo 0 2:1.18.1-1.el10_0
AlmaLinux:10 skopeo-tests 0 2:1.18.1-1.el10_0
AlmaLinux:9 buildah 0 2:1.39.4-1.el9_6
AlmaLinux:9 buildah-tests 0 2:1.39.4-1.el9_6
AlmaLinux:9 skopeo 0 2:1.18.1-1.el9_6
AlmaLinux:9 skopeo-tests 0 2:1.18.1-1.el9_6
Chainguard aactl 0 0.4.12-r25
Chainguard apko 0 0.25.1-r2
Chainguard argo-cd-2.10 0 2.10.18-r9
Chainguard argo-cd-2.10-compat 0 2.10.18-r9
Chainguard argo-cd-2.10-repo-server 0 2.10.18-r9
Chainguard argo-cd-2.11 0 2.11.13-r2
Chainguard argo-cd-2.11-compat 0 2.11.13-r2
Chainguard argo-cd-2.11-repo-server 0 2.11.13-r2
Chainguard argo-cd-2.12 0 2.12.10-r3
Chainguard argo-cd-2.12-compat 0 2.12.10-r3
Chainguard argo-cd-2.12-repo-server 0 2.12.10-r3
Chainguard argo-cd-2.13 0 2.13.5-r3
Chainguard argo-cd-2.13-compat 0 2.13.5-r3
Chainguard argo-cd-2.13-repo-server 0 2.13.5-r3
Chainguard argo-cd-2.14 0 2.14.2-r2
Chainguard argo-cd-2.14-compat 0 2.14.2-r2
Chainguard argo-cd-2.14-repo-server 0 2.14.2-r2
Chainguard argo-cd-fips-2.10 0 2.10.18-r7
Chainguard argo-cd-fips-2.10-compat 0 2.10.18-r7
Chainguard argo-cd-fips-2.10-repo-server 0 2.10.18-r7
Chainguard argo-cd-fips-2.11 0 2.11.13-r2
Chainguard argo-cd-fips-2.11-compat 0 2.11.13-r2
Chainguard argo-cd-fips-2.11-repo-server 0 2.11.13-r2
Chainguard argo-cd-fips-2.12 0 2.12.10-r3
Chainguard argo-cd-fips-2.12-compat 0 2.12.10-r3
Chainguard argo-cd-fips-2.12-repo-server 0 2.12.10-r3
Chainguard argo-cd-fips-2.13 0 2.13.5-r2
Chainguard argo-cd-fips-2.13-compat 0 2.13.5-r2
Chainguard argo-cd-fips-2.13-repo-server 0 2.13.5-r2
Chainguard argo-cd-fips-2.14 0 2.14.2-r2
Chainguard argo-cd-fips-2.14-compat 0 2.14.2-r2
Chainguard argo-cd-fips-2.14-repo-server 0 2.14.2-r2
Chainguard argo-workflow-cli 0 3.6.4-r1
Chainguard argo-workflow-cli-fips 0 3.6.5-r2
Chainguard argo-workflow-controller 0 3.6.4-r1
Chainguard argo-workflow-controller-compat 0 3.6.4-r1
Chainguard argo-workflow-controller-compat-fips 0 3.6.5-r2
Chainguard argo-workflow-controller-fips 0 3.6.5-r2
Chainguard argo-workflow-executor 0 3.6.4-r1
Chainguard argo-workflow-executor-compat 0 3.6.4-r1
Chainguard argo-workflow-executor-compat-fips 0 3.6.5-r2
Chainguard argo-workflow-executor-fips 0 3.6.5-r2
Chainguard argo-workflows 0 3.6.4-r1
Chainguard argo-workflows-fips 0 3.6.5-r2
Chainguard argo-workflows-known-hosts 0 3.6.4-r1
Chainguard argo-workflows-known-hosts-fips 0 3.6.5-r2
Chainguard argo-workflows-ui 0 3.6.4-r1
Chainguard argocd-image-updater 0 0.15.2-r5
Chainguard argocd-image-updater-compat 0 0.15.2-r5
Chainguard argocd-image-updater-fips 0 0.15.2-r4
Chainguard bank-vaults 0 1.20.4-r25
Chainguard bank-vaults-fips 0 1.20.4-r21
Chainguard bank-vaults-template 0 1.20.4-r25
Chainguard bank-vaults-template-fips 0 1.20.4-r21
Chainguard boring-registry 0 0.16.3-r1
Chainguard boring-registry-fips 0 0.16.0-r2
Chainguard buildah 0 1.39.0-r2
Chainguard caddy 0 2.9.1-r5
Chainguard caddy-fips 0 2.9.1-r5
Chainguard caddy-man 0 2.9.1-r5
Chainguard caddy-src 0 2.9.1-r5
Chainguard cert-manager-1.12 0 1.12.16-r1
Chainguard cert-manager-1.12-acmesolver 0 1.12.16-r1
Chainguard cert-manager-1.12-cainjector 0 1.12.16-r1
Chainguard cert-manager-1.12-controller 0 1.12.16-r1
Chainguard cert-manager-1.12-webhook 0 1.12.16-r1
Chainguard cert-manager-1.15 0 1.15.5-r3
Chainguard cert-manager-1.16 0 1.16.4-r1
Chainguard cert-manager-1.16 0 1.16.5-r6
Chainguard cert-manager-1.16-acmesolver 0 1.16.4-r1
Chainguard cert-manager-1.16-cainjector 0 1.16.4-r1
Chainguard cert-manager-1.16-controller 0 1.16.4-r1
Chainguard cert-manager-1.16-startupapicheck 0 1.16.4-r1
Chainguard cert-manager-1.16-webhook 0 1.16.4-r1
Chainguard cert-manager-1.17 0 1.17.1-r1
Chainguard cert-manager-acmesolver-1.12 0 1.12.16-r1
Chainguard cert-manager-acmesolver-1.12-bitnami-compat 0 1.12.16-r1
Chainguard cert-manager-acmesolver-1.12-iamguarded-compat 0 1.12.16-r1
Chainguard cert-manager-acmesolver-1.15 0 1.15.5-r3
Chainguard cert-manager-acmesolver-1.16 0 1.16.4-r1
Chainguard cert-manager-acmesolver-1.16 0 1.16.5-r6
Chainguard cert-manager-acmesolver-1.16-bitnami-compat 0 1.16.5-r6
Chainguard cert-manager-acmesolver-1.16-iamguarded-compat 0 1.16.5-r6
Chainguard cert-manager-acmesolver-1.17 0 1.17.1-r1
Chainguard cert-manager-acmesolver-1.17-bitnami-compat 0 1.17.1-r1
Chainguard cert-manager-acmesolver-1.17-iamguarded-compat 0 1.17.1-r1
Chainguard cert-manager-acmesolver-fips-1.12 0 1.12.16-r1
Chainguard cert-manager-acmesolver-fips-1.15 0 1.15.5-r3
Chainguard cert-manager-acmesolver-fips-1.16 0 1.16.4-r1
Chainguard cert-manager-acmesolver-fips-1.17 0 1.17.1-r1
Chainguard cert-manager-cainjector-1.12 0 1.12.16-r1
Chainguard cert-manager-cainjector-1.12-bitnami-compat 0 1.12.16-r1
Chainguard cert-manager-cainjector-1.12-iamguarded-compat 0 1.12.16-r1
Chainguard cert-manager-cainjector-1.15 0 1.15.5-r3
Chainguard cert-manager-cainjector-1.16 0 1.16.4-r1
Chainguard cert-manager-cainjector-1.16 0 1.16.5-r6
Chainguard cert-manager-cainjector-1.16-bitnami-compat 0 1.16.5-r6
Chainguard cert-manager-cainjector-1.16-iamguarded-compat 0 1.16.5-r6
Chainguard cert-manager-cainjector-1.17 0 1.17.1-r1
Chainguard cert-manager-cainjector-1.17-bitnami-compat 0 1.17.1-r1
Chainguard cert-manager-cainjector-1.17-iamguarded-compat 0 1.17.1-r1
Chainguard cert-manager-cainjector-fips-1.12 0 1.12.16-r1
Chainguard cert-manager-cainjector-fips-1.15 0 1.15.5-r3
Chainguard cert-manager-cainjector-fips-1.16 0 1.16.4-r1
Chainguard cert-manager-cainjector-fips-1.17 0 1.17.1-r1
Chainguard cert-manager-controller-1.12 0 1.12.16-r1
Chainguard cert-manager-controller-1.12-bitnami-compat 0 1.12.16-r1
Chainguard cert-manager-controller-1.12-iamguarded-compat 0 1.12.16-r1
Chainguard cert-manager-controller-1.15 0 1.15.5-r3
Chainguard cert-manager-controller-1.16 0 1.16.4-r1
Chainguard cert-manager-controller-1.16 0 1.16.5-r6
Chainguard cert-manager-controller-1.16-bitnami-compat 0 1.16.5-r6
Chainguard cert-manager-controller-1.16-iamguarded-compat 0 1.16.5-r6
Chainguard cert-manager-controller-1.17 0 1.17.1-r1
Chainguard cert-manager-controller-1.17-bitnami-compat 0 1.17.1-r1
Chainguard cert-manager-controller-1.17-iamguarded-compat 0 1.17.1-r1
Chainguard cert-manager-controller-fips-1.12 0 1.12.16-r1
Chainguard cert-manager-controller-fips-1.15 0 1.15.5-r3
Chainguard cert-manager-controller-fips-1.16 0 1.16.4-r1
Chainguard cert-manager-controller-fips-1.17 0 1.17.1-r1
Chainguard cert-manager-fips-1.12 0 1.12.16-r1
Chainguard cert-manager-fips-1.12-acmesolver 0 1.12.16-r1
Chainguard cert-manager-fips-1.12-cainjector 0 1.12.16-r1
Chainguard cert-manager-fips-1.12-cmctl 0 1.12.16-r1
Chainguard cert-manager-fips-1.12-controller 0 1.12.16-r1
Chainguard cert-manager-fips-1.12-webhook 0 1.12.16-r1
Chainguard cert-manager-fips-1.15 0 1.15.5-r3
Chainguard cert-manager-fips-1.15-acmesolver 0 1.15.5-r3
Chainguard cert-manager-fips-1.15-cainjector 0 1.15.5-r3
Chainguard cert-manager-fips-1.15-controller 0 1.15.5-r3
Chainguard cert-manager-fips-1.15-startupapicheck 0 1.15.5-r3
Chainguard cert-manager-fips-1.15-webhook 0 1.15.5-r3
Chainguard cert-manager-fips-1.16 0 1.16.4-r1
Chainguard cert-manager-fips-1.16-acmesolver 0 1.16.4-r1
Chainguard cert-manager-fips-1.16-cainjector 0 1.16.4-r1
Chainguard cert-manager-fips-1.16-controller 0 1.16.4-r1
Chainguard cert-manager-fips-1.16-startupapicheck 0 1.16.4-r1
Chainguard cert-manager-fips-1.16-webhook 0 1.16.4-r1
Chainguard cert-manager-fips-1.17 0 1.17.1-r1
Chainguard cert-manager-istio-csr 0 0.14.0-r2
Chainguard cert-manager-istio-csr-compat 0 0.14.0-r2
Chainguard cert-manager-startupapicheck-1.15 0 1.15.5-r3
Chainguard cert-manager-startupapicheck-1.16 0 1.16.4-r1
Chainguard cert-manager-startupapicheck-1.16 0 1.16.5-r6
Chainguard cert-manager-startupapicheck-1.17 0 1.17.1-r1
Chainguard cert-manager-startupapicheck-fips-1.15 0 1.15.5-r3
Chainguard cert-manager-startupapicheck-fips-1.16 0 1.16.4-r1
Chainguard cert-manager-startupapicheck-fips-1.17 0 1.17.1-r1
Chainguard cert-manager-webhook-1.12 0 1.12.16-r1
Chainguard cert-manager-webhook-1.12-bitnami-compat 0 1.12.16-r1
Chainguard cert-manager-webhook-1.12-iamguarded-compat 0 1.12.16-r1
Chainguard cert-manager-webhook-1.15 0 1.15.5-r3
Chainguard cert-manager-webhook-1.16 0 1.16.4-r1
Chainguard cert-manager-webhook-1.16 0 1.16.5-r6
Chainguard cert-manager-webhook-1.16-bitnami-compat 0 1.16.4-r1
Chainguard cert-manager-webhook-1.16-iamguarded-compat 0 1.16.5-r6
Chainguard cert-manager-webhook-1.17 0 1.17.1-r1
Chainguard cert-manager-webhook-1.17-bitnami-compat 0 1.17.1-r1
Chainguard cert-manager-webhook-1.17-iamguarded-compat 0 1.17.1-r1
Chainguard cert-manager-webhook-fips-1.12 0 1.12.16-r1
Chainguard cert-manager-webhook-fips-1.15 0 1.15.5-r3
Chainguard cert-manager-webhook-fips-1.16 0 1.16.4-r1
Chainguard cert-manager-webhook-fips-1.17 0 1.17.1-r1
Chainguard chainctl 0 0.2.59-r0
Chainguard cilium-1.14 0 1.14.19-r2
Chainguard cilium-1.14-clustermesh-apiserver 0 1.14.19-r2
Chainguard cilium-1.14-container-init 0 1.14.19-r2
Chainguard cilium-1.14-container-init-compat 0 1.14.19-r2
Chainguard cilium-1.14-hubble-relay 0 1.14.19-r2
Chainguard cilium-1.14-iptables 0 1.14.19-r2
Chainguard cilium-1.14-operator-aws 0 1.14.19-r2
Chainguard cilium-1.14-operator-generic 0 1.14.19-r2
Chainguard cilium-1.15 0 1.15.19-r3
Chainguard cilium-1.15-clustermesh-apiserver 0 1.15.19-r3
Chainguard cilium-1.15-container-init 0 1.15.19-r3
Chainguard cilium-1.15-container-init-compat 0 1.15.19-r3
Chainguard cilium-1.15-hubble-relay 0 1.15.19-r3
Chainguard cilium-1.15-iptables 0 1.15.19-r3
Chainguard cilium-1.15-operator-aws 0 1.15.19-r3
Chainguard cilium-1.15-operator-generic 0 1.15.19-r3

Related vulnerabilities