Skip to content

[Security] Fail closed when Strix produces no authoritative scan evidence #891

Description

@seonghobae

Problem

A Strix provider/backend outage can currently leave the required workflow in a skipped or neutral-success shape without authoritative scan evidence. GitHub may treat successful, skipped, or neutral required-check conclusions as satisfying the check name, so transport/provider availability can be confused with security success.

Required contract

A mandatory security gate passes only when authoritative Strix evidence is present for the exact source head and relevant live-base context. Provider/tool unavailability is a typed deferred or failing state, never scan success.

Acceptance criteria

  • Add a terminal always-running gate that evaluates every prerequisite and exact-head Strix receipt.
  • Missing, skipped, neutral, cancelled, action-required, predecessor-head, synthetic, or untrusted-producer evidence is non-passing when Strix is required.
  • Retry only classified transient provider failures within attempt and wall-clock budgets.
  • Preserve useful bounded diagnostics while applying publication-boundary credential redaction.
  • Tests cover provider outage, empty output, skipped job, neutral conclusion, timeout, stale head, fallback exhaustion, and valid current-head finding/no-finding evidence.
  • Ruleset documentation names the expected check source/producer.
  • Protected-main consumer evidence demonstrates both fail-closed outage and recovery.

Related work

Coordinate log redaction with #842 and retry policy with ADR-0003.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: apiAPI, protocol, event, or external contractarea: authAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainarea: securitySecurity boundary, hardening, or vulnerability preventionbugSomething isn't workingpriority: mediumNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behaviortype: featureNew or expanded product capability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions