decode-uri-component: Denial of service via exponential decoding of malformed percent-encoded inputGHSA-vcc3-ghjq-m6fr
Fix: SamVerschueren/decode-uri-component@fa479daGHSA-vcc3-ghjq-m6fr is a Uncontrolled Resource Consumption vulnerability in decode-uri-component. A fix is available for decode-uri-component — see the affected versions and patch details below.
Exploitation Status
No confirmed exploitation observed yet
- CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for GHSA-vcc3-ghjq-m6fr.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
Real-World Exposure
How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.
decode-uri-componentnpmDescription
Impact
An attacker who can supply input to decodeUriComponent() (directly or via a dependency that uses this package on URL/query/path data) can cause excessive CPU usage and application unresponsiveness. This is an availability issue; there is no known memory corruption, data disclosure, or remote code execution impact.
Patches
Upgrade to [email protected].
Workarounds
Limit the size of the input.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | decode-uri-component | all versions | 0.5.0npm install decode-uri-component@0.5.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for decode-uri-component, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update decode-uri-component to 0.5.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-vcc3-ghjq-m6fr is resolved across your whole dependency graph.
Workarounds
Stop feeding it untrusted input: reject or quarantine files and payloads from unverified sources until you can upgrade, restrict accepted formats to the ones you actually need, and run the parsing or decoding step in a least-privileged sandbox or short-lived worker so a crash or corrupted read cannot reach the rest of the process.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
A denial of service flaw was found in the decode-uri-component npm package. The decode() function exhibits super-linear time complexity when processing input containing many percent-encoded sequences, allowing an attacker to cause significant CPU consumption and event-loop blocking. In Red Hat products where this…
Validate and limit the length of any user-controlled input before passing it to decode-uri-component's decode() function. Inputs containing more than approximately 200 percent-encoded tokens (e.g. '%ab' sequences) can trigger noticeable delays. Reject or truncate URI components exceeding a reasonable length threshold before decoding. A fix exists in the upstream repository (commit fa479daf) but has not yet been included in an npm release.Source: Red Hat security advisory for GHSA-vcc3-ghjq-m6fr (CC BY 4.0)
| Product | Fixed in | Advisory |
|---|---|---|
| Red Hat Migration Toolkit 1.8 | rhmtc/openshift-migration-ui-rhel8:1783690532 | RHSA-2026:41928 |
| Red Hat Quay 3.10 | quay/quay-rhel8:1783750447 | RHSA-2026:41031 |
| Red Hat Quay 3.12 | quay/quay-rhel8:1783751865 | RHSA-2026:42146 |
| Red Hat Quay 3.12 | quay/quay-rhel8:1784353904 | RHSA-2026:43052 |
| Red Hat Quay 3.15 | quay/quay-rhel8:1785261506 | RHSA-2026:48933 |
| Red Hat Quay 3.16 | quay/quay-rhel9:1783955846 | RHSA-2026:41066 |
| Red Hat Quay 3.9 | quay/quay-rhel8:1784125838 | RHSA-2026:40262 |
| Red Hat Satellite 6.18 | satellite/iop-vulnerability-frontend-rhel9:1785762027 | RHSA-2026:51348 |
Frequently Asked Questions
Is GHSA-vcc3-ghjq-m6fr in your dependencies?
Find it across npm, including transitive dependencies.