deepstream: PATCH_MULTI action bypasses Valve permission system allowing unauthorized record writes
deepstream is a server that allows clients and backend services to sync data, send messages and make rpcs at scale. From 10.1.0 until 10.1.1, src/services/permission/valve/rules-map.ts omits RECORD_ACTION.PATCH_MULTI from RULES_MAP. When an authenticated user sends a PATCH_MULTI record operation while permission.type is config, getRulesForMessage returns a null rule specification and ConfigPermission.canPerformAction treats the missing specification as an unconditional allow instead of applying RULE_TYPES.WRITE. Any authenticated user can therefore modify arbitrary protected records, corrupt application state, or cause service disruption; deployments using the default permission type none already allow all operations and are not additionally affected. This issue is fixed in version 10.1.1.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-63116
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 20:06 UTC · Revision 1
Source evidence
deepstream: PATCH_MULTI action bypasses Valve permission system allowing unauthorized record writes
core-osv · Original sourcePublished 21 Sept 2026, 16:59 UTC
deepstream is a server that allows clients and backend services to sync data, send messages and make rpcs at scale. From 10.1.0 until 10.1.1, src/services/permission/valve/rules-map.ts omits RECORD_ACTION.PATCH_MULTI from RULES_MAP. When an authenticated user sends a PATCH_MULTI record operation while permission.type is config, getRulesForMessage returns a null rule specification and ConfigPermission.canPerformAction treats the missing specification as an unconditional allow instead of applying RULE_TYPES.WRITE. Any authenticated user can therefore modify arbitrary protected records, corrupt application state, or cause service disruption; deployments using the default permission type none already allow all operations and are not additionally affected. This issue is fixed in version 10.1.1.
osv:CVE-2026-63116
Complete source record
{
"id": "83e1eb56ee516c9bf1073b691799884d1954221b5a7fad0eae77929f004bed6b",
"url": "https://osv.dev/vulnerability/CVE-2026-63116",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "deepstream: PATCH_MULTI action bypasses Valve permission system allowing unauthorized record writes",
"summary": "deepstream is a server that allows clients and backend services to sync data, send messages and make rpcs at scale. From 10.1.0 until 10.1.1, src/services/permission/valve/rules-map.ts omits RECORD_ACTION.PATCH_MULTI from RULES_MAP. When an authenticated user sends a PATCH_MULTI record operation while permission.type is config, getRulesForMessage returns a null rule specification and ConfigPermission.canPerformAction treats the missing specification as an unconditional allow instead of applying RULE_TYPES.WRITE. Any authenticated user can therefore modify arbitrary protected records, corrupt application state, or cause service disruption; deployments using the default permission type none already allow all operations and are not additionally affected. This issue is fixed in version 10.1.1.",
"evidence": "osv:CVE-2026-63116",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-63116",
"aliases": [
"CVE-2026-63116",
"GHSA-89vx-jh4q-vg3w"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/deepstreamio/deepstream.io",
"type": "GIT",
"events": [
{
"introduced": "3abde8de3df91e1b6d18f719d9e38e94bfa314f6"
},
{
"fixed": "805461c7495c90ad669c103906cc3579db662905"
},
{
"fixed": "1c2adde6581c53ef47e204364bc740bc3c2e2e2a"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "10.1.0"
},
{
"fixed": "10.1.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "1c2adde6581c53ef47e204364bc740bc3c2e2e2a"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "805461c7495c90ad669c103906cc3579db662905"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v10.1.1"
}
]
}
}
],
"versions": [
"v10.1.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63116.json"
}
}
],
"modified": "2026-10-28T02:30:23.190832197Z",
"provider": "osv",
"references": [
"https://github.com/deepstreamIO/deepstream.io/releases/tag/v10.1.1",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63116.json",
"https://github.com/deepstreamIO/deepstream.io/security/advisories/GHSA-89vx-jh4q-vg3w",
"https://nvd.nist.gov/vuln/detail/CVE-2026-63116",
"https://github.com/deepstreamIO/deepstream.io/commit/1c2adde6581c53ef47e204364bc740bc3c2e2e2a"
],
"provider_metadata": {
"cwe_ids": [
"CWE-862"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63116.json"
}
},
"related_cves": [
{
"value": "CVE-2026-63116",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 489637,
"published_at": "2026-09-21T16:59:22.958+00:00"
}