CVE-2025-47908
High · 7.5CVSS
7.5
EPSS
0.6%
Published
Aug 6, 2025
CISA due date
—
Cloudanix analysis
A flaw in request handling lets attackers send specially crafted web requests that can overwhelm a server with memory use and make the service unavailable.
- 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 middleware performs excessive heap allocations when parsing an Access-Control-Request-Headers header containing many commas in a CORS preflight request, leading to high memory consumption and potential denial of service.
Why it matters to the business
Attackers can cause targeted servers to consume disproportionate memory and become unavailable, disrupting service availability for applications relying on the affected middleware.
How an attack unfolds
An attacker crafts an HTTP OPTIONS preflight request containing an Access-Control-Request-Headers header whose value consists of many comma-separated tokens; the middleware allocates memory for each token without sufficient limits, rapidly exhausting resources on the server.
How to fix it
Upgrade all affected packages to the fixed versions: kuma-2.10 (Chainguard) 2.10.5-r2, kuma-cni-2.10 (Chainguard) 2.10.5-r2, kuma-cni-compat-2.10 (Chainguard) 2.10.5-r2, kuma-cp-2.10 (Chainguard) 2.10.5-r2, kuma-dp-2.10 (Chainguard) 2.10.5-r2, kuma-install-cni-2.10 (Chainguard) 2.10.5-r2, kumactl-2.10 (Chainguard) 2.10.5-r2. Apply patches or configuration limits on header parsing if upgrades are delayed.
How to confirm the fix worked
Verify deployed package versions match or exceed the listed fixed releases; replay a test preflight request containing an Access-Control-Request-Headers header with a large number of commas and confirm memory usage remains bounded.
Typical attack path
- Identify an endpoint protected by the vulnerable middleware
- Send a crafted CORS preflight OPTIONS request with an Access-Control-Request-Headers header containing thousands of comma-separated values
- Observe repeated requests that trigger repeated allocation spikes until memory pressure causes slowdown or crash
How to detect it
Inspect web server or application logs for CORS preflight requests that contain unusually long Access-Control-Request-Headers values; correlate with memory or CPU spikes on the middleware process.
- OPTIONS request with Access-Control-Request-Headers containing hundreds of commas
- Repeated preflight requests from the same source IP with expanding header length
What your security team should do
- Prioritize immediate upgrade of all listed Kuma packages to the 2.10.5-r2 fixed releases
- Implement request size or header-value limits at the load balancer or reverse proxy as a temporary control
- Monitor memory usage and request rates for the affected middleware services
The record
Middleware causes a prohibitive amount of heap allocations when processing malicious preflight requests that include a Access-Control-Request-Headers (ACRH) header whose value contains many commas. This behavior can be abused by attackers to produce undue load on the middleware/server as an attempt to cause a denial of service.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/rs/cors | 1.9.0 | 1.11.0 |
| Chainguard | argo-cd-2.10 | 0 | 2.10.13-r2 |
| Chainguard | argo-cd-2.10-compat | 0 | 2.10.13-r2 |
| Chainguard | argo-cd-2.10-repo-server | 0 | 2.10.13-r2 |
| Chainguard | argo-cd-2.11 | 0 | 2.11.4-r2 |
| Chainguard | argo-cd-2.11-compat | 0 | 2.11.4-r2 |
| Chainguard | argo-cd-2.11-repo-server | 0 | 2.11.4-r2 |
| Chainguard | argo-cd-fips-2.10 | 0 | 2.10.13-r2 |
| Chainguard | argo-cd-fips-2.10-compat | 0 | 2.10.13-r2 |
| Chainguard | argo-cd-fips-2.10-repo-server | 0 | 2.10.13-r2 |
| Chainguard | argo-cd-fips-2.11 | 0 | 2.11.4-r2 |
| Chainguard | argo-cd-fips-2.11-compat | 0 | 2.11.4-r2 |
| Chainguard | argo-cd-fips-2.11-repo-server | 0 | 2.11.4-r2 |
| Chainguard | cortex | 0 | 1.17.1-r4 |
| Chainguard | cortex-fips | 0 | 1.17.1-r6 |
| Chainguard | datadog-agent | 0 | 7.54.1-r3 |
| Chainguard | datadog-agent-core-integrations | 0 | 7.54.1-r3 |
| Chainguard | datadog-agent-core-integrations-fips | 0 | 7.64.1-r0 |
| Chainguard | datadog-agent-fakeintake | 0 | 7.54.1-r3 |
| Chainguard | datadog-agent-fakeintake-fips | 0 | 7.64.1-r0 |
| Chainguard | datadog-agent-fips | 0 | 7.64.1-r0 |
| Chainguard | datadog-agent-jmx | 0 | 7.54.1-r3 |
| Chainguard | datadog-agent-jmx-fips | 0 | 7.64.1-r0 |
| Chainguard | datadog-agent-oci-compat | 0 | 7.54.1-r3 |
| Chainguard | datadog-agent-oci-compat-fips | 0 | 7.64.1-r0 |
| Chainguard | datadog-agent-s6-overlay | 0 | 7.54.1-r3 |
| Chainguard | datadog-agent-s6-overlay-fips | 0 | 7.64.1-r0 |
| Chainguard | datadog-cluster-agent | 0 | 7.64.1-r0 |
| Chainguard | datadog-cluster-agent-fips | 0 | 7.64.1-r0 |
| Chainguard | datadog-cluster-agent-oci-compat | 0 | 7.64.1-r0 |
| Chainguard | datadog-cluster-agent-oci-compat-fips | 0 | 7.64.1-r0 |
| Chainguard | dogstatsd | 0 | 7.54.1-r3 |
| Chainguard | fulcio | 0 | 1.4.5-r7 |
| Chainguard | fulcio-fips | 0 | 1.4.5-r8 |
| Chainguard | go-ipfs-fips | 0 | 0.29.0-r2 |
| Chainguard | grafana-10.4 | 0 | 10.4.5-r2 |
| Chainguard | grafana-10.4-oci-compat | 0 | 10.4.5-r2 |
| Chainguard | grafana-11.0 | 0 | 11.0.1-r3 |
| Chainguard | grafana-11.1 | 0 | 11.1.0-r3 |
| Chainguard | grafana-11.1-oci-compat | 0 | 11.1.0-r3 |
| Chainguard | grafana-fips-10.4 | 0 | 10.4.5-r2 |
| Chainguard | grafana-fips-10.4-oci-compat | 0 | 10.4.5-r2 |
| Chainguard | grafana-fips-11.0 | 0 | 11.0.1-r2 |
| Chainguard | grafana-fips-11.0-oci-compat | 0 | 11.0.1-r2 |
| Chainguard | grafana-fips-11.1 | 0 | 11.1.0-r3 |
| Chainguard | grafana-fips-11.1-oci-compat | 0 | 11.1.0-r3 |
| Chainguard | grafana-mimir | 0 | 2.13.0-r1 |
| Chainguard | grafana-mimir-metaconvert | 0 | 2.13.0-r1 |
| Chainguard | grafana-mimir-mimirtool | 0 | 2.13.0-r1 |
| Chainguard | grafana-mimir-query-tee | 0 | 2.13.0-r1 |
| Chainguard | grafana-oci-compat | 0 | 11.0.1-r3 |
| Chainguard | ipfs | 0 | 0.29.0-r2 |
| Chainguard | mattermost-9 | 0 | 9.9.1-r2 |
| Chainguard | mattermost-9-compat | 0 | 9.9.1-r2 |
| Chainguard | prometheus-alertmanager | 0 | 0.27.0-r8 |
| Chainguard | prometheus-alertmanager-bitnami-compat | 0 | 0.27.0-r8 |
| Chainguard | prometheus-alertmanager-fips | 0 | 0.27.0-r10 |
| Chainguard | prometheus-alertmanager-fips-iamguarded-compat | 0 | 0.27.0-r10 |
| Chainguard | prometheus-alertmanager-iamguarded-compat | 0 | 0.27.0-r8 |
| Chainguard | rekor | 0 | 1.3.6-r8 |
| Chainguard | rekor-backfill-index | 0 | 1.3.6-r8 |
| Chainguard | rekor-backfill-redis | 0 | 1.3.6-r8 |
| Chainguard | rekor-cli | 0 | 1.3.6-r8 |
| Chainguard | rekor-fips | 0 | 1.3.6-r9 |
| Chainguard | rekor-fips-backfill-index | 0 | 1.3.6-r9 |
| Chainguard | rekor-fips-backfill-redis | 0 | 1.3.6-r9 |
| Chainguard | rekor-fips-cli | 0 | 1.3.6-r9 |
| Chainguard | rekor-fips-server | 0 | 1.3.6-r9 |
| Chainguard | rekor-server | 0 | 1.3.6-r8 |
| Chainguard | tempo-2.3 | 0 | 2.3.1-r6 |
| Chainguard | tempo-2.3-cli | 0 | 2.3.1-r6 |
| Chainguard | tempo-2.3-query | 0 | 2.3.1-r6 |
| Chainguard | tempo-2.3-vulture | 0 | 2.3.1-r6 |
| Chainguard | tempo-fips | 0 | 2.5.0-r6 |
| Chainguard | tempo-fips-cli | 0 | 2.5.0-r6 |
| Chainguard | tempo-fips-query | 0 | 2.5.0-r6 |
| Chainguard | tempo-fips-vulture | 0 | 2.5.0-r6 |
| Chainguard | timestamp-authority | 0 | 1.2.2-r12 |
| Chainguard | timestamp-authority-cli | 0 | 1.2.2-r12 |
| Chainguard | timestamp-authority-fips | 0 | 1.2.2-r12 |
| Chainguard | timestamp-authority-fips-cli | 0 | 1.2.2-r12 |
| Chainguard | timestamp-authority-fips-server | 0 | 1.2.2-r12 |
| Chainguard | timestamp-authority-server | 0 | 1.2.2-r12 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | golang-github-prometheus-alertmanager | 0 | 0.28.1-150100.4.28.2 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP7 | golang-github-prometheus-alertmanager | 0 | 0.28.1-150100.4.28.2 |
| SUSE:Manager Client Tools 15 | golang-github-prometheus-alertmanager | 0 | 0.28.1-150100.4.28.2 |
| SUSE:Manager Proxy LTS 4.3 | golang-github-prometheus-alertmanager | 0 | 0.28.1-150100.4.28.2 |
| SUSE:Multi Linux Manager Tools SLE-12 | Multi-Linux-ManagerTools-SLE-release | 0 | 12-120002.1.3.2 |
| SUSE:Multi Linux Manager Tools SLE-12 | golang-github-prometheus-alertmanager | 0 | 0.28.1-120002.4.3.2 |
| SUSE:Multi Linux Manager Tools SLE-12 | grafana | 0 | 11.5.7-120002.4.3.2 |
| SUSE:Multi Linux Manager Tools SLE-12 | mgr-push | 0 | 5.1.4-120002.3.3.3 |
| SUSE:Multi Linux Manager Tools SLE-12 | python-defusedxml | 0 | 0.6.0-120002.1.3.1 |
| SUSE:Multi Linux Manager Tools SLE-12 | rhnlib | 0 | 5.1.3-120002.3.3.1 |
| SUSE:Multi Linux Manager Tools SLE-12 | spacecmd | 0 | 5.1.11-120002.3.3.2 |
| SUSE:Multi Linux Manager Tools SLE-12 | spacewalk-client-tools | 0 | 5.1.7-120002.3.3.2 |
| SUSE:Multi Linux Manager Tools SLE-12 | supportutils-plugin-susemanager-client | 0 | 5.1.4-120002.3.3.1 |
| SUSE:Multi Linux Manager Tools SLE-15 | dracut-saltboot | 0 | 1.0.0-150002.3.3.1 |
| SUSE:Multi Linux Manager Tools SLE-15 | golang-github-prometheus-alertmanager | 0 | 0.28.1-150002.4.3.3 |
| SUSE:Multi Linux Manager Tools SLE-15 | grafana | 0 | 11.5.7-150002.4.3.3 |
| SUSE:Multi Linux Manager Tools SLE-15 | mgr-push | 0 | 5.1.4-150002.3.3.3 |
| SUSE:Multi Linux Manager Tools SLE-15 | python-defusedxml | 0 | 0.7.1-150002.1.3.2 |
| SUSE:Multi Linux Manager Tools SLE-15 | rhnlib | 0 | 5.1.3-150002.3.3.2 |
| SUSE:Multi Linux Manager Tools SLE-15 | spacecmd | 0 | 5.1.11-150002.3.3.2 |
| SUSE:Multi Linux Manager Tools SLE-15 | spacewalk-client-tools | 0 | 5.1.7-150002.3.3.3 |
| SUSE:Multi Linux Manager Tools SLE-15 | supportutils-plugin-susemanager-client | 0 | 5.1.4-150002.3.3.2 |
| SUSE:Multi Linux Manager Tools SLE-15 | uyuni-tools | 0 | 5.1.20-150002.3.3.3 |
| SUSE:Multi Linux Manager Tools SLE-Micro-5 | dracut-saltboot | 0 | 1.0.0-150002.3.3.1 |
| SUSE:Multi Linux Manager Tools SLE-Micro-5 | uyuni-tools | 0 | 5.1.20-150002.3.3.3 |
| Wolfi | argo-cd-2.10 | 0 | 2.10.13-r2 |
| Wolfi | argo-cd-2.10-compat | 0 | 2.10.13-r2 |
| Wolfi | argo-cd-2.10-repo-server | 0 | 2.10.13-r2 |
| Wolfi | argo-cd-2.11 | 0 | 2.11.4-r2 |
| Wolfi | argo-cd-2.11-compat | 0 | 2.11.4-r2 |
| Wolfi | argo-cd-2.11-repo-server | 0 | 2.11.4-r2 |
| Wolfi | cortex | 0 | 1.17.1-r4 |
| Wolfi | datadog-agent | 0 | 7.54.1-r3 |
| Wolfi | datadog-agent-core-integrations | 0 | 7.54.1-r3 |
| Wolfi | datadog-agent-fakeintake | 0 | 7.54.1-r3 |
| Wolfi | datadog-agent-jmx | 0 | 7.54.1-r3 |
| Wolfi | datadog-agent-oci-compat | 0 | 7.54.1-r3 |
| Wolfi | datadog-agent-s6-overlay | 0 | 7.54.1-r3 |
| Wolfi | datadog-cluster-agent | 0 | 7.64.1-r0 |
| Wolfi | datadog-cluster-agent-oci-compat | 0 | 7.64.1-r0 |
| Wolfi | dogstatsd | 0 | 7.54.1-r3 |
| Wolfi | fulcio | 0 | 1.4.5-r7 |
| Wolfi | grafana-10.4 | 0 | 10.4.5-r2 |
| Wolfi | grafana-11.0 | 0 | 11.0.1-r3 |
| Wolfi | grafana-11.1 | 0 | 11.1.0-r3 |
| Wolfi | grafana-mimir | 0 | 2.13.0-r1 |
| Wolfi | grafana-mimir-metaconvert | 0 | 2.13.0-r1 |
| Wolfi | grafana-mimir-mimirtool | 0 | 2.13.0-r1 |
| Wolfi | grafana-mimir-query-tee | 0 | 2.13.0-r1 |
| Wolfi | grafana-oci-compat | 0 | 11.0.1-r3 |
| Wolfi | ipfs | 0 | 0.29.0-r2 |
| Wolfi | mattermost-9 | 0 | 9.9.1-r2 |
| Wolfi | mattermost-9-compat | 0 | 9.9.1-r2 |
| Wolfi | prometheus-alertmanager | 0 | 0.27.0-r8 |
| Wolfi | prometheus-alertmanager-bitnami-compat | 0 | 0.27.0-r8 |
| Wolfi | prometheus-alertmanager-iamguarded-compat | 0 | 0.27.0-r8 |
| Wolfi | rekor | 0 | 1.3.6-r8 |
| Wolfi | rekor-backfill-index | 0 | 1.3.6-r8 |
| Wolfi | rekor-backfill-redis | 0 | 1.3.6-r8 |
| Wolfi | rekor-cli | 0 | 1.3.6-r8 |
| Wolfi | rekor-server | 0 | 1.3.6-r8 |
| Wolfi | timestamp-authority | 0 | 1.2.2-r12 |
| Wolfi | timestamp-authority-cli | 0 | 1.2.2-r12 |
| Wolfi | timestamp-authority-server | 0 | 1.2.2-r12 |
| go | github.com/rs/cors | 1.9.0 | 1.11.0 |
| openSUSE:Leap 15.6 | golang-github-prometheus-alertmanager | 0 | 0.28.1-150100.4.28.2 |
| openSUSE:Leap 16.0 | golang-github-prometheus-alertmanager | 0 | 0.28.1-bp160.1.1 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250807T150727-1.1 |
Related vulnerabilities
- CVE-2025-22872 The tokenizer incorrectly interprets tags with unquoted attribute values that end with a… Also affects argo-cd-2.10
- CVE-2025-30204 golang-jwt is a Go implementation of JSON Web Tokens. Also affects argo-cd-2.10
- CVE-2025-1767 This CVE only affects Kubernetes clusters that utilize the in-tree gitRepo volume to… Also affects argo-cd-2.10
- CVE-2024-9042 This CVE affects only Windows worker nodes. Also affects argo-cd-2.10
- CVE-2025-22870 Matching of hosts against proxy patterns can improperly treat an IPv6 zone ID as a… Also affects argo-cd-2.10
- CVE-2025-22868 An attacker can pass a malicious malformed token which causes unexpected memory to be… Also affects argo-cd-2.10
- CVE-2025-22869 SSH servers which implement file transfer protocols are vulnerable to a denial of service… Also affects argo-cd-2.10
- CVE-2025-27144 Go JOSE provides an implementation of the Javascript Object Signing and Encryption set of… Also affects argo-cd-2.10