CVE-2025-57352
Medium · 5.3CVSS
5.3
EPSS
0.4%
Published
Sep 24, 2025
CISA due date
—
Cloudanix analysis
A flaw in how affected software handles unusual input can let an attacker disrupt the service or, in some cases, make it run unintended actions.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- No Fix Yet
- Effort
- High
- Patch risk
- High
What it actually does
The flaw is an improper input validation issue in namespace attribute removal handling, specifically involving removeAttributeNS processing of attacker-controlled names such as __proto__. If a vulnerable JavaScript DOM-like implementation processes malicious input, an attacker may be able to modify Object prototype behavior, causing prototype pollution. The most likely technical outcomes are application instability, unexpected object behavior, and denial of service; arbitrary code execution may be possible only when the affected application later uses polluted prototype properties in dangerous execution, templating, deserialization, command, or module-loading paths. The provided affected package data also indicates Mageia 4 cups-filters exposure with a fixed package available in version 1.0.53-1.mga4.
Why it matters to the business
Successful exploitation can disrupt services that rely on affected parsing or filtering components and may create a path to broader compromise in applications that combine the vulnerable component with unsafe JavaScript execution patterns. The current exploitation signal is low: EPSS is 0.00329, it is not listed in CISA KEV, no ransomware use is indicated, and exploit maturity is reported as none. However, because the issue has been public for 319 days, organizations should treat lingering vulnerable dependencies or unpatched Mageia packages as avoidable exposure, especially where affected components process untrusted input from users, documents, print workflows, web requests, or automated ingestion pipelines.
How an attack unfolds
An attacker first identifies software that processes attacker-supplied DOM-like structures, document data, print/filter inputs, or serialized JavaScript object content using the vulnerable component. The attacker then submits input that causes removeAttributeNS to operate on a namespace or attribute name involving __proto__ or a related prototype-chain property. Because the component does not adequately block prototype-related keys, the operation can alter inherited JavaScript object behavior. The polluted prototype can then cause application logic to mis-handle security checks, crash, consume excessive resources, or propagate malicious values into later processing. In higher-impact cases, if downstream code passes polluted values into unsafe sinks such as command execution, dynamic evaluation, template rendering, or module loading, the attacker may be able to escalate from prototype pollution to code execution. No named threat actors or active exploitation campaigns were provided, and this vulnerability is not currently in KEV.
How to fix it
Upgrade affected packaged software to a fixed version where available. For Mageia 4 cups-filters, update to 1.0.53-1.mga4 or later from trusted repositories. For applications directly or indirectly using the vulnerable JavaScript package, inventory all dependency manifests and lockfiles, then upgrade to a non-vulnerable release if one is available from the maintainer or distribution vendor. If the package remains unaddressed in the latest upstream version, replace it with a maintained alternative, apply a vetted vendor/distribution backport, or isolate the functionality from untrusted input. As compensating controls, reject or sanitize prototype-chain keys such as __proto__, prototype, and constructor in all parsed attribute names and namespaces; avoid recursive merges of untrusted objects; create dictionaries with Object.create(null) where appropriate; freeze critical prototypes where compatible; and prevent polluted values from reaching eval, Function, child_process, template engines, deserializers, or dynamic require/import logic.
How to confirm the fix worked
Confirm remediation by checking installed package versions and dependency lockfiles. On Mageia systems, verify that cups-filters is version 1.0.53-1.mga4 or later using the system package manager. For JavaScript applications, inspect package.json, package-lock.json, npm-shrinkwrap.json, yarn.lock, pnpm-lock.yaml, and software composition analysis output for min-document or bundled copies. Run a controlled regression test that attempts to process input containing __proto__, constructor, and prototype as namespace or attribute names and verify that Object.prototype is not modified, application behavior remains stable, and security controls are not bypassed. Validate that WAF, API gateway, and application-layer input validation rules reject prototype-pollution payloads where feasible, and confirm that build pipelines fail on reintroduction of vulnerable dependency versions.
Typical attack path
- Discover an internet-facing or reachable service, ingestion workflow, package, or system component that uses the vulnerable functionality.
- Confirm that the target processes attacker-controlled document, DOM-like, namespace, XML/HTML, print, or serialized object input.
- Submit crafted input containing prototype-chain property names such as __proto__ in an attribute namespace removal path.
- Trigger removeAttributeNS or equivalent processing so the vulnerable package mutates object prototypes instead of only removing the intended attribute.
- Observe application errors, abnormal responses, service crashes, or changed application behavior that indicates prototype pollution.
- If possible, chain the polluted property into downstream application logic such as authorization decisions, object merges, template rendering, dynamic evaluation, or command execution.
- Maintain access or repeat the request to cause denial of service, data exposure, or code execution depending on the application’s unsafe sinks.
How to detect it
Look for evidence of attempted prototype pollution and follow-on impact. Review web server, API gateway, WAF, application, document-processing, print-processing, and Node.js runtime logs for requests or payloads containing __proto__, constructor.prototype, prototype, or removeAttributeNS, especially in XML, HTML, JSON, form, query-string, multipart, or document-upload fields. Correlate these attempts with application exceptions such as TypeError, RangeError, maximum call stack errors, process crashes, restarts, elevated memory/CPU usage, or unexpected response changes. On systems that run affected JavaScript applications, inspect EDR and process telemetry for unexpected child processes spawned by Node.js or application runtimes after suspicious input was processed, including shells, curl/wget, PowerShell, Python, Perl, or other interpreters. For Mageia cups-filters deployments, review package-manager history to determine whether a vulnerable package was present during the exposure window, and inspect print/filter service logs for malformed document submissions around crashes or anomalous processing. Since there are no provided campaign-specific indicators, detections should focus on exploit primitives and behavioral evidence rather than fixed attacker infrastructure.
- __proto__
- constructor.prototype
- prototype
- removeAttributeNS
- node_modules/min-document
- "min-document"
- TypeError
- RangeError
- Maximum call stack size exceeded
- Object.prototype
- child_process
- /bin/sh -c
- cmd.exe /c
- powershell.exe
What your security team should do
- Prioritize patching Mageia 4 cups-filters to 1.0.53-1.mga4 or later wherever the affected package is installed.
- Run software composition analysis across application repositories and built artifacts to identify direct, transitive, vendored, or bundled use of the vulnerable JavaScript component.
- If no safe upstream package version is available, replace the component, apply a distribution-maintained patch, or disable exposure to untrusted input until migration is complete.
- Add defensive input validation for __proto__, prototype, and constructor in object keys, namespace names, and attribute names across document-processing and API-ingestion paths.
- Harden JavaScript runtimes by preventing polluted object properties from reaching dynamic execution, shell command, template rendering, deserialization, and module-loading sinks.
- Search historical logs for prototype-pollution payloads and correlate with application errors, crashes, unusual child processes, or unexpected outbound connections.
- Add CI/CD dependency checks to prevent vulnerable versions from being introduced through transitive dependency updates.
- Because exploitation is not currently known to be widespread, treat this as a medium-priority remediation unless the affected component processes unauthenticated internet-supplied input or feeds unsafe execution paths, in which case escalate priority.
The record
A vulnerability exists in the 'min-document' package prior to version 2.19.0, stemming from improper handling of namespace operations in the removeAttributeNS method. By processing malicious input involving the __proto__ property, an attacker can manipulate the prototype chain of JavaScript objects, leading to denial of service or arbitrary code execution. This issue arises from insufficient validation of attribute namespace removal operations, allowing unintended modification of critical object prototypes. The vulnerability remains unaddressed in the latest available version.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | min-document | 0 | 2.19.1 |
| Chainguard | foxx-cli | 0 | 2.1.1-r3 |
| Chainguard | grafana-image-renderer | 0 | 4.1.5-r0 |
| Chainguard | opensearch-dashboards-2 | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-alerting-dashboards-plugin | 0 | 2.19.4-r15 |
| Chainguard | opensearch-dashboards-2-anomaly-detection-dashboards-plugin | 0 | 2.19.4-r0 |
| Chainguard | opensearch-dashboards-2-config | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-dashboards-maps | 0 | 2.19.4-r0 |
| Chainguard | opensearch-dashboards-2-dashboards-notifications | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-dashboards-observability | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-dashboards-query-workbench | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-dashboards-reporting | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-dashboards-search-relevance | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-dashboards-visualizations | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-fips | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-alerting-dashboards-plugin | 0 | 2.19.4-r11 |
| Chainguard | opensearch-dashboards-2-fips-anomaly-detection-dashboards-plugin | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-config | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-dashboards-maps | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-dashboards-notifications | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-dashboards-observability | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-dashboards-query-workbench | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-dashboards-reporting | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-dashboards-search-relevance | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-dashboards-visualizations | 0 | 2.19.4-r0 |
| Chainguard | opensearch-dashboards-2-fips-index-management-dashboards-plugin | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-ml-commons-dashboards | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-security-analytics-dashboards-plugin | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-fips-security-dashboards-plugin | 0 | 2.19.2-r4 |
| Chainguard | opensearch-dashboards-2-index-management-dashboards-plugin | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-ml-commons-dashboards | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-security-analytics-dashboards-plugin | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-2-security-dashboards-plugin | 0 | 2.19.3-r0 |
| Chainguard | opensearch-dashboards-3 | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-alerting-dashboards-plugin | 0 | 3.5.0-r0 |
| Chainguard | opensearch-dashboards-3-anomaly-detection-dashboards-plugin | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-config | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-dashboards-maps | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-dashboards-notifications | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-dashboards-observability | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-dashboards-query-workbench | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-dashboards-reporting | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-dashboards-search-relevance | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-alerting-dashboards-plugin | 0 | 3.5.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-anomaly-detection-dashboards-plugin | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-config | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-maps | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-notifications | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-observability | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-query-workbench | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-reporting | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-search-relevance | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-index-management-dashboards-plugin | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-ml-commons-dashboards | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-security-analytics-dashboards-plugin | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-fips-security-dashboards-plugin | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-index-management-dashboards-plugin | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-ml-commons-dashboards | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-security-analytics-dashboards-plugin | 0 | 3.2.0-r0 |
| Chainguard | opensearch-dashboards-3-security-dashboards-plugin | 0 | 3.2.0-r0 |
| Wolfi | grafana-image-renderer | 0 | 4.1.5-r0 |
| Wolfi | opensearch-dashboards-2 | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-alerting-dashboards-plugin | 0 | 2.19.4-r15 |
| Wolfi | opensearch-dashboards-2-anomaly-detection-dashboards-plugin | 0 | 2.19.4-r0 |
| Wolfi | opensearch-dashboards-2-config | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-dashboards-maps | 0 | 2.19.4-r0 |
| Wolfi | opensearch-dashboards-2-dashboards-notifications | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-dashboards-observability | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-dashboards-query-workbench | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-dashboards-reporting | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-dashboards-search-relevance | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-dashboards-visualizations | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-index-management-dashboards-plugin | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-ml-commons-dashboards | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-security-analytics-dashboards-plugin | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-2-security-dashboards-plugin | 0 | 2.19.3-r0 |
| Wolfi | opensearch-dashboards-3 | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-alerting-dashboards-plugin | 0 | 3.5.0-r0 |
| Wolfi | opensearch-dashboards-3-anomaly-detection-dashboards-plugin | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-config | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-dashboards-maps | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-dashboards-notifications | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-dashboards-observability | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-dashboards-query-workbench | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-dashboards-reporting | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-dashboards-search-relevance | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-index-management-dashboards-plugin | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-ml-commons-dashboards | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-security-analytics-dashboards-plugin | 0 | 3.2.0-r0 |
| Wolfi | opensearch-dashboards-3-security-dashboards-plugin | 0 | 3.2.0-r0 |
Related vulnerabilities
- GHSA-gmq8-994r-jv83 yauzl contains an off-by-one error Also affects foxx-cli
- CVE-2026-31988 yauzl (aka Yet Another Unzip Library) version 3.2.0 for Node.js contains an off-by-one… Also affects foxx-cli
- CVE-2026-26996 minimatch is a minimal matching utility for converting glob expressions into JavaScript… Also affects foxx-cli
- GHSA-3ppc-4f35-3m26 minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern Also affects foxx-cli
- GHSA-xxjr-mmjv-4gpg Lodash has Prototype Pollution Vulnerability in `_.unset` and `_.omit` functions Also affects foxx-cli
- CVE-2025-13465 Lodash versions 4.0.0 through 4.17.22 are vulnerable to prototype pollution in the… Also affects foxx-cli
- CVE-2025-54798 tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter Also affects foxx-cli
- CVE-2025-5889 A vulnerability was found in juliangruber brace-expansion up to 1.1.11/2.0.1/3.0.0/4.0.0. Also affects foxx-cli