CVE-2026-32287
High · 7.5CVSS
7.5
EPSS
0.7%
Published
Mar 26, 2026
CISA due date
—
Cloudanix analysis
A specially crafted search or selector value can make affected applications waste all their processing power and become 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 flaw is a denial-of-service condition in antchfx xpath where certain top-level Boolean XPath expressions that evaluate to true, such as `1=1` or `true()`, can cause `logicalQuery.Select` to enter an infinite loop. If an application accepts untrusted XPath selectors and evaluates them with the vulnerable library, a remote unauthenticated attacker may be able to drive a worker thread or process to 100% CPU usage. Confidentiality and integrity are not directly affected, but service availability can be severely degraded or lost depending on concurrency, timeout handling, and process isolation.
Why it matters to the business
Applications that expose XPath-based search, filtering, scraping, XML/HTML parsing, rules, or query functionality may become slow or unavailable if attackers repeatedly submit crafted Boolean XPath expressions. Because no fixed version is currently listed, organizations using this library may need compensating controls such as input validation, execution timeouts, rate limiting, and dependency monitoring until a patched release is available. The vulnerability is not currently in CISA KEV, has low EPSS, and has no known exploit maturity reported, but it is simple to trigger where user-controlled XPath input is exposed.
How an attack unfolds
An attacker first identifies an application endpoint or workflow that accepts XPath selectors, filters, scraping rules, XML/HTML extraction expressions, or similar query input. They then submit a top-level Boolean expression that evaluates to true, such as `1=1` or `true()`. When the application passes this expression to the vulnerable antchfx xpath implementation, `logicalQuery.Select` can enter an infinite loop. The affected process consumes CPU continuously, potentially blocking request handling or exhausting available worker capacity. By sending repeated requests or maintaining multiple concurrent submissions, the attacker can degrade performance or cause an outage without needing authentication, user interaction, or access to sensitive data.
How to fix it
Upgrade antchfx xpath to a patched version as soon as one is released by the maintainer. No fixed version is currently provided in the input, so teams should monitor upstream advisories, package releases, and dependency scanners for the first corrected release. Until a patch is available, avoid evaluating untrusted XPath expressions with this library. Implement strict allow-list validation for permitted selectors, reject top-level Boolean expressions, and block expressions such as `true()`, `false()`, `1=1`, and equivalent always-true predicates where they are not required. Add execution timeouts, request deadlines, context cancellation, worker isolation, CPU quotas, rate limits, and circuit breakers around XPath evaluation. If feasible, replace vulnerable evaluation paths with safer, bounded parsing logic or a maintained library that is not affected.
How to confirm the fix worked
Confirm whether the application depends on antchfx xpath through source review, dependency manifests, software composition analysis, and compiled artifact inspection. Identify any endpoints, jobs, APIs, or configuration fields that pass user-controlled or externally supplied XPath selectors into the library. In a controlled non-production environment, test representative inputs such as `true()` and `1=1` and verify that they are rejected, safely handled, or terminated by timeouts without sustained CPU consumption. After mitigation, verify that malformed or always-true XPath expressions return errors quickly, request deadlines are enforced, and repeated submissions cannot drive the process to sustained high CPU. Continue monitoring dependency scanners for an upstream fixed version and validate that the deployed build contains it once available.
Typical attack path
- Find a public or internal application feature that accepts XPath expressions or selector-like input.
- Test whether Boolean XPath expressions such as `1=1` or `true()` are accepted and processed.
- Submit a crafted top-level Boolean XPath expression that evaluates to true.
- Trigger the vulnerable `logicalQuery.Select` code path in antchfx xpath.
- Cause one or more application workers to enter an infinite loop and consume CPU.
- Repeat or parallelize requests to exhaust service capacity and produce a denial of service.
How to detect it
To determine whether this was already exploited, review application access logs, API gateway logs, WAF logs, reverse proxy logs, and application error/debug logs for requests containing suspicious XPath-like Boolean expressions submitted to search, filter, selector, XML, HTML, scraping, rules, or query parameters. Correlate those requests with host and container telemetry showing sudden or sustained 100% CPU usage, request latency spikes, thread saturation, autoscaling events, health-check failures, process restarts, or timeout storms. Look for repeated low-volume requests that individually cause long execution times, as well as bursts of concurrent requests using the same selector payload. If request bodies are logged, search JSON, form data, and XML payloads for `true()`, `1=1`, and similar always-true top-level XPath expressions. For deeper investigation, capture stack traces or runtime profiles during high CPU events and look for execution in antchfx xpath selector evaluation, especially `logicalQuery.Select`. Because no public exploitation or KEV listing is reported, absence of known actor-specific indicators should not be treated as proof of safety; focus detection on payload patterns and CPU-correlated behavior.
- true()
- 1=1
- selector=true()
- selector=1=1
- xpath=true()
- xpath=1=1
- query=true()
- query=1=1
- filter=true()
- filter=1=1
- logicalQuery.Select
- antchfx/xpath
What your security team should do
- Inventory all applications and services that use antchfx xpath, including transitive and vendored dependencies.
- Prioritize review of internet-facing or multi-tenant features that accept XPath, selector, XML, HTML parsing, scraping, or filtering input from users or external systems.
- Apply an upstream patched version immediately when available; until then, deploy compensating controls for validation, timeouts, rate limiting, and CPU isolation.
- Block or reject top-level Boolean XPath expressions and known always-true patterns unless there is a clear business requirement.
- Add operational monitoring for sustained high CPU, request latency spikes, worker restarts, and repeated selector parsing errors.
- Create SIEM detections for repeated submission of suspicious XPath expressions such as `true()` and `1=1` to query, filter, selector, scraping, or XML-processing endpoints.
- Perform controlled validation testing after mitigation to ensure crafted expressions cannot cause unbounded CPU consumption.
- Track upstream advisory updates because exploit maturity is currently reported as none, but the trigger condition is simple and may become weaponized if public proof-of-concept examples appear.
The record
Boolean XPath expressions that evaluate to true can cause an infinite loop in logicalQuery.Select, leading to 100% CPU usage. This can be triggered by top-level selectors such as "1=1" or "true()".
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | amazon-cloudwatch-agent | 0 | 1.300066.0-r1 |
| Chainguard | amazon-cloudwatch-agent-fips | 0 | 1.300066.0-r1 |
| Chainguard | aws-otel-collector | 0 | 0.47.0-r10 |
| Chainguard | aws-otel-collector-fips | 0 | 0.47.0-r6 |
| Chainguard | crossplane-provider-aws-acm | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-acm-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-backup | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-backup-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-cognitoidentity | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-cognitoidentity-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-cognitoidp | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-cognitoidp-fips | 0 | 2.5.0-r2 |
| Chainguard | crossplane-provider-aws-ecr | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-ecr-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-ecs | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-ecs-fips | 0 | 2.4.0-r2 |
| Chainguard | crossplane-provider-aws-efs | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-efs-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-elbv2 | 0 | 2.5.0-r1 |
| Chainguard | crossplane-provider-aws-elbv2-fips | 0 | 2.5.0-r1 |
| Chainguard | crossplane-provider-aws-rolesanywhere | 0 | 2.5.0-r2 |
| Chainguard | crossplane-provider-aws-rolesanywhere-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-servicediscovery | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-servicediscovery-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-ssm | 0 | 2.5.0-r2 |
| Chainguard | crossplane-provider-aws-ssm-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-aws-wafv2 | 0 | 2.5.0-r2 |
| Chainguard | crossplane-provider-aws-wafv2-fips | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-azure-authorization | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-azure-managedidentity | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-azure-sql | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-azure-storage | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-family-azure | 0 | 2.5.0-r3 |
| Chainguard | crossplane-provider-family-gcp | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-family-gcp-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-gcp-cloudplatform | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-gcp-cloudplatform-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-gcp-compute | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-gcp-compute-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-gcp-container | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-gcp-container-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-gcp-dns | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-gcp-dns-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-gcp-kms | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-gcp-kms-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-gcp-pubsub | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-gcp-pubsub-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-gcp-storage | 0 | 2.5.0-r5 |
| Chainguard | crossplane-provider-gcp-storage-fips | 0 | 2.5.0-r6 |
| Chainguard | crossplane-provider-keycloak | 0 | 2.17.0-r3 |
| Chainguard | crossplane-provider-keycloak-fips | 0 | 2.17.0-r2 |
| Chainguard | elastic-agent-8.17 | 0 | 8.17.10-r11 |
| Chainguard | elastic-agent-8.19 | 0 | 8.19.13-r2 |
| Chainguard | elastic-agent-9.0 | 0 | 9.0.8-r10 |
| Chainguard | elastic-agent-9.1 | 0 | 9.1.10-r9 |
| Chainguard | elastic-agent-9.2 | 0 | 9.2.7-r2 |
| Chainguard | elastic-agent-fips-8.17 | 0 | 8.17.10-r10 |
| Chainguard | elastic-agent-fips-8.19 | 0 | 8.19.13-r1 |
| Chainguard | elastic-agent-fips-9.0 | 0 | 9.0.8-r11 |
| Chainguard | elastic-agent-fips-9.1 | 0 | 9.1.10-r9 |
| Chainguard | elastic-agent-fips-9.2 | 0 | 9.2.7-r1 |
| Chainguard | elastic-otel-collector-9.3 | 0 | 9.3.2-r2 |
| Chainguard | elastic-otel-collector-fips-9.3 | 0 | 9.3.2-r2 |
| Chainguard | grafana-alloy | 0 | 1.14.2-r1 |
| Chainguard | grafana-alloy-fips | 0 | 1.15.0-r0 |
| Chainguard | nrdot-collector-k8s | 0 | 1.12.0-r0 |
| Chainguard | nrdot-collector-k8s-fips | 0 | 1.12.0-r0 |
| Chainguard | nuclei | 0 | 3.7.1-r4 |
| Chainguard | telegraf-1.37 | 0 | 1.37.3-r7 |
| Chainguard | tempo-2.10 | 0 | 2.10.3-r7 |
| Chainguard | tempo-2.10-cli | 0 | 2.10.3-r7 |
| Chainguard | tempo-2.10-vulture | 0 | 2.10.3-r7 |
| Chainguard | tempo-2.8-cli | 0 | 0 |
| Chainguard | tempo-2.9 | 0 | 2.9.1-r4 |
| Chainguard | tempo-2.9-cli | 0 | 0 |
| Chainguard | tempo-fips-2.10 | 0 | 2.10.3-r3 |
| Chainguard | tempo-fips-2.10-cli | 0 | 0 |
| Chainguard | tempo-fips-2.10-vulture | 0 | 0 |
| Chainguard | tempo-fips-2.8 | 0 | 2.8.3-r3 |
| Chainguard | tempo-fips-2.8-cli | 0 | 0 |
| Chainguard | tempo-fips-2.9 | 0 | 2.9.1-r4 |
| Chainguard | tempo-fips-2.9-cli | 0 | 2.9.1-r4 |
| Chainguard | wavefront-collector-for-kubernetes-1.12 | 0 | 0 |
| Chainguard | wavefront-collector-for-kubernetes-1.13 | 0 | 0 |
| Wolfi | amazon-cloudwatch-agent | 0 | 1.300066.0-r1 |
| Wolfi | aws-otel-collector | 0 | 0.47.0-r10 |
| Wolfi | crossplane-provider-azure-authorization | 0 | 2.5.0-r3 |
| Wolfi | crossplane-provider-azure-managedidentity | 0 | 2.5.0-r3 |
| Wolfi | crossplane-provider-azure-sql | 0 | 2.5.0-r3 |
| Wolfi | crossplane-provider-azure-storage | 0 | 2.5.0-r3 |
| Wolfi | crossplane-provider-family-azure | 0 | 2.5.0-r3 |
| Wolfi | crossplane-provider-gcp-pubsub | 0 | 2.5.0-r5 |
| Wolfi | crossplane-provider-gcp-storage | 0 | 2.5.0-r5 |
| Wolfi | crossplane-provider-keycloak | 0 | 2.17.0-r3 |
| Wolfi | grafana-alloy | 0 | 1.14.2-r1 |
| Wolfi | nuclei | 0 | 3.7.1-r4 |
| Wolfi | telegraf-1.37 | 0 | 1.37.3-r7 |
| Wolfi | tempo-2.10 | 0 | 2.10.3-r7 |
| Wolfi | tempo-2.10-cli | 0 | 2.10.3-r7 |
| Wolfi | tempo-2.10-vulture | 0 | 2.10.3-r7 |
| openSUSE:Leap 15.6 | govulncheck-vulndb | 0 | 0.0.20260326T203309-150000.1.155.2 |
Related vulnerabilities
- CVE-2026-33186 gRPC-Go is the Go language implementation of gRPC. Also affects amazon-cloudwatch-agent
- CVE-2026-27142 Actions which insert URLs into the content attribute of HTML meta tags are not escaped. Also affects amazon-cloudwatch-agent
- CVE-2026-27139 On Unix platforms, when listing the contents of a directory using File.ReadDir or… Also affects amazon-cloudwatch-agent
- CVE-2026-25679 url.Parse insufficiently validated the host/authority component and accepted some invalid… Also affects amazon-cloudwatch-agent
- CVE-2026-24051 OpenTelemetry-Go is the Go implementation of OpenTelemetry. Also affects amazon-cloudwatch-agent
- CVE-2025-68156 Expr is an expression language and expression evaluation for Go. Also affects amazon-cloudwatch-agent
- CVE-2025-47914 golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of… Also affects amazon-cloudwatch-agent
- CVE-2025-58181 golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption Also affects amazon-cloudwatch-agent