CVE-2025-9287
NoneCVSS
—
EPSS
0.5%
Published
Aug 20, 2025
CISA due date
—
Cloudanix analysis
Some software components may mishandle specially crafted input, which could let an attacker interfere with how affected applications process data.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2025-9287 is an improper input validation flaw in cipher-base versions through 1.0.4. Software that passes attacker-controlled or insufficiently validated data into cipher-base may allow crafted input to alter how data is processed by cryptographic stream operations. The practical impact depends on how the consuming application uses the library, but the primary risk is input/data manipulation that can affect integrity of processed data and, in some implementations, may contribute to authentication, encryption, decoding, or application logic failures.
Why it matters to the business
Applications or container images that include vulnerable cipher-base code may incorrectly process manipulated input, which can undermine trust in data handled by affected services. Business consequences may include corrupted transactions, unreliable cryptographic processing, failed application workflows, or security control bypasses in applications that depend on the affected library for sensitive processing. Current public exploitation pressure appears low: EPSS is 0.00504, it is not listed in CISA KEV, and no public exploit maturity is reported; however, it has been public for 355 days, so routine remediation should not be deferred indefinitely, especially for internet-facing or high-integrity workloads.
How an attack unfolds
An attacker first identifies an application endpoint, API, job processor, or file-import path that accepts external input and ultimately passes that input into code using cipher-base. The attacker then crafts malformed or edge-case input designed to exploit the library's insufficient validation. If the application does not independently validate or constrain that input, cipher-base may process it in an unintended way, allowing the attacker to manipulate the resulting data or application behavior. Successful exploitation is highly context-dependent: it requires a reachable code path that uses the vulnerable library and relies on its output for security-sensitive or business-sensitive decisions.
How to fix it
Upgrade affected packages to fixed versions. For Chainguard packages, update to 0.53.0-r0 or later for: openjdk-11-openj9, openjdk-11-openj9-dbg, openjdk-11-openj9-default-jdk, openjdk-11-openj9-default-jvm, openjdk-11-openj9-default-policy, openjdk-11-openj9-doc, openjdk-11-openj9-jmods, and openjdk-11-openj9-jre. Rebuild and redeploy container images or artifacts that include vulnerable versions. Where cipher-base is present as a direct or transitive JavaScript dependency, update dependency lockfiles and regenerate SBOMs so cipher-base versions through 1.0.4 are no longer included. As a compensating control, validate and constrain all external input before it reaches cryptographic, decoding, stream, or file-processing routines; reject malformed, oversized, ambiguous, or unexpected data formats.
How to confirm the fix worked
Confirm remediation by scanning deployed images, packages, and SBOMs for cipher-base versions through 1.0.4 and for affected Chainguard OpenJDK OpenJ9 packages below 0.53.0-r0. Validate that rebuilt images actually contain the fixed package versions, not only updated manifests. For JavaScript dependency trees, run package inventory commands such as npm ls cipher-base, yarn why cipher-base, or pnpm why cipher-base where applicable. For Chainguard-based images, verify installed package versions with the image/package manager and confirm the fixed release 0.53.0-r0 or later. Regression-test application workflows that process encrypted, encoded, streamed, uploaded, or externally supplied data to ensure malformed input is rejected before reaching vulnerable processing logic.
Typical attack path
- Identify a service, API, or processing workflow that accepts attacker-controlled input.
- Determine whether the application or image includes cipher-base version 1.0.4 or earlier, directly or transitively.
- Find a reachable code path where external input is passed into cryptographic or stream-processing logic backed by cipher-base.
- Send crafted malformed input intended to trigger improper validation behavior.
- Observe whether the application produces altered output, inconsistent processing, errors, or bypassable logic.
- Use the manipulated behavior to corrupt data, interfere with workflows, or influence downstream security or business decisions.
How to detect it
There are no widely reported public exploitation artifacts, named threat actors, KEV activity, or ransomware use associated with this vulnerability in the supplied intelligence. To assess whether exploitation may already have occurred, focus on applications that both include cipher-base through 1.0.4 and expose input-processing paths to untrusted users. Review application, API gateway, web server, WAF, job processor, and container logs for repeated malformed-input submissions, unusual crypto/stream/decoder exceptions, integrity-check failures, unexpected data transformation results, or spikes in 4xx/5xx errors around endpoints that process uploads, encoded payloads, encrypted content, tokens, or streamed data. Compare suspicious requests against application behavior before and after patching. For forensic review, preserve relevant request bodies where legally and operationally permitted, dependency inventories, container image digests, and application error traces from the exposure window.
What your security team should do
- Inventory container images, build artifacts, and SBOMs for cipher-base versions through 1.0.4 and the listed Chainguard OpenJDK OpenJ9 packages below 0.53.0-r0.
- Prioritize remediation for internet-facing services, APIs, file processors, CI/CD utilities, or workloads that process untrusted input.
- Upgrade affected Chainguard packages to 0.53.0-r0 or later and rebuild dependent images from clean base images.
- Update direct and transitive JavaScript dependencies where cipher-base is present, then refresh lockfiles and SBOMs.
- Add or strengthen input validation before cryptographic, stream, upload, decode, or import processing paths.
- Monitor for unusual malformed-input errors, repeated parsing/crypto failures, or integrity mismatches in applications that used vulnerable versions.
- Because the vulnerability is not currently KEV-listed and has low EPSS, handle through normal vulnerability management unless the affected code path is externally reachable or security-sensitive.
The record
Improper Input Validation vulnerability in cipher-base allows Input Data Manipulation.This issue affects cipher-base: through 1.0.4.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | cipher-base | 0 | 1.0.5 |
| Chainguard | opensearch-dashboards-3 | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-alerting-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-anomaly-detection-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-config | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-dashboards-maps | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-dashboards-notifications | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-dashboards-observability | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-dashboards-query-workbench | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-dashboards-reporting | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-dashboards-search-relevance | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-alerting-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-anomaly-detection-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-config | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-maps | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-notifications | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-observability | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-query-workbench | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-reporting | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-dashboards-search-relevance | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-index-management-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-ml-commons-dashboards | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-security-analytics-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-fips-security-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-index-management-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-ml-commons-dashboards | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-security-analytics-dashboards-plugin | 0 | 3.1.0-r4 |
| Chainguard | opensearch-dashboards-3-security-dashboards-plugin | 0 | 3.1.0-r4 |
| Debian:11 | node-cipher-base | 0 | No fix |
| Debian:12 | node-cipher-base | 0 | No fix |
| Debian:13 | node-cipher-base | 0 | No fix |
| Debian:14 | node-cipher-base | 0 | No fix |
| Wolfi | opensearch-dashboards-3 | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-alerting-dashboards-plugin | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-anomaly-detection-dashboards-plugin | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-config | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-dashboards-maps | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-dashboards-notifications | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-dashboards-observability | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-dashboards-query-workbench | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-dashboards-reporting | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-dashboards-search-relevance | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-index-management-dashboards-plugin | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-ml-commons-dashboards | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-security-analytics-dashboards-plugin | 0 | 3.1.0-r4 |
| Wolfi | opensearch-dashboards-3-security-dashboards-plugin | 0 | 3.1.0-r4 |
| openSUSE:Tumbleweed | python-bqplot | 0 | 0.12.45-12.1 |
Related vulnerabilities
- GHSA-r5fr-rjxr-66jc lodash vulnerable to Code Injection via `_.template` imports key names Also affects opensearch-dashboards-3
- GHSA-f23m-r3pf-42rh lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit` Also affects opensearch-dashboards-3
- CVE-2026-4800 Impact: The fix for CVE-2021-23337 (https://github.com/advisories/GHSA-35jh-r3h4-6jhm)… Also affects opensearch-dashboards-3
- CVE-2026-2950 Impact: Lodash versions 4.17.23 and earlier are vulnerable to prototype pollution in the… Also affects opensearch-dashboards-3
- GHSA-7rx3-28cr-v5wh Handlebars.js has a Prototype Method Access Control Gap via Missing __lookupSetter__… Also affects opensearch-dashboards-3
- GHSA-442j-39wm-28r2 Handlebars.js has a Property Access Validation Bypass in container.lookup Also affects opensearch-dashboards-3
- CVE-2026-33940 Handlebars provides the power necessary to let users build semantic templates. Also affects opensearch-dashboards-3
- CVE-2026-33941 Handlebars provides the power necessary to let users build semantic templates. Also affects opensearch-dashboards-3