CVE-2026-54335

Source
https://cve.org/CVERecord?id=CVE-2026-54335
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54335.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-54335
Aliases
Published
2026-07-17T20:56:51.857Z
Modified
2026-07-22T05:30:11.846399812Z
Severity
  • 3.7 (Low) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N CVSS Calculator
Summary
Feathersjs: Prototype pollution in @feathersjs/commons _.merge via JSON-parsed __proto__
Details

Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. In 5.0.44 and earlier, the _.merge(target, source) utility exported by @feathersjs/commons recursively merges source into target by iterating Object.keys(source). When source was produced by JSON.parse and contains a proto, constructor, or prototype key, that key is returned as an own-enumerable property; the recursive merge then resolves target['proto'] to Object.prototype and writes attacker-supplied properties onto it, polluting the prototype for all plain objects in the process for the lifetime of the Node process. This issue is fixed in version 5.0.45.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54335.json",
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-1321"
    ]
}
References

Affected packages

Git / github.com/feathersjs/feathers

Affected ranges

Type
GIT
Repo
https://github.com/feathersjs/feathers
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Fixed
Database specific
{
    "source": [
        "AFFECTED_FIELD",
        "REFERENCES"
    ],
    "extracted_events": [
        {
            "introduced": "0"
        },
        {
            "fixed": "5.0.45"
        }
    ]
}

Affected versions

0.*
0.0.2
0.0.3
0.0.4
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.4.0
1.*
1.0.0
1.0.0-pre.1
1.0.0-pre.5
1.0.1
1.0.2
1.1.0-pre.0
@feathersjs/adapter-commons@1.*
@feathersjs/adapter-commons@1.0.0
@feathersjs/adapter-commons@1.0.1
@feathersjs/adapter-commons@1.0.2
@feathersjs/adapter-commons@1.0.3
@feathersjs/adapter-commons@1.0.4
@feathersjs/adapter-commons@1.0.5
@feathersjs/adapter-commons@1.0.6
@feathersjs/adapter-commons@1.0.7
@feathersjs/adapter-commons@2.*
@feathersjs/adapter-commons@2.0.0
@feathersjs/adapter-tests@1.*
@feathersjs/adapter-tests@1.0.0
@feathersjs/adapter-tests@1.0.1
@feathersjs/authentication-client@1.*
@feathersjs/authentication-client@1.0.10
@feathersjs/authentication-client@1.0.11
@feathersjs/authentication-client@1.0.3
@feathersjs/authentication-client@1.0.4
@feathersjs/authentication-client@1.0.5
@feathersjs/authentication-client@1.0.6
@feathersjs/authentication-client@1.0.7
@feathersjs/authentication-client@1.0.8
@feathersjs/authentication-client@1.0.9
@feathersjs/authentication-jwt@2.*
@feathersjs/authentication-jwt@2.0.10
@feathersjs/authentication-jwt@2.0.2
@feathersjs/authentication-jwt@2.0.3
@feathersjs/authentication-jwt@2.0.4
@feathersjs/authentication-jwt@2.0.5
@feathersjs/authentication-jwt@2.0.6
@feathersjs/authentication-jwt@2.0.7
@feathersjs/authentication-jwt@2.0.8
@feathersjs/authentication-jwt@2.0.9
@feathersjs/authentication-local@1.*
@feathersjs/authentication-local@1.2.2
@feathersjs/authentication-local@1.2.3
@feathersjs/authentication-local@1.2.4
@feathersjs/authentication-local@1.2.5
@feathersjs/authentication-local@1.2.6
@feathersjs/authentication-local@1.2.7
@feathersjs/authentication-local@1.2.8
@feathersjs/authentication-local@1.2.9
@feathersjs/authentication-oauth1@1.*
@feathersjs/authentication-oauth1@1.0.10
@feathersjs/authentication-oauth1@1.0.4
@feathersjs/authentication-oauth1@1.0.5
@feathersjs/authentication-oauth1@1.0.6
@feathersjs/authentication-oauth1@1.0.7
@feathersjs/authentication-oauth1@1.0.8
@feathersjs/authentication-oauth1@1.0.9
@feathersjs/authentication-oauth1@1.1.0
@feathersjs/authentication-oauth1@1.1.1
@feathersjs/authentication-oauth2@1.*
@feathersjs/authentication-oauth2@1.2.1
@feathersjs/authentication-oauth2@1.2.2
@feathersjs/authentication-oauth2@1.2.3
@feathersjs/authentication-oauth2@1.2.4
@feathersjs/authentication-oauth2@1.2.5
@feathersjs/authentication-oauth2@1.2.6
@feathersjs/authentication-oauth2@1.2.7
@feathersjs/authentication-oauth2@1.3.0
@feathersjs/authentication-oauth2@1.3.1
@feathersjs/authentication@2.*
@feathersjs/authentication@2.1.10
@feathersjs/authentication@2.1.11
@feathersjs/authentication@2.1.12
@feathersjs/authentication@2.1.13
@feathersjs/authentication@2.1.14
@feathersjs/authentication@2.1.15
@feathersjs/authentication@2.1.16
@feathersjs/authentication@2.1.8
@feathersjs/authentication@2.1.9
@feathersjs/cli@3.*
@feathersjs/cli@3.8.1
@feathersjs/cli@3.8.2
@feathersjs/cli@3.8.3
@feathersjs/cli@3.8.4
@feathersjs/cli@3.8.5
@feathersjs/cli@3.8.6
@feathersjs/cli@3.8.7
@feathersjs/client@3.*
@feathersjs/client@3.7.2
@feathersjs/client@3.7.3
@feathersjs/client@3.7.4
@feathersjs/client@3.7.5
@feathersjs/client@3.7.6
@feathersjs/client@3.7.7
@feathersjs/client@3.7.8
@feathersjs/commons@3.*
@feathersjs/commons@3.0.0
@feathersjs/commons@3.0.1
@feathersjs/commons@4.*
@feathersjs/commons@4.0.0
@feathersjs/configuration@2.*
@feathersjs/configuration@2.0.1
@feathersjs/configuration@2.0.2
@feathersjs/configuration@2.0.3
@feathersjs/configuration@2.0.4
@feathersjs/configuration@2.0.5
@feathersjs/configuration@2.0.6
@feathersjs/errors@3.*
@feathersjs/errors@3.3.1
@feathersjs/errors@3.3.2
@feathersjs/errors@3.3.3
@feathersjs/errors@3.3.4
@feathersjs/errors@3.3.5
@feathersjs/errors@3.3.6
@feathersjs/express@1.*
@feathersjs/express@1.2.4
@feathersjs/express@1.2.5
@feathersjs/express@1.2.6
@feathersjs/express@1.2.7
@feathersjs/express@1.3.0
@feathersjs/express@1.3.1
@feathersjs/feathers@3.*
@feathersjs/feathers@3.2.0
@feathersjs/feathers@3.2.1
@feathersjs/feathers@3.2.2
@feathersjs/feathers@3.2.3
@feathersjs/feathers@3.3.0
@feathersjs/feathers@3.3.1
@feathersjs/primus-client@1.*
@feathersjs/primus-client@1.1.1
@feathersjs/primus-client@1.1.2
@feathersjs/primus-client@1.1.3
@feathersjs/primus-client@1.1.4
@feathersjs/primus-client@1.1.5
@feathersjs/primus-client@1.1.6
@feathersjs/primus-client@1.1.7
@feathersjs/primus@3.*
@feathersjs/primus@3.2.2
@feathersjs/primus@3.2.3
@feathersjs/primus@3.2.4
@feathersjs/primus@3.2.5
@feathersjs/primus@3.2.6
@feathersjs/primus@3.2.7
@feathersjs/primus@3.2.8
@feathersjs/rest-client@1.*
@feathersjs/rest-client@1.4.2
@feathersjs/rest-client@1.4.3
@feathersjs/rest-client@1.4.4
@feathersjs/rest-client@1.4.5
@feathersjs/rest-client@1.4.6
@feathersjs/rest-client@1.4.7
@feathersjs/socketio-client@1.*
@feathersjs/socketio-client@1.1.1
@feathersjs/socketio-client@1.1.2
@feathersjs/socketio-client@1.1.3
@feathersjs/socketio-client@1.1.4
@feathersjs/socketio-client@1.1.5
@feathersjs/socketio-client@1.2.0
@feathersjs/socketio-client@1.2.1
@feathersjs/socketio@3.*
@feathersjs/socketio@3.2.3
@feathersjs/socketio@3.2.4
@feathersjs/socketio@3.2.5
@feathersjs/socketio@3.2.6
@feathersjs/socketio@3.2.7
@feathersjs/socketio@3.2.8
@feathersjs/socketio@3.2.9
@feathersjs/transport-commons@4.*
@feathersjs/transport-commons@4.1.2
@feathersjs/transport-commons@4.1.3
@feathersjs/transport-commons@4.1.4
@feathersjs/transport-commons@4.1.5
@feathersjs/transport-commons@4.1.6
@feathersjs/transport-commons@4.2.0
@feathersjs/transport-commons@4.2.1
generator-feathers-plugin@1.*
generator-feathers-plugin@1.0.1
generator-feathers@2.*
generator-feathers@2.6.1
generator-feathers@2.6.2
generator-feathers@2.6.3
generator-feathers@2.6.4
generator-feathers@2.7.0
generator-feathers@2.7.1
generator-feathers@2.8.0
v1.*
v1.1.0
v1.1.1
v1.2.0
v1.2.1
v2.*
v2.0.0
v2.0.0-pre.1
v2.0.0-pre.2
v2.0.0-pre.3
v2.0.0-pre.4
v2.0.1
v2.0.2
v2.0.3
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.1.4
v2.1.6
v2.1.7
v2.2.0
v2.2.1
v2.2.2
v2.2.3
v3.*
v3.0.0
v3.0.1
v3.0.2
v3.0.3
v3.0.4
v3.0.5
v3.1.0
v3.1.1
v3.1.2
v3.1.3
v3.1.4
v3.1.5
v3.1.6
v3.1.7
v3.2.0-pre.1
v4.*
v4.0.0-pre.0
v4.0.0-pre.1
v4.0.0-pre.2
v4.0.0-pre.3
v4.0.0-pre.4
v4.0.0-pre.5
v4.3.0
v4.3.0-pre.1
v4.3.0-pre.2
v4.3.0-pre.3
v4.3.0-pre.4
v4.3.1
v4.3.10
v4.3.11
v4.3.2
v4.3.3
v4.3.4
v4.3.5
v4.3.6
v4.3.7
v4.3.8
v4.3.9
v4.4.0
v4.4.1
v4.4.3
v4.5.0
v4.5.1
v4.5.2
v5.*
v5.0.0
v5.0.0-beta.0
v5.0.0-beta.1
v5.0.0-pre.0
v5.0.0-pre.1
v5.0.0-pre.10
v5.0.0-pre.11
v5.0.0-pre.12
v5.0.0-pre.13
v5.0.0-pre.14
v5.0.0-pre.15
v5.0.0-pre.16
v5.0.0-pre.17
v5.0.0-pre.18
v5.0.0-pre.19
v5.0.0-pre.2
v5.0.0-pre.20
v5.0.0-pre.21
v5.0.0-pre.22
v5.0.0-pre.23
v5.0.0-pre.24
v5.0.0-pre.25
v5.0.0-pre.26
v5.0.0-pre.27
v5.0.0-pre.28
v5.0.0-pre.29
v5.0.0-pre.3
v5.0.0-pre.30
v5.0.0-pre.31
v5.0.0-pre.32
v5.0.0-pre.33
v5.0.0-pre.34
v5.0.0-pre.35
v5.0.0-pre.36
v5.0.0-pre.37
v5.0.0-pre.38
v5.0.0-pre.4
v5.0.0-pre.5
v5.0.0-pre.6
v5.0.0-pre.7
v5.0.0-pre.8
v5.0.0-pre.9
v5.0.1
v5.0.10
v5.0.11
v5.0.12
v5.0.13
v5.0.14
v5.0.15
v5.0.16
v5.0.17
v5.0.18
v5.0.19
v5.0.2
v5.0.20
v5.0.21
v5.0.22
v5.0.23
v5.0.24
v5.0.25
v5.0.26
v5.0.27
v5.0.28
v5.0.29
v5.0.3
v5.0.30
v5.0.31
v5.0.32
v5.0.33
v5.0.34
v5.0.35
v5.0.36
v5.0.37
v5.0.38
v5.0.39
v5.0.4
v5.0.40
v5.0.41
v5.0.42
v5.0.43
v5.0.44
v5.0.5
v5.0.6
v5.0.7
v5.0.8
v5.0.9

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54335.json"