mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
fix(security): clarify dmScope remediation path with explicit CLI command
# Problem The security audit and onboarding screens suggested 'Set session.dmScope="..."' for multi-user DM isolation. This led users to try setting the value in invalid config paths (e.g., 'channels.imessage.dmScope'). # Changes - Updated 'src/security/audit.ts' to use 'formatCliCommand' for dmScope remediation. - Updated 'src/commands/doctor-security.ts' and 'src/commands/onboard-channels.ts' to use the explicit 'openclaw config set' command format. # Validation - Verified text alignment with 'pnpm tsgo'. - Confirmed CLI command formatting remains consistent across modified files.
This commit is contained in:
committed by
Peter Steinberger
parent
31c6a12cfa
commit
ca3c83acdf
@@ -124,7 +124,9 @@ export async function noteSecurityWarnings(cfg: OpenClawConfig) {
|
||||
|
||||
if (dmScope === "main" && isMultiUserDm) {
|
||||
warnings.push(
|
||||
`- ${params.label} DMs: multiple senders share the main session; set session.dmScope="per-channel-peer" (or "per-account-channel-peer" for multi-account channels) to isolate sessions.`,
|
||||
`- ${params.label} DMs: multiple senders share the main session; run: ` +
|
||||
formatCliCommand('openclaw config set session.dmScope "per-channel-peer"') +
|
||||
' (or "per-account-channel-peer" for multi-account channels) to isolate sessions.',
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -194,7 +194,9 @@ async function noteChannelPrimer(
|
||||
"DM security: default is pairing; unknown DMs get a pairing code.",
|
||||
`Approve with: ${formatCliCommand("openclaw pairing approve <channel> <code>")}`,
|
||||
'Public DMs require dmPolicy="open" + allowFrom=["*"].',
|
||||
'Multi-user DMs: set session.dmScope="per-channel-peer" (or "per-account-channel-peer" for multi-account channels) to isolate sessions.',
|
||||
"Multi-user DMs: run: " +
|
||||
formatCliCommand('openclaw config set session.dmScope "per-channel-peer"') +
|
||||
' (or "per-account-channel-peer" for multi-account channels) to isolate sessions.',
|
||||
`Docs: ${formatDocsLink("/start/pairing", "start/pairing")}`,
|
||||
"",
|
||||
...channelLines,
|
||||
@@ -248,7 +250,9 @@ async function maybeConfigureDmPolicies(params: {
|
||||
`Approve: ${formatCliCommand(`openclaw pairing approve ${policy.channel} <code>`)}`,
|
||||
`Allowlist DMs: ${policy.policyKey}="allowlist" + ${policy.allowFromKey} entries.`,
|
||||
`Public DMs: ${policy.policyKey}="open" + ${policy.allowFromKey} includes "*".`,
|
||||
'Multi-user DMs: set session.dmScope="per-channel-peer" (or "per-account-channel-peer" for multi-account channels) to isolate sessions.',
|
||||
"Multi-user DMs: run: " +
|
||||
formatCliCommand('openclaw config set session.dmScope "per-channel-peer"') +
|
||||
' (or "per-account-channel-peer" for multi-account channels) to isolate sessions.',
|
||||
`Docs: ${formatDocsLink("/start/pairing", "start/pairing")}`,
|
||||
].join("\n"),
|
||||
`${policy.label} DM access`,
|
||||
|
||||
@@ -599,7 +599,9 @@ async function collectChannelSecurityFindings(params: {
|
||||
detail:
|
||||
"Multiple DM senders currently share the main session, which can leak context across users.",
|
||||
remediation:
|
||||
'Set session.dmScope="per-channel-peer" (or "per-account-channel-peer" for multi-account channels) to isolate DM sessions per sender.',
|
||||
"Run: " +
|
||||
formatCliCommand('openclaw config set session.dmScope "per-channel-peer"') +
|
||||
' (or "per-account-channel-peer" for multi-account channels) to isolate DM sessions per sender.',
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user