stream-json: Prototype pollution: Assembler writes this.current[this.key] on plain objects
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · Low · Low
- Fix status
- Partial Red Hat: 1 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat.
Summary
stream-json is a micro-library of stream components for processing JSON and JSONC with a minimal memory footprint. Prior to 3.6.0, Assembler materializes object properties with plain assignment, so an input key named __proto__ invokes the inherited setter and causes parsed object prototype replacement instead of creating an own data property. Applications that make authorization or feature decisions from inherited values can therefore consume attacker-controlled properties, and a null prototype can disrupt code that expects Object.prototype methods. The researcher treats parsing untrusted JSON as part of the project contract, while the maintainer states that documented inputs are locally owned dumps, exports, or logs and characterizes the attack vector as local. The global Object.prototype is not polluted. This issue is fixed in version 3.6.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| uhop | stream-json | before 3.6.0 | 3.6.0 | Patch available | CNA |
| — | stream-json (npm) | before 3.6.0 | 3.6.0 | Patch available | GHSA-mjw6-4jj6-33hc |
- stream-json Vendoruhop Affected before 3.6.0 Fixed in 3.6.0 Patch available CNA
- stream-json (npm) Vendor— Affected before 3.6.0 Fixed in 3.6.0 Patch available GHSA-mjw6-4jj6-33hc
Remediation
- Fix · CNA stream-json (uhop) Fixed in 3.6.0
- Fix · GHSA-mjw6-4jj6-33hc stream-json (npm) Fixed in 3.6.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Build of Podman Desktop | Affected | No fix yet: Fix deferred |
Timeline
- 2026-10-02 Threatist record created from CVE-2026-104183
- 2026-10-06 Alias added: GHSA-mjw6-4jj6-33hc
- 2026-10-06 Fix available: npm/[email protected] · GHSA-mjw6-4jj6-33hc
- 2026-10-06 CVSS score added · GHSA-mjw6-4jj6-33hc
- 2026-10-06 Weakness changed · GHSA-mjw6-4jj6-33hc
- 2026-10-06 5 new references · GHSA-mjw6-4jj6-33hc
References
More uhop vulnerabilities
- TI-2026-78913 Quadratic CPU use in stream-json FlexAssembler allows denial of service CVSS 3.1MEDIUM 6.2
- TI-2026-65777 stream-json: JSONC parser and verifier re-scan the whole accumulated comment on every input chunk CVSS 3.1MEDIUM 6.2
- TI-2026-50052 Reachable assertion in uhop node-re2 CVSS 3.1MEDIUM 6.2
- TI-2026-50051 stream-json: pick/ignore/filter/replace filters are O(depth²) on nested input — small… CVSS 3.1MEDIUM 6.2
- TI-2026-48273 Infinite loop in uhop node-re2 CVSS 3.1MEDIUM 6.2
- TI-2026-47734 Out-of-bounds read in uhop node-re2 CVSS 3.1MEDIUM 5.7
Sources
- CVE-2026-104183 · CVE Program
- CVE-2026-104183 · NVD
- FIRST EPSS
- GHSA-mjw6-4jj6-33hc · GitHub Advisory Database · CC BY 4.0
- CVE-2026-104183 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences