Skip to content

[compiler-threat-spec] Daily compiler threat spec audit (2026-09-15): dispose Opengrep build-reproducibility findings as out of scope - #61014

Merged
pelikhan merged 1 commit into
mainfrom
daily-threat-spec-audit-2026-09-15-9fd9ba8a5510b96f
Sep 15, 2026
Merged

pelikhan merged 1 commit into
mainfrom
daily-threat-spec-audit-2026-09-15-9fd9ba8a5510b96f

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Protected files were modified in this change.
This pull request is in request-review mode and requires explicit human scrutiny before merge.

Protected files: .changeset/threat-spec-audit-2026-09-15.md

Daily Compiler Threat Spec Optimizer — 2026-09-15

View Details

Threats reviewed

  • No compiler/parser source diff exists beyond the single squashed commit state (d8e1aa7); no candidate threat surfaced from source changes.
  • Surveyed all open code-scanning alerts: 0 critical, ~260+ high-severity, dominated by three Opengrep "pr-action" build-reproducibility rule families:
    • github-actions-npm-install-non-deterministic (large majority) — flags npm install (vs npm ci) in generated .lock.yml files.
    • actions-uv-pip-install-non-deterministic (~10 instances) — flags uv pip install without --frozen.
    • dockerfile-non-sha-pinned-image (1 instance) — FROM alpine:3.24 in the repo Dockerfile.
    • One-offs: actions-pip-install-inline-no-hash-check, github-actions-setup-node-missing-version.

Disposition

  • Already covered / no gap: every compiler-generated npm install (in pkg/workflow/codex_engine.go's BuildStandardNpmEngineInstallStepsNoCooldown/generateCodexDockerSbxCLIInstallStep, and pkg/workflow/copilot_engine_installation.go) already pins an exact version (e.g. @openai/codex@0.153.4), which is the scanner's own documented exception for global installs. No compiler-side implementation change was required.
  • Out of conformance scope (specification Section 1 excludes "external scanner ecosystems" and non-compiler-generated files):
    • .github/workflows/test-copilot-github-integration.yml (unpinned npm install -g @github/copilot) — hand-authored, no gh-aw-metadata/generation header.
    • .github/workflows/format-and-commit.yml (missing setup-node version) — hand-authored maintenance workflow.
    • .github/workflows/shared/python-dataviz.md / trending-charts-simple.md (uv pip install without --frozen) — shared markdown snippet, third-party visualization deps, no untrusted input.
    • Repository Dockerfile (alpine:3.24 not SHA-pinned) — repo build tooling, not pkg/workflow//pkg/parser//actions/setup/ output.
  • None of these map to the five in-scope compiler threat classes (privilege escalation, sandbox bypass, injection, unsafe output/supply-chain routes, compile-time drift). CTR-014 (Supply Chain Attack via Install Scripts) already covers the adjacent, in-scope risk of untrusted pre/postinstall script execution — a distinct concern from install-command determinism.

Rule IDs added/changed

  • None. No new CTR-* rule was warranted this run.

Files changed

  • specs/compiler-threat-detection-spec.md — version bump 1.0.35 → 1.0.36, Section 2 sync-table row added.
  • specs/compiler-threat-detection-changelog.md — Version History row + new ### Mapping Audit (2026-09-15) entry.
  • .changeset/threat-spec-audit-2026-09-15.md — new changeset documenting the audit.

Tests run

  • None required (spec/changelog-only change, no implementation modified). No go build/go test invocation needed since no .go source changed.

Suppression review

  • No live threat-detection-suppress annotations exist in any workflow frontmatter (only illustrative documentation examples), so no SLA_BREACH applies.

Steering issue

  • The steering issue reference in this run's prompt had no issue number (# with a blank value), so issue_read was skipped; no steering feedback was available to incorporate.

Generated by 🔒 Daily Compiler Threat Spec Optimizer · copilot · auto · 206.9 AIC · ⌖ 10.1 AIC · ⊞ 9.2K · ◷

  • expires on Sep 21, 2026, 6:55 PM UTC-08:00

Run: https://github.com/github/gh-aw/actions/runs/34926826647

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 15.9 AIC · ⊞ 9.4K · ◷
Comment /souschef to run again

…-reproducibility findings as out of scope

Bumped spec to 1.0.36 (audit-only). Reviewed ~260+ open high-severity
code-scanning alerts, dominated by Opengrep pr-action rules for
npm/uv/pip install determinism and Dockerfile SHA-pinning. All
compiler-generated npm install calls already pin exact versions
(satisfying the scanner's own documented exception); remaining
flagged files are hand-authored or build-tooling outside
pkg/workflow/, pkg/parser/, actions/setup/ conformance scope per
spec Section 1. No new CTR-* rule required; CTR-014 already covers
the adjacent in-scope install-script-execution risk.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Protected files were modified in this pull request and require manual scrutiny before merge.

Please verify that each protected-file change is intentional, policy-compliant, and safe:

  • Protected files: .changeset/threat-spec-audit-2026-09-15.md

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please take another pass on this PR and run the pr-finisher skill. This branch appears unstable and still has protected-file review feedback to address before merge.

Review feedback:

Run: https://github.com/github/gh-aw/actions/runs/34926826647

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 15.9 AIC · ⊞ 9.4K · ◷
Comment /souschef to run again

@pelikhan
pelikhan deleted the daily-threat-spec-audit-2026-09-15-9fd9ba8a5510b96f branch September 15, 2026 04:02
@github-actions

Copy link
Copy Markdown
Contributor Author

🎉 This pull request is included in a new release.

Release: v0.89.17

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants