You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 16f5682
Browse filesBrowse the repository at this point in the historyBrowse files
fix(plugin-security): a public_read_write OWD opens row-level writes, not just the creator's (#8023)
The platform's wildcard `owner_only_writes` floor (object '*', operation
update, `created_by == current_user.id`, positions ['org_member']) stayed
composed into Layer 1 on objects declaring `sharingModel: 'public_read_write'`,
because the by-id write pre-image gate only lets ISharingService REPLACE the
floor on a positive `allow` and a public object makes the service abstain.
Net effect: the OWD declared 'everyone reads and writes' and the runtime
enforced 'only the creator writes' — a declared-but-unenforced security
property on a published surface.
The floor is now conditioned on the object's DECLARED OWD at collection time,
before #7665's derive-from-select branch, so the write class falls through to
the caller's select narrowing and by-id write visibility (#7792) is preserved.
Only `update` is opened (owner_only_deletes survives), only the canonical
`public_read_write` spelling qualifies (controlled_by_parent and an unset
model on a system object do not), and only the PLATFORM's floor is dropped —
an app-authored policy with the same predicate still reaches the compiler.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PEVB6w7D7uCszR9Mw1BL73
0 commit comments