Repository navigation
fix(perms): pin listing provenance and kind, owners edit only community pins, flags bind author - #20
Conversation
…ty pins, flags bind author
Server side of the 2026-10-22 security scan (advisory GHSA-72r8-ccwp-xcwq):
- F8/F9: listings.create requires source null/community, no sourceId/sourceSyncedAt, and
report aggregates in createListing's range; owner edits freeze source/sourceId/sourceSyncedAt.
- F3–F6 server-side: kind must be one of the 12 known kinds on create and on any kind edit,
which also protects old APKs that keep the unguarded glyph lookup.
- F7: owners may edit or delete only community pins, so a create racing the seed at a derived
id can't change or delete the import before the seed's post-write unlink.
- F1: flags.create binds the author link to the caller (ownerOf("author")).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d's skip+unlink and the inverse-link A/B Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing: 1
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Self-merged by vale (techempower lane) under JP's standing yes (2026-09-28). CI green; typecheck/lint clean; staging A/B GATE PASS 77/77, with main as the positive control (11 = the scan findings) and allow-all rules as the inverse-link control; gitleaks clean. Oracle (spyglass-ba): MERGE. Cross-model (gpt-6.1-sol): MERGE-AFTER-FIXES; each point probed or documented (see body). Prod perms push follows via realm-cloud bin/instant-dash, with prod rules backed up first. |
Server-side rules for the 2026-10-22 security scan (private advisory GHSA-72r8-ccwp-xcwq). Client and seed fixes went in #19.
listings.createneeds source null/community, no sourceId/sourceSyncedAt, and aggregates in createListing's range. Owner edits freeze source/sourceId/sourceSyncedAt.kindmust be one of the 12 known kinds on create and on any kind edit. This also covers old APKs that keep the unguarded glyph lookup.flags.createbinds the author link to the caller.Staging A/B on a throwaway self-hosted app with the repo schema (fields relaxed to optional, links identical), using an extended copy of creek-watch
perms_ab.py:Prod prerequisites (read-only):
Reviews:
double()on numeric strings: pre-existing in the aggregate branch and not a range bypass; left as a residual.🤖 Generated with Claude Code