fix(feishu): fix group policy enforcement gaps#25439
Merged
Takhoffman merged 1 commit intoopenclaw:mainfrom Feb 28, 2026
Merged
fix(feishu): fix group policy enforcement gaps#25439Takhoffman merged 1 commit intoopenclaw:mainfrom
Takhoffman merged 1 commit intoopenclaw:mainfrom
Conversation
521c4a6 to
933cca7
Compare
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
933cca7 to
0388316
Compare
Contributor
|
PR #25439 - fix(feishu): fix group policy enforcement gaps (#25439) Merged via squash.
Changes made:
Why these changes were made:
|
Contributor
|
Closing as superseded/already-fixed. This change is already on
Verified in current main:
|
mylukin
pushed a commit
to mylukin/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
r4jiv007
pushed a commit
to r4jiv007/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
mylukin
pushed a commit
to mylukin/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id (cherry picked from commit d6bdb89)
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id (cherry picked from commit d6bdb89)
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id (cherry picked from commit d6bdb89)
vincentkoc
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
vincentkoc
pushed a commit
to rylena/rylen-openclaw
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
newtontech
pushed a commit
to newtontech/openclaw-fork
that referenced
this pull request
Feb 28, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Mar 1, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
wanjizheng
pushed a commit
to wanjizheng/openclaw
that referenced
this pull request
Mar 1, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
zooqueen
added a commit
to hanzoai/bot
that referenced
this pull request
Mar 1, 2026
Cherry-pick of upstream b0a8909.
ansh
pushed a commit
to vibecode/openclaw
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
steipete
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
safzanpirani
pushed a commit
to safzanpirani/clawdbot
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
steipete
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
safzanpirani
pushed a commit
to safzanpirani/clawdbot
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
steipete
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
venjiang
pushed a commit
to venjiang/openclaw
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
robertchang-ga
pushed a commit
to robertchang-ga/openclaw
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
execute008
pushed a commit
to execute008/openclaw
that referenced
this pull request
Mar 2, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
dorgonman
pushed a commit
to kanohorizonia/openclaw
that referenced
this pull request
Mar 3, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
sachinkundu
pushed a commit
to sachinkundu/openclaw
that referenced
this pull request
Mar 6, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
zooqueen
added a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
Cherry-pick of upstream b0a8909.
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
Mateljan1
pushed a commit
to Mateljan1/openclaw
that referenced
this pull request
Mar 7, 2026
- Respect groupConfig.enabled flag (was parsed but never enforced) - Fix misleading log: group allowlist rejection now logs group ID and policy instead of sender open_id
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
groupConfig.enabled: falsewas parsed but never checked, so disabled groups still received messages; (2) the group allowlist rejection log emitted the sender'sopen_idinstead of the group ID and policy, making it hard to diagnose; (3) the sender-levelallowFromcheck merged in DM pairing store entries, allowing DM-paired users to bypass explicit group admission config.groups.<id>.allowFromcould not trust those settings to be enforced. The store merge also created an inconsistency: group message admission used a merged list while group command authorization used config-only, so the same sender could pass message gating but fail command auth.groupConfig.enabled === false; (2) fixed rejection log to show group ID +groupPolicy; (3) removedreadAllowFromStoremerge from group sender check —groups.<id>.allowFromis now config-only, matching command authorization behavior.readAllowFromStoreis still used for DMdmPolicyand command authorization checks.groupPolicy/groupAllowFrom(group-level admission) logic is untouched.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
User-visible / Behavior Changes
enabled: falsein config are now silently dropped (previously ignored).groups.<id>.allowFromare now blocked even if they have a DM pairing entry. Operators who relied on the store-merge behavior (unintentional) will need to add those users explicitly toallowFrom.Security Impact (required)
NoNoNoNoNoRepro + Verification
Environment
{ "channels": { "feishu": { "groupAllowFrom": ["oc_xxx"], "groups": { "oc_xxx": { "enabled": false, "allowFrom": ["ou_admin"] } } } } }Steps
enabled: false→ should be dropped.allowFrom: ["ou_admin"]as a user not in the list → should be blocked.ou_admin→ should pass through.Expected
group <id> is disabled.sender <id> not in group <id> sender allowlist.Actual
Evidence
pnpm test extensions/feishu/src/bot.test.ts— 7 tests pass.Human Verification (required)
enabled: falseearly return; sender blocked when not inallowFrom; sender allowed when inallowFrom; DM path unaffected.allowFromset (sender check skipped entirely);groupPolicy: openwith nogroupAllowFrom(group admitted, sender check skipped).Compatibility / Migration
No— operators who inadvertently relied on DM-paired users passing group sender checks will need to add them explicitly togroups.<id>.allowFrom.NoNo— config schema unchanged; only enforcement tightened.Failure Recovery (if this breaks)
extensions/feishu/src/bot.tsto previous commit.extensions/feishu/src/bot.ts,extensions/feishu/src/bot.test.ts.groups.<id>.allowFrom.Risks and Mitigations
allowFromexplicitly.