[Safe Outputs Conformance] SEC-005: Cross-repo target-repo field flagged without allowlist check
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 67/100
調査の方向性
scripts/check-safe-outputs-conformance.sh、特に check_cross_repo を読み、actions/setup/js/unified_session_payload.cjs と actions/setup/js/unified_session_render.cjs の targetRepo マッピングを調べてください。これらのファイルがメタデータを通過させるか表示するだけであることを確認し、その後、マッピングの近くに文書化された SEC-005 の例外を追加してください。bash scripts/check-safe-outputs-conformance.sh を実行し、両方のファイルがチェックに合格することを確認してください。
索引モデルが issue の本文から書いたものです。
説明
Conformance Check Failure
Check ID: SEC-005
Severity: HIGH
Category: Security
Problem Description
The conformance checker flags two files for supporting a target-repo-shaped field without a visible allowlist validation call:
actions/setup/js/unified_session_payload.cjs(line ~453): mapstargetRepo/target_repointo the unified session payload field extraction table.actions/setup/js/unified_session_render.cjs(line ~276): includestargetRepoin a list of fields rendered into a human-readable session log line.
Both usages are read-only: they copy an already-resolved targetRepo value from session metadata into an observability payload or log line for display. Neither file makes a GitHub API call against a different repository, so SEC-005s allowlist requirement (allowed.*[Rr]epos, validateTargetRepo, checkAllowedRepo) does not apply to them the way it does to a true cross-repo write handler.
Affected Components
- Files:
actions/setup/js/unified_session_payload.cjs,actions/setup/js/unified_session_render.cjs - Check:
scripts/check-safe-outputs-conformance.shfunctioncheck_cross_repo(SEC-005)
<b>Current vs Expected Behavior</b>
Current Behavior
The SEC-005 regex (\btarget-repo\b|\btargetRepo\b|\btarget_repo\b) matches any file that merely references a targetRepo identifier, including pure display/metadata-mapping code, and then requires an allowlist-check pattern in that same file or logs a HIGH failure.
Expected Behavior
SEC-005 is intended to catch handlers that use target-repo to perform a cross-repository GitHub API write without validating against allowed-repos. Pure metadata pass-through/rendering code that never calls the GitHub API should not trip this check. The script already supports a documented exemption via an @safe-outputs-exempt SEC-005 annotation for exactly this situation.
Remediation Steps
- Confirm
unified_session_payload.cjsandunified_session_render.cjsnever passtargetRepoto an octokit call or any cross-repo write path (only read/display it). - If confirmed, add a documented exemption comment (
// @safe-outputs-exempt SEC-005: <reason>) near the targetRepo field mapping in both files, explaining that the field is display/telemetry-only metadata, not a cross-repo write target. - If either file is later changed to perform an actual cross-repo API call using this field, remove the exemption and add a real allowlist check at that call site instead.
Verification
After remediation, verify the fix by running:
bash scripts/check-safe-outputs-conformance.sh
SEC-005 should report PASS for both files.
References
- Safe Outputs Specification: docs/src/content/docs/specs/safe-outputs-specification.md
- Conformance Checker: scripts/check-safe-outputs-conformance.sh
- Run: §39729823556
- Date: 2026-10-22
Generated by ✅ Daily Safe Outputs Conformance Checker · claude · agent · 132.9 AIC · ⌖ 0.552 AIC · ⊞ 5.4K · ◷
- expires on Oct 22, 2026, 9:54 PM UTC-08:00
- 主要言語
- Go
- スター
- 5.4k
- フォーク
- 596
- 平均マージ
- 3時間 41分
- マージ済み PR(30日)
- 829
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/gh-aw のほかの issue
-
automation models
難易度 1/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
agent-research
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
agentic-workflows
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
automated conformance good-first-issue safe-outputs
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
automated conformance safe-outputs
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
feature suggestion
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
openvibely/openvibely#1526 ·
メンテナーはふだん 1 日以内に返信
-
docs good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
Usenova-Labs/usenova-backend#36 ·
メンテナーはふだん 1 日以内に返信
-
bug raised-by:verifier
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
medici-finance/assay#4177 ·
メンテナーはふだん 1 日以内に返信
-
bug: admin user creation silently ignores role対応中かも @bfs2021 が今日担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
eugenioenko/autentico#553 ·
メンテナーはふだん 1 日以内に返信
-
sidecar: --moriio-parallel-dispatch omits remote_request_id, so a vLLM NixlPushConnector decode dies with KeyError対応中かも @xintin が今日担当しました。 オープンkind/bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
llm-d/llm-d-router#3607 ·
メンテナーはふだん 1 日以内に返信