Skip to content

Commit 2d536ff

Browse files
1 parent 6b0d1aa commit 2d536ff

1 file changed

Lines changed: 87 additions & 0 deletions

File tree

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{
2+
"schema_version": "1.4.0",
3+
"id": "GHSA-chm2-m3w2-wcxm",
4+
"modified": "2026-02-17T22:56:39Z",
5+
"published": "2026-02-17T22:56:39Z",
6+
"aliases": [],
7+
"summary": "OpenClaw Google Chat spoofing access with allowlist authorized mutable email principal despite sender-ID mismatch",
8+
"details": "### Summary\nGoogle Chat allowlisting supports matching by sender email in addition to immutable sender resource name (`users/<id>`). This weakens identity binding if a deployment assumes allowlists are strictly keyed by immutable principals.\n\n### Affected Packages / Versions\n(As of 2026-02-14; based on latest published npm versions)\n- `openclaw` (npm): `<= 2026.2.13`\n- `clawdbot` (npm): `<= 2026.1.24-3`\n\n### Details\nAffected component:\n- `extensions/googlechat/src/monitor.ts`\n\nThe `allowFrom` checks accept:\n- Immutable sender id (`users/<id>`)\n- Raw email (`alice@example.com`) for usability\n\nHistorically, `users/<email>` was also treated as an email allowlist entry. This is now deprecated because it looks like an immutable ID but is actually a mutable principal.\n\n### Security Triage (2026-02-14)\nSeverity: **Low**\n\nRationale:\n- Requests are authenticated as coming from Google Chat (token verification), so this is not a generic unauthenticated spoofing vector.\n- A realistic exploit generally requires **Google Workspace / IdP administrative control** over identity lifecycle (e.g. reassigning an email address to a different underlying account) to obtain the same email with a different `users/<id>`.\n- With that level of access, the attacker typically has broader compromise paths.\n\nWe still treat it as a valid defense-in-depth report because accepting mutable principals in authorization decisions can increase risk in chained-failure scenarios.\n\n### Remediation / Behavior Changes\nGoal: preserve usability while reducing footguns.\n- Raw email allowlists remain supported.\n- `users/<email>` is deprecated and treated as a **user id**, not as an email allowlist.\n- Documentation recommends `users/<id>` when strict immutable binding is required.\n\n### Fix Commit(s)\n- `c8424bf29a921e25663b29f308640b3d91a49432` (PR #16243)\n\nThanks @vincentkoc for reporting.",
9+
"severity": [
10+
{
11+
"type": "CVSS_V4",
12+
"score": "CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N"
13+
}
14+
],
15+
"affected": [
16+
{
17+
"package": {
18+
"ecosystem": "npm",
19+
"name": "openclaw"
20+
},
21+
"ranges": [
22+
{
23+
"type": "ECOSYSTEM",
24+
"events": [
25+
{
26+
"introduced": "0"
27+
},
28+
{
29+
"fixed": "2026.2.14"
30+
}
31+
]
32+
}
33+
]
34+
},
35+
{
36+
"package": {
37+
"ecosystem": "npm",
38+
"name": "clawdbot"
39+
},
40+
"ranges": [
41+
{
42+
"type": "ECOSYSTEM",
43+
"events": [
44+
{
45+
"introduced": "0"
46+
},
47+
{
48+
"last_affected": "2026.1.24-3"
49+
}
50+
]
51+
}
52+
]
53+
}
54+
],
55+
"references": [
56+
{
57+
"type": "WEB",
58+
"url": "https://github.com/openclaw/openclaw/security/advisories/GHSA-chm2-m3w2-wcxm"
59+
},
60+
{
61+
"type": "WEB",
62+
"url": "https://github.com/openclaw/openclaw/pull/16243"
63+
},
64+
{
65+
"type": "WEB",
66+
"url": "https://github.com/openclaw/openclaw/commit/c8424bf29a921e25663b29f308640b3d91a49432"
67+
},
68+
{
69+
"type": "PACKAGE",
70+
"url": "https://github.com/openclaw/openclaw"
71+
},
72+
{
73+
"type": "WEB",
74+
"url": "https://github.com/openclaw/openclaw/releases/tag/v2026.2.14"
75+
}
76+
],
77+
"database_specific": {
78+
"cwe_ids": [
79+
"CWE-290",
80+
"CWE-863"
81+
],
82+
"severity": "LOW",
83+
"github_reviewed": true,
84+
"github_reviewed_at": "2026-02-17T22:56:39Z",
85+
"nvd_published_at": null
86+
}
87+
}

0 commit comments

Comments
 (0)