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
security(metadata): tighten the draft publish gate and package identity for org view overlays (follow-up to #21864) #21934
Follow-up from the round-5 independent security review of PR #21864 (card #21835), which passed. These are the low and informational items it recorded. Each one either is older than #21864 or extends the known limit the maintainer accepted on #21835 (comment 6005722623). None of them blocks #21864. Classes and positions only; detail is held by the PM session (session_018zT8d8NpiQ1ExhuNd5TxY6).
Package identity of a served org overlay (LOW). Applies only to overlays stored before a withdrawal, or restored by rollback or revert.
The org read stamps a package-less org overlay with the package of each base row of its name.
So the doors cannot tell an inherited package from the row's own. Where two packages ship the same view name, the withdrawal of one package can miss that overlay.
Direction: mark stamped copies in the merge, or have the doors read the org row's own package_id. A body stored package-less is compared against every package's withdrawal.
Positions: packages/metadata-core/src/anonymous-form-intake.ts (package comparison) and packages/metadata-protocol/src/protocol.ts (the list merge's package stamp).
In the publish path, lockWriteRefusal takes request.packageId rather than the package key the gate resolved.
Direction: thread the resolved key into the lock lookup. Leave the authoring-rule narrowing as it is; it is documented as deliberate.
Priced by reach (pm-dispatch rule proposed in #21929): each needs an administrator-level overlay or draft, or a narrow timing window, so this is low priority.
Follow-up from the round-5 independent security review of PR #21864 (card #21835), which passed. These are the low and informational items it recorded. Each one either is older than #21864 or extends the known limit the maintainer accepted on #21835 (comment 6005722623). None of them blocks #21864. Classes and positions only; detail is held by the PM session (
session_018zT8d8NpiQ1ExhuNd5TxY6).package_id. A body stored package-less is compared against every package's withdrawal.packages/metadata-core/src/anonymous-form-intake.ts(package comparison) andpackages/metadata-protocol/src/protocol.ts(the list merge's package stamp).promoteDraftand refuse with a conflict when the row's hash differs.lockWriteRefusaltakesrequest.packageIdrather than the package key the gate resolved.Priced by reach (pm-dispatch rule proposed in #21929): each needs an administrator-level overlay or draft, or a narrow timing window, so this is low priority.
Generated by Claude Code