スキル agy-worker 監査履歴
📦

監査履歴

agy-worker - 8 監査

バージョン比較

監査済みバージョン間の機能と検出結果の変化(新しい順)。

バージョン日付結果レビュー項目前バージョンとの変化
v8 最新2026年9月20日 21:08 7 確認済み50機能の変化なし
v7 2026年9月19日 10:47 3 確認済み12機能の変化なし
v6 2026年9月12日 18:26 確認された検出結果なし12機能の変化なし
v5 2026年9月6日 12:11 1 確認済み4機能の変化なし
v4 2026年8月31日 11:24 1 確認済み4機能の変化なし
v3 2026年8月31日 11:24 1 確認済み4機能の変化なし
v2 2026年8月29日 19:38 1 確認済み0機能の変化なし
v1 2026年8月29日 10:25 4 確認済み4基準

2026年9月20日 21:08

Most static matches are benign implementation, validation, documentation, schema, or control-character checks. Confirmed risks include provider and verifier execution, environment inheritance, keychain handling, settings access, and non-sandboxed provider authority. Static review was capped at 400/991 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

92
スキャンされたファイル
39,230
解析済み行数
62
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (7)

高
Certificate/key files
keychain_path=prepared.keychain.path if prepared.keychain is not None else None,
The code binds a prepared keychain path or keychain preferences file, which is a sensitive-resource capability. It is used for native isolation, but compromise of the boundary could expose credential material.
高
Certificate/key files
if prepared.keychain is None or prepared.keychain_preferences is None:
The code binds a prepared keychain path or keychain preferences file, which is a sensitive-resource capability. It is used for native isolation, but compromise of the boundary could expose credential material.
高
Certificate/key files
if _bind_keychain(prepared.keychain.path) != prepared.keychain:
The code binds a prepared keychain path or keychain preferences file, which is a sensitive-resource capability. It is used for native isolation, but compromise of the boundary could expose credential material.
高
Certificate/key files
prepared.keychain_preferences.path, modes={0o600}, limit=MAX_PROFILE_BYTES,
The code binds a prepared keychain path or keychain preferences file, which is a sensitive-resource capability. It is used for native isolation, but compromise of the boundary could expose credential material.
高
Certificate/key files
) != prepared.keychain_preferences:
The code binds a prepared keychain path or keychain preferences file, which is a sensitive-resource capability. It is used for native isolation, but compromise of the boundary could expose credential material.
高
Certificate/key files
prepared.keychain is not None or prepared.keychain_preferences is not None
The code binds a prepared keychain path or keychain preferences file, which is a sensitive-resource capability. It is used for native isolation, but compromise of the boundary could expose credential material.
高
External Provider Transmission Without Host Isolation
The skill can transmit a whole disposable worktree to Google or Gemini, while default session mode retains normal user filesystem and network authority without host containment.
The documented workflow explicitly states both the external transmission boundary and the lack of sandbox or native containment in default session mode.
機能レビュー項目 (50)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Hidden file in home directory
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The account-phase helper expands and reads the user settings file under ~/.gemini. This accesses provider configuration that may contain sensitive permissions or account settings.
高
Process spawn
return spawn(job, "initial", resume=False, foreground=True)
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Process spawn
return spawn(job, "initial", resume=False, foreground=False)
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Process spawn · 2 件
return spawn(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python os.exec variants
os.execvpe(command[0], command, dict(os.environ))
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.Popen · 6 件
process = subprocess.Popen(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.Popen
child = subprocess.Popen(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.Popen
controller_process = subprocess.Popen(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.Popen
process = subprocess.Popen(argv, cwd=cwd, env=git_env(), stdin=subprocess.DEVNULL, stdout=subprocess
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run · 2 件
return subprocess.run(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run · 3 件
subprocess.run(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run
provider_checked = subprocess.run(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run
canonical_checked = subprocess.run(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run
result = subprocess.run(command, cwd=cwd, env=git_env(), stdin=subprocess.DEVNULL, stdout=subprocess
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run · 2 件
completed = subprocess.run(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run · 5 件
proc = subprocess.run(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run
proc = subprocess.run(verify_cmd, check=False)
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
高
Python subprocess.run
fin_proc = subprocess.run(
The runtime launches provider, Git, or verification processes. This is required by the skill, but it creates a real command-execution boundary that must remain approval-bound.
中
Hidden file access
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The account-phase helper expands and reads the user settings file under ~/.gemini. This accesses provider configuration that may contain sensitive permissions or account settings.
中
Unix shell invocation · 2 件
/bin/bash -c "${verify_specs[$i]}"
The verifier invokes a shell or defines a shell supervisor. Shell execution can run arbitrary commands, so this is a real execution boundary even with the documented controls.
中
Unix shell invocation
SCRIPT_SHELLS = frozenset({"/bin/bash", "/bin/sh"})
The verifier invokes a shell or defines a shell supervisor. Shell execution can run arbitrary commands, so this is a real execution boundary even with the documented controls.
中
Unix shell invocation
"/bin/sh", "-c", supervisor, "bounded-git-supervisor",
The verifier invokes a shell or defines a shell supervisor. Shell execution can run arbitrary commands, so this is a real execution boundary even with the documented controls.
中
Unix shell invocation
"/bin/bash",
The verifier invokes a shell or defines a shell supervisor. Shell execution can run arbitrary commands, so this is a real execution boundary even with the documented controls.
低
Python environment access · 2 件
environment = os.environ.copy()
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
if name in os.environ:
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
(os.fsencode(name), b"\0", os.fsencode(os.environ[name]), b"\0")
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
os.execvpe(command[0], command, dict(os.environ))
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
environment = {name: os.environ[name] for name in allowed if name in os.environ}
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
configured = os.environ.get("XDG_STATE_HOME")
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
home_text = os.environ.get("HOME")
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
environment = dict(os.environ)
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
env = dict(os.environ)
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
os.environ.get("AGY_WORKER_LOG_DIR") or (state_path.parent / "logs")
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.
低
Python environment access
os.environ.get("AGY_WORKER_LOG_DIR") or (SCRIPTS.parent / "logs")
The code reads or copies the process environment for child execution. Environment variables can contain credentials, so filtering must remain complete and approval-bound.

リスク要因

⚙️ 外部コマンド (50)
README.md:56 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:71 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:80 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:81 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:82 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:252 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:253 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:287 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:288-290 runtime/agy-worker.sh:14 runtime/agy-worker.sh:15 runtime/agy-worker.sh:1262 runtime/agy-worker.sh:1263 runtime/agy-worker.sh:1300 runtime/agy-worker.sh:25 runtime/agy-worker.sh:30 runtime/agy-worker.sh:237 runtime/agy-worker.sh:464 runtime/agy-worker.sh:473-475 runtime/agy-worker.sh:497 runtime/agy-worker.sh:498 runtime/agy-worker.sh:499 runtime/agy-worker.sh:603 runtime/agy-worker.sh:604 runtime/agy-worker.sh:649 runtime/agy-worker.sh:650 runtime/agy-worker.sh:651 runtime/agy-worker.sh:652 runtime/agy-worker.sh:663 runtime/agy-worker.sh:685 runtime/agy-worker.sh:690 runtime/agy-worker.sh:692 runtime/agy-worker.sh:696 runtime/agy-worker.sh:720-725 runtime/agy-worker.sh:901-906 runtime/agy-worker.sh:980 runtime/agy-worker.sh:1009-1011 runtime/agy-worker.sh:1043-1054 runtime/agy-worker.sh:1225 runtime/agy-worker.sh:1226 runtime/agy-worker.sh:1306 runtime/agy-worker.sh:15-1262 runtime/benchmark.sh:5 runtime/codex-usage-report.sh:5 runtime/delegation-policy.sh:5 runtime/doctor.sh:21 runtime/doctor.sh:32 runtime/doctor.sh:37-38 runtime/doctor.sh:85-86 runtime/doctor.sh:146-147
🌐 ネットワークアクセス (43)
references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:25 runtime/compat/agy-version-manifest.json:20 runtime/compat/agy-version-manifest.json:64 runtime/compat/agy-version-manifest.json:111 runtime/compat/agy-version-manifest.json:163 runtime/compat/agy-version-manifest.json:212 runtime/compat/agy-version-manifest.json:257 runtime/compat/agy-version-manifest.json:277 runtime/compat/agy-version-manifest.json:303 runtime/compat/agy-version-manifest.json:347 runtime/compat/model-effort-matrix.schema.json:2 runtime/compat/model-effort-matrix.schema.json:3 runtime/compat/version-manifest.schema.json:2 runtime/schemas/benchmark-plan.schema.json:1 runtime/schemas/benchmark-result.schema.json:1 runtime/schemas/delegation-policy.schema.json:2 runtime/schemas/evidence-receipt.schema.json:2 runtime/schemas/job-state.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-preview.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-summary.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate-preview.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate.schema.json:2 runtime/schemas/model-evidence-campaign-evaluation.schema.json:2 runtime/schemas/model-evidence-campaign-plan.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:156 runtime/schemas/model-intelligence-advisory.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:85 runtime/schemas/model-recommendation.schema.json:2 runtime/schemas/model-selection.schema.json:2 runtime/schemas/swebench-workflow-study-advisory.schema.json:1 runtime/schemas/swebench-workflow-study-report.schema.json:1 runtime/schemas/worker-result.provider.schema.json:2 runtime/schemas/worker-result.schema.json:2 runtime/schemas/workflow-state.schema.json:2 runtime/scripts/codex_usage_report.py:726 runtime/scripts/compatibility.py:245 runtime/scripts/compatibility.py:246 runtime/scripts/feedback-triage.py:31 runtime/scripts/model_evidence_campaign.py:28 runtime/scripts/model_intelligence.py:26 SKILL.md:36
📁 ファイルシステムへのアクセス (50)
⚡ スクリプトを含む (22)
🔑 環境変数 (15)
監査者: codex

2026年9月19日 10:47

The review confirmed intentional high-impact capabilities: external provider execution, repository-content transmission, verifier command execution, and limited private configuration access. Most static matches are false positives from defensive validation, documentation, compact schemas, or fixed local commands. Default session mode lacks host containment, and 589 lower-priority static matches remain outside the supplied adjudication set. Static review was capped at 400/989 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

92
スキャンされたファイル
38,537
解析済み行数
20
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (3)

高
Approved repository content is transmitted to an external provider
Scoped files or an entire approved worktree can be readable and transmissible to Google or Gemini. Digest approval reduces accidental scope changes but does not eliminate third-party disclosure.
The skill explicitly documents provider-readable content, whole-worktree transmission, and the need to remove secrets before launch.
高
Default session isolation retains ambient user authority
The default session mode gives AGY normal user filesystem and network authority outside the staged workspace. Scope reconciliation cannot prevent unobserved reads or network activity.
Both the primary instructions and security guide state that session mode has no host containment and cannot observe access outside the stage.
高
Native mode grants broad Keychain helper and listener authority
Native mode can expose wildcard listeners and broader same-user Keychain operations through the security helper. Approval does not technically limit helper operations to one AGY token.
The security guide explicitly states that wildcard binds are possible and Keychain reads, additions, changes, and deletions may be allowed.
機能レビュー項目 (12)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Hidden file in home directory
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The optional account phase reads ~/.gemini/antigravity-cli/settings.json from the user's home directory. The action is documented and explicit, but it accesses private tool configuration.
高
Process exec
(allow process-exec
The native sandbox profile explicitly allows the provider process to execute the bound target and tools from staged and system paths. This is required functionality, but it grants meaningful command-execution authority.
高
Python os.exec variants
os.execvpe(command[0], command, dict(os.environ))
The no-shell verifier replaces the process with a caller-selected, validated argv command. Validation limits parsing attacks, but the feature intentionally executes external project tooling.
高
Python subprocess.Popen · 2 件
process = subprocess.Popen(
This Popen launches the selected verification command inside the prepared containment profile. Verification can execute repository code, so the documented approval and isolation controls remain security-critical.
中
Hidden file access
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The optional account phase opens ~/.gemini/antigravity-cli/settings.json to display permission settings. This is intentional diagnostics, but it is genuine hidden-file access.
中
Unix shell invocation · 2 件
/bin/bash -c "${verify_specs[$i]}"
Shell verification passes the selected verification specification to /bin/bash -c. This intentionally supports arbitrary shell commands and therefore carries command-injection and project-code execution risk.
低
Python environment access
if name in os.environ:
The verifier reads explicitly named values from the caller environment. The opt-in and private-pipe design reduce risk, but approved names may contain credentials.
低
Python environment access
(os.fsencode(name), b"\0", os.fsencode(os.environ[name]), b"\0")
This line serializes approved environment values into the private verifier payload. Credential acknowledgements are enforced, but sensitive values still cross into executed verification code.
低
Python environment access
os.execvpe(command[0], command, dict(os.environ))
The validated verifier receives the gate's environment through execvpe. The environment is sanitized and opt-in, but any approved secret becomes accessible to project tooling.
低
Python environment access
environment = os.environ.copy()
Feedback triage copies the ambient environment before invoking an authenticated GitHub CLI request. Fixed GitHub routing limits misuse, but the child can receive ambient GitHub credentials.

リスク要因

⚙️ 外部コマンド (50)
README.md:56 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:71 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:80 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:81 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:82 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:251 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:252 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:286 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:287-289 runtime/agy-worker.sh:14 runtime/agy-worker.sh:15 runtime/agy-worker.sh:1262 runtime/agy-worker.sh:1263 runtime/agy-worker.sh:1300 runtime/agy-worker.sh:25 runtime/agy-worker.sh:30 runtime/agy-worker.sh:237 runtime/agy-worker.sh:464 runtime/agy-worker.sh:473-475 runtime/agy-worker.sh:497 runtime/agy-worker.sh:498 runtime/agy-worker.sh:499 runtime/agy-worker.sh:603 runtime/agy-worker.sh:604 runtime/agy-worker.sh:649 runtime/agy-worker.sh:650 runtime/agy-worker.sh:651 runtime/agy-worker.sh:652 runtime/agy-worker.sh:663 runtime/agy-worker.sh:685 runtime/agy-worker.sh:690 runtime/agy-worker.sh:692 runtime/agy-worker.sh:696 runtime/agy-worker.sh:720-725 runtime/agy-worker.sh:901-906 runtime/agy-worker.sh:980 runtime/agy-worker.sh:1009-1011 runtime/agy-worker.sh:1043-1054 runtime/agy-worker.sh:1225 runtime/agy-worker.sh:1226 runtime/agy-worker.sh:1306 runtime/agy-worker.sh:15-1262 runtime/benchmark.sh:5 runtime/codex-usage-report.sh:5 runtime/delegation-policy.sh:5 runtime/doctor.sh:21 runtime/doctor.sh:32 runtime/doctor.sh:37-38 runtime/doctor.sh:85-86 runtime/doctor.sh:146-147
🌐 ネットワークアクセス (43)
references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:25 runtime/compat/agy-version-manifest.json:20 runtime/compat/agy-version-manifest.json:64 runtime/compat/agy-version-manifest.json:111 runtime/compat/agy-version-manifest.json:163 runtime/compat/agy-version-manifest.json:212 runtime/compat/agy-version-manifest.json:257 runtime/compat/agy-version-manifest.json:277 runtime/compat/agy-version-manifest.json:303 runtime/compat/agy-version-manifest.json:347 runtime/compat/model-effort-matrix.schema.json:2 runtime/compat/model-effort-matrix.schema.json:3 runtime/compat/version-manifest.schema.json:2 runtime/schemas/benchmark-plan.schema.json:1 runtime/schemas/benchmark-result.schema.json:1 runtime/schemas/delegation-policy.schema.json:2 runtime/schemas/evidence-receipt.schema.json:2 runtime/schemas/job-state.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-preview.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-summary.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate-preview.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate.schema.json:2 runtime/schemas/model-evidence-campaign-evaluation.schema.json:2 runtime/schemas/model-evidence-campaign-plan.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:156 runtime/schemas/model-intelligence-advisory.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:85 runtime/schemas/model-recommendation.schema.json:2 runtime/schemas/model-selection.schema.json:2 runtime/schemas/swebench-workflow-study-advisory.schema.json:1 runtime/schemas/swebench-workflow-study-report.schema.json:1 runtime/schemas/worker-result.provider.schema.json:2 runtime/schemas/worker-result.schema.json:2 runtime/schemas/workflow-state.schema.json:2 runtime/scripts/codex_usage_report.py:726 runtime/scripts/compatibility.py:245 runtime/scripts/compatibility.py:246 runtime/scripts/feedback-triage.py:31 runtime/scripts/model_evidence_campaign.py:28 runtime/scripts/model_intelligence.py:26 SKILL.md:36
📁 ファイルシステムへのアクセス (50)
⚡ スクリプトを含む (22)
🔑 環境変数 (15)
監査者: codex

2026年9月12日 18:26

Most reviewed matches are false positives from documentation, schemas, validation literals, fixed Git commands, and type annotations. Confirmed risks are provider execution, approved verifier execution, legacy shell verification, selected environment forwarding, and opt-in access to Antigravity user settings. No prompt injection or exfiltration intent was found, but 565 capped static matches still require manual review before automatic publication. Static review was capped at 400/965 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

92
スキャンされたファイル
37,573
解析済み行数
17
レビュー項目
0
誤検知を無視
機能レビュー項目 (12)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Hidden file in home directory
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The optional account diagnostic reads ~/.gemini/antigravity-cli/settings.json and prints permission policy values. This is explicit but real access to private user configuration outside the repository.
高
Python os.exec variants
os.execvpe(command[0], command, dict(os.environ))
The verifier executor replaces its process with a caller-approved command after argv validation. It avoids shell parsing, but intentionally executes project tooling with the supplied environment.
高
Python subprocess.Popen · 2 件
process = subprocess.Popen(
This call launches the approved verifier argv with the worker's process authority. Containment and limits reduce exposure, but project verification commands can execute repository code.
高
Unix shell invocation · 2 件
/bin/bash -c "${verify_specs[$i]}"
Legacy verification passes a free-form verifier specification to /bin/bash -c. Any untrusted interpolation in that approved string can execute unintended shell commands.
中
Hidden file access
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The optional account diagnostic reads ~/.gemini/antigravity-cli/settings.json and prints permission policy values. This is explicit but real access to private user configuration outside the repository.
低
Python environment access
if name in os.environ:
The verifier path reads explicitly named environment variables, which may include credentials. This access is opt-in but can expose those values to an executed verifier.
低
Python environment access
(os.fsencode(name), b"\0", os.fsencode(os.environ[name]), b"\0")
This line serializes explicitly selected environment values into a private verifier pipe. The control is deliberate, but credential values can reach verifier processes.
低
Python environment access
os.execvpe(command[0], command, dict(os.environ))
The approved verifier command inherits the sanitized process environment through os.execvpe. Any explicitly allowed credential variables become available to that command.
低
Python environment access
environment = os.environ.copy()
The GitHub feedback fetch copies the current environment before launching gh, so authentication variables can reach that networked child. The operation is explicit and metadata-only.
低
Python environment access
environment = {name: os.environ[name] for name in allowed if name in os.environ}
The provider environment includes caller-selected variable names after validation. This intentionally permits approved environment values, including possible secrets, to reach Antigravity.

リスク要因

⚙️ 外部コマンド (50)
README.md:56 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:39 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:48 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:49 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:50 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:212 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:213 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:244 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:245-247 runtime/agy-worker.sh:14 runtime/agy-worker.sh:15 runtime/agy-worker.sh:1262 runtime/agy-worker.sh:1263 runtime/agy-worker.sh:1300 runtime/agy-worker.sh:25 runtime/agy-worker.sh:30 runtime/agy-worker.sh:237 runtime/agy-worker.sh:464 runtime/agy-worker.sh:473-475 runtime/agy-worker.sh:497 runtime/agy-worker.sh:498 runtime/agy-worker.sh:499 runtime/agy-worker.sh:603 runtime/agy-worker.sh:604 runtime/agy-worker.sh:649 runtime/agy-worker.sh:650 runtime/agy-worker.sh:651 runtime/agy-worker.sh:652 runtime/agy-worker.sh:663 runtime/agy-worker.sh:685 runtime/agy-worker.sh:690 runtime/agy-worker.sh:692 runtime/agy-worker.sh:696 runtime/agy-worker.sh:720-725 runtime/agy-worker.sh:901-906 runtime/agy-worker.sh:980 runtime/agy-worker.sh:1009-1011 runtime/agy-worker.sh:1043-1054 runtime/agy-worker.sh:1225 runtime/agy-worker.sh:1226 runtime/agy-worker.sh:1306 runtime/agy-worker.sh:15-1262 runtime/benchmark.sh:5 runtime/codex-usage-report.sh:5 runtime/delegation-policy.sh:5 runtime/doctor.sh:21 runtime/doctor.sh:32 runtime/doctor.sh:37-38 runtime/doctor.sh:85-86 runtime/doctor.sh:146-147
📁 ファイルシステムへのアクセス (50)
⚡ スクリプトを含む (22)
🌐 ネットワークアクセス (38)
runtime/compat/agy-version-manifest.json:20 runtime/compat/agy-version-manifest.json:69 runtime/compat/agy-version-manifest.json:114 runtime/compat/agy-version-manifest.json:134 runtime/compat/agy-version-manifest.json:160 runtime/compat/agy-version-manifest.json:204 runtime/compat/model-effort-matrix.schema.json:2 runtime/compat/model-effort-matrix.schema.json:3 runtime/compat/version-manifest.schema.json:2 runtime/schemas/benchmark-plan.schema.json:1 runtime/schemas/benchmark-result.schema.json:1 runtime/schemas/delegation-policy.schema.json:2 runtime/schemas/evidence-receipt.schema.json:2 runtime/schemas/job-state.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-preview.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-summary.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate-preview.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate.schema.json:2 runtime/schemas/model-evidence-campaign-evaluation.schema.json:2 runtime/schemas/model-evidence-campaign-plan.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:156 runtime/schemas/model-intelligence-advisory.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:85 runtime/schemas/model-recommendation.schema.json:2 runtime/schemas/model-selection.schema.json:2 runtime/schemas/swebench-workflow-study-advisory.schema.json:1 runtime/schemas/swebench-workflow-study-report.schema.json:1 runtime/schemas/worker-result.provider.schema.json:2 runtime/schemas/worker-result.schema.json:2 runtime/schemas/workflow-state.schema.json:2 runtime/scripts/codex_usage_report.py:726 runtime/scripts/compatibility.py:245 runtime/scripts/compatibility.py:246 runtime/scripts/feedback-triage.py:31 runtime/scripts/model_evidence_campaign.py:28 runtime/scripts/model_intelligence.py:26
🔑 環境変数 (15)
監査者: claude

2026年9月6日 12:11

All 400 presented static findings were adjudicated individually. Most matches are benign validation, documentation, schema, or bounded orchestration patterns, but account configuration access and legacy shell verification are confirmed risks. The skill also explicitly allows provider execution with normal filesystem and network authority in session mode, so operators must treat it as a delegation tool rather than a sandbox. Static review was capped at 400/962 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

92
スキャンされたファイル
37,454
解析済み行数
10
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (1)

高
Unconfined Provider Execution
The skill states that whole-worktree content may be transmitted to Google or Gemini and that session mode gives AGY normal user filesystem and network authority. A provider task can therefore affect or disclose resources beyond the intended worktree unless the operator uses scoped content and stronger containment.
The documented execution boundary explicitly says the entire worktree may be readable and transmissible, while session mode has no AGY sandbox or native host containment.
機能レビュー項目 (4)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Hidden file in home directory
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The account phase reads ~/.gemini/antigravity-cli/settings.json and reports its permission configuration. This is an intentional account inspection, but it accesses user-owned configuration outside the worktree.
高
Hidden file access
p = os.path.expanduser("~/.gemini/antigravity-cli/settings.json")
The account phase reads ~/.gemini/antigravity-cli/settings.json and reports its permission configuration. This is an intentional account inspection, but it accesses user-owned configuration outside the worktree.
高
Unix shell invocation · 2 件
/bin/bash -c "${verify_specs[$i]}"
The legacy shell verifier executes verify_specs through /bin/bash -c. An untrusted verifier specification can therefore run arbitrary commands, even though this mode is explicitly selected by the driver.

リスク要因

⚙️ 外部コマンド (50)
README.md:56 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:39 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:48 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:49 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:50 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:212 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:213 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:244 references/PROJECT_LIFECYCLE_AND_VERIFICATION.md:245-247 runtime/agy-worker.sh:14 runtime/agy-worker.sh:15 runtime/agy-worker.sh:1262 runtime/agy-worker.sh:1263 runtime/agy-worker.sh:1300 runtime/agy-worker.sh:25 runtime/agy-worker.sh:30 runtime/agy-worker.sh:237 runtime/agy-worker.sh:464 runtime/agy-worker.sh:473-475 runtime/agy-worker.sh:497 runtime/agy-worker.sh:498 runtime/agy-worker.sh:499 runtime/agy-worker.sh:603 runtime/agy-worker.sh:604 runtime/agy-worker.sh:649 runtime/agy-worker.sh:650 runtime/agy-worker.sh:651 runtime/agy-worker.sh:652 runtime/agy-worker.sh:663 runtime/agy-worker.sh:685 runtime/agy-worker.sh:690 runtime/agy-worker.sh:692 runtime/agy-worker.sh:696 runtime/agy-worker.sh:720-725 runtime/agy-worker.sh:901-906 runtime/agy-worker.sh:980 runtime/agy-worker.sh:1009-1011 runtime/agy-worker.sh:1043-1054 runtime/agy-worker.sh:1225 runtime/agy-worker.sh:1226 runtime/agy-worker.sh:1306 runtime/agy-worker.sh:15-1262 runtime/benchmark.sh:5 runtime/codex-usage-report.sh:5 runtime/delegation-policy.sh:5 runtime/doctor.sh:21 runtime/doctor.sh:32 runtime/doctor.sh:37-38 runtime/doctor.sh:85-86 runtime/doctor.sh:146-147
📁 ファイルシステムへのアクセス (50)
⚡ スクリプトを含む (22)
🌐 ネットワークアクセス (37)
runtime/compat/agy-version-manifest.json:20 runtime/compat/agy-version-manifest.json:65 runtime/compat/agy-version-manifest.json:85 runtime/compat/agy-version-manifest.json:111 runtime/compat/agy-version-manifest.json:159 runtime/compat/model-effort-matrix.schema.json:2 runtime/compat/model-effort-matrix.schema.json:3 runtime/compat/version-manifest.schema.json:2 runtime/schemas/benchmark-plan.schema.json:1 runtime/schemas/benchmark-result.schema.json:1 runtime/schemas/delegation-policy.schema.json:2 runtime/schemas/evidence-receipt.schema.json:2 runtime/schemas/job-state.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-preview.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-summary.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate-preview.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate.schema.json:2 runtime/schemas/model-evidence-campaign-evaluation.schema.json:2 runtime/schemas/model-evidence-campaign-plan.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:156 runtime/schemas/model-intelligence-advisory.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:85 runtime/schemas/model-recommendation.schema.json:2 runtime/schemas/model-selection.schema.json:2 runtime/schemas/swebench-workflow-study-advisory.schema.json:1 runtime/schemas/swebench-workflow-study-report.schema.json:1 runtime/schemas/worker-result.provider.schema.json:2 runtime/schemas/worker-result.schema.json:2 runtime/schemas/workflow-state.schema.json:2 runtime/scripts/codex_usage_report.py:726 runtime/scripts/compatibility.py:245 runtime/scripts/compatibility.py:246 runtime/scripts/feedback-triage.py:31 runtime/scripts/model_evidence_campaign.py:28 runtime/scripts/model_intelligence.py:26
🔑 環境変数 (15)
監査者: codex

2026年8月31日 11:24

Of 400 static findings, 396 are lexical false positives from schema punctuation, defensive validation, documentation, or bounded local tooling. Confirmed risks are the external AGY launch, caller-selected verifier execution, and two legacy shell-verification paths. Default provider dispatch also creates a documented high-impact repository disclosure risk unless operators use a narrow approved scope. Static review was capped at 400/889 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

111
スキャンされたファイル
34,779
解析済み行数
10
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (1)

高
Repository Content Can Reach an External Provider
Default dispatch makes the disposable worktree readable and potentially transmissible to Google or Gemini. The skill requires approval and offers scoped staging, but sensitive repository data remains exposed when operators approve broad scope.
Both files explicitly state that the full worktree may be provider-readable and potentially transmitted. They also document approval and scoped-staging mitigations.
機能レビュー項目 (4)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Python os.exec variants
os.execvpe(command[0], command, dict(os.environ))
os.execvpe executes a caller-selected verifier program after argv validation. Shell parsing is excluded, but an approved verifier can still execute arbitrary local code with its allowed environment.
高
Python subprocess.Popen
process = subprocess.Popen(
This Popen launches the external AGY provider process with repository work as its operating context. Approval and executable binding reduce abuse, but provider execution and data exposure remain material risks.
中
Unix shell invocation · 2 件
/bin/bash -c "${verify_specs[$i]}"
The gate executes a caller-supplied verification specification with /bin/bash -c. Explicit legacy-shell and access acknowledgements mitigate accidental use, but approved text has full shell semantics.

リスク要因

⚙️ 外部コマンド (50)
📁 ファイルシステムへのアクセス (50)
⚡ スクリプトを含む (20)
🌐 ネットワークアクセス (47)
runtime/compat/agy-version-manifest.json:13 runtime/compat/agy-version-manifest.json:37 runtime/compat/agy-version-manifest.json:64 runtime/compat/model-effort-matrix.schema.json:2 runtime/compat/model-effort-matrix.schema.json:3 runtime/compat/persona-evidence.schema.json:2 runtime/compat/persona-registry.schema.json:2 runtime/compat/version-manifest.schema.json:2 runtime/schemas/benchmark-plan.schema.json:1 runtime/schemas/benchmark-result.schema.json:1 runtime/schemas/delegation-policy.schema.json:2 runtime/schemas/evidence-receipt.schema.json:2 runtime/schemas/job-state.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-preview.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-summary.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate-preview.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate.schema.json:2 runtime/schemas/model-evidence-campaign-evaluation.schema.json:2 runtime/schemas/model-evidence-campaign-plan.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:156 runtime/schemas/model-intelligence-advisory.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:85 runtime/schemas/model-recommendation.schema.json:2 runtime/schemas/model-selection.schema.json:2 runtime/schemas/persona-dispatch.schema.json:1 runtime/schemas/persona-human-review.schema.json:1 runtime/schemas/persona-run-evidence.schema.json:1 runtime/schemas/persona-run-manifest.schema.json:2 runtime/schemas/persona-tool-attestation.schema.json:2 runtime/schemas/persona-transition-approval.schema.json:1 runtime/schemas/persona-verifier.schema.json:1 runtime/schemas/persona-version-attestation.schema.json:2 runtime/schemas/swebench-workflow-study-advisory.schema.json:1 runtime/schemas/swebench-workflow-study-report.schema.json:1 runtime/schemas/worker-result.provider.schema.json:2 runtime/schemas/worker-result.schema.json:2 runtime/schemas/workflow-state.schema.json:2 runtime/schemas/workload-profile.schema.json:2 runtime/scripts/codex_usage_report.py:726 runtime/scripts/compatibility.py:245 runtime/scripts/compatibility.py:246 runtime/scripts/feedback-triage.py:31 runtime/scripts/model_evidence_campaign.py:28 runtime/scripts/model_intelligence.py:26 runtime/scripts/persona_registry.py:151
🔑 環境変数 (14)
監査者: codex

2026年8月31日 11:24

Of 400 static findings, 396 are lexical false positives from schema punctuation, defensive validation, documentation, or bounded local tooling. Confirmed risks are the external AGY launch, caller-selected verifier execution, and two legacy shell-verification paths. Default provider dispatch also creates a documented high-impact repository disclosure risk unless operators use a narrow approved scope. Static review was capped at 400/889 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

111
スキャンされたファイル
34,779
解析済み行数
10
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (1)

高
Repository Content Can Reach an External Provider
Default dispatch makes the disposable worktree readable and potentially transmissible to Google or Gemini. The skill requires approval and offers scoped staging, but sensitive repository data remains exposed when operators approve broad scope.
Both files explicitly state that the full worktree may be provider-readable and potentially transmitted. They also document approval and scoped-staging mitigations.
機能レビュー項目 (4)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Python os.exec variants
os.execvpe(command[0], command, dict(os.environ))
os.execvpe executes a caller-selected verifier program after argv validation. Shell parsing is excluded, but an approved verifier can still execute arbitrary local code with its allowed environment.
高
Python subprocess.Popen
process = subprocess.Popen(
This Popen launches the external AGY provider process with repository work as its operating context. Approval and executable binding reduce abuse, but provider execution and data exposure remain material risks.
中
Unix shell invocation · 2 件
/bin/bash -c "${verify_specs[$i]}"
The gate executes a caller-supplied verification specification with /bin/bash -c. Explicit legacy-shell and access acknowledgements mitigate accidental use, but approved text has full shell semantics.

リスク要因

⚙️ 外部コマンド (50)
📁 ファイルシステムへのアクセス (50)
⚡ スクリプトを含む (20)
🌐 ネットワークアクセス (47)
runtime/compat/agy-version-manifest.json:13 runtime/compat/agy-version-manifest.json:37 runtime/compat/agy-version-manifest.json:64 runtime/compat/model-effort-matrix.schema.json:2 runtime/compat/model-effort-matrix.schema.json:3 runtime/compat/persona-evidence.schema.json:2 runtime/compat/persona-registry.schema.json:2 runtime/compat/version-manifest.schema.json:2 runtime/schemas/benchmark-plan.schema.json:1 runtime/schemas/benchmark-result.schema.json:1 runtime/schemas/delegation-policy.schema.json:2 runtime/schemas/evidence-receipt.schema.json:2 runtime/schemas/job-state.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-preview.schema.json:2 runtime/schemas/model-evidence-campaign-advisory-summary.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate-preview.schema.json:2 runtime/schemas/model-evidence-campaign-aggregate.schema.json:2 runtime/schemas/model-evidence-campaign-evaluation.schema.json:2 runtime/schemas/model-evidence-campaign-plan.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:2 runtime/schemas/model-evidence-campaign-record.schema.json:156 runtime/schemas/model-intelligence-advisory.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:85 runtime/schemas/model-recommendation.schema.json:2 runtime/schemas/model-selection.schema.json:2 runtime/schemas/persona-dispatch.schema.json:1 runtime/schemas/persona-human-review.schema.json:1 runtime/schemas/persona-run-evidence.schema.json:1 runtime/schemas/persona-run-manifest.schema.json:2 runtime/schemas/persona-tool-attestation.schema.json:2 runtime/schemas/persona-transition-approval.schema.json:1 runtime/schemas/persona-verifier.schema.json:1 runtime/schemas/persona-version-attestation.schema.json:2 runtime/schemas/swebench-workflow-study-advisory.schema.json:1 runtime/schemas/swebench-workflow-study-report.schema.json:1 runtime/schemas/worker-result.provider.schema.json:2 runtime/schemas/worker-result.schema.json:2 runtime/schemas/workflow-state.schema.json:2 runtime/schemas/workload-profile.schema.json:2 runtime/scripts/codex_usage_report.py:726 runtime/scripts/compatibility.py:245 runtime/scripts/compatibility.py:246 runtime/scripts/feedback-triage.py:31 runtime/scripts/model_evidence_campaign.py:28 runtime/scripts/model_intelligence.py:26 runtime/scripts/persona_registry.py:151
🔑 環境変数 (14)
監査者: codex

2026年8月29日 19:38

The 400 presented static matches are false positives caused by documentation syntax, compact JSON, defensive validation, and declared repository orchestration. One medium confidentiality risk remains: approved repository content is transmitted to the external agy provider, and 366 capped static matches still require manual review before automatic publication. Static review was capped at 400/766 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

91
スキャンされたファイル
23,947
解析済み行数
6
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (1)

中
Approved Repository Content Leaves the Local Host
The workflow sends approved task and readable repository content to the external agy provider. Explicit scope approval and secret exclusion reduce, but do not remove, confidentiality risk.
Both files explicitly state that agy is provider-backed and requires approval before repository content is sent.

リスク要因

⚡ スクリプトを含む (18)
⚙️ 外部コマンド (50)
📁 ファイルシステムへのアクセス (50)
🌐 ネットワークアクセス (33)
runtime/compat/model-effort-matrix.schema.json:2 runtime/compat/model-effort-matrix.schema.json:3 runtime/compat/persona-evidence.schema.json:2 runtime/compat/persona-registry.schema.json:2 runtime/schemas/benchmark-plan.schema.json:1 runtime/schemas/benchmark-result.schema.json:1 runtime/schemas/delegation-policy.schema.json:2 runtime/schemas/evidence-receipt.schema.json:2 runtime/schemas/job-state.schema.json:2 runtime/schemas/model-intelligence-advisory.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:2 runtime/schemas/model-intelligence-evidence.schema.json:85 runtime/schemas/model-recommendation.schema.json:2 runtime/schemas/model-selection.schema.json:2 runtime/schemas/persona-dispatch.schema.json:1 runtime/schemas/persona-human-review.schema.json:1 runtime/schemas/persona-run-evidence.schema.json:1 runtime/schemas/persona-run-manifest.schema.json:2 runtime/schemas/persona-tool-attestation.schema.json:2 runtime/schemas/persona-transition-approval.schema.json:1 runtime/schemas/persona-verifier.schema.json:1 runtime/schemas/persona-version-attestation.schema.json:2 runtime/schemas/swebench-workflow-study-advisory.schema.json:1 runtime/schemas/swebench-workflow-study-report.schema.json:1 runtime/schemas/worker-result.provider.schema.json:2 runtime/schemas/worker-result.schema.json:2 runtime/schemas/workload-profile.schema.json:2 runtime/scripts/codex_usage_report.py:726 runtime/scripts/compatibility.py:243 runtime/scripts/compatibility.py:244 runtime/scripts/feedback-triage.py:31 runtime/scripts/model_intelligence.py:26 runtime/scripts/persona_registry.py:151
🔑 環境変数 (5)
監査者: codex

2026年8月29日 10:25

Most static matches are false positives caused by Markdown formatting, minified JSON Schemas, defensive control-character checks, and fixed argv subprocesses. Confirmed risks include external AGY dispatch, unrestricted driver-supplied Bash verification, and inherited environment exposure. The skill also embeds system-style persona prompts and intentionally transmits approved repository content to Google or Gemini services. Static review was capped at 400/724 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

82
スキャンされたファイル
21,884
解析済み行数
13
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (4)

高
Embedded System-Style Persona Instructions
Three persona files label their content "Agent System Instructions" and direct downstream agents with "You are" role commands. These prompts can steer model behavior when dispatched.
The files explicitly identify the text as system instructions and immediately assign roles to a downstream agent. The behavior is intentional, but the system-style authority is unambiguous.
高
AGY Launch Inherits Ambient Environment
The provider executable is launched without an explicit sanitized environment. Python therefore passes the complete controller environment, including unrelated credentials, to AGY.
The Popen call supplies argv, executable, cwd, streams, session, and umask but no env argument. Python inherits the parent environment in this case.
高
Verification Shell Retains Ambient Secrets
Driver-provided verification strings run through Bash while most ambient variables remain available. A malicious or mistaken check can read or transmit local credentials.
The gate environment starts from os.environ and removes selected shell and Python variables, while qa-gate executes each verification value using /bin/bash -c.
中
External Provider Receives Approved Repository Content
The workflow intentionally sends task and readable repository content to Google or Gemini services after user approval. Incorrect scope approval can disclose proprietary source.
SKILL.md explicitly identifies AGY as an external Google or Gemini service and requires approval before sending task and repository content.
機能レビュー項目 (4)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Python subprocess.Popen
process = subprocess.Popen(
This Popen launches the external AGY executable with the repository workdir and provider prompt arguments. The launch is intentional and approval-gated, but it creates real external-command and data-disclosure risk.
高
Unix shell invocation
exec /bin/bash -c "$vcmd"
The gate executes each driver-supplied verification string through /bin/bash -c. This is deliberate functionality, but a mistaken or manipulated verification value can run arbitrary local shell commands.
高
Python environment access
gate_environment = os.environ.copy()
The gate environment begins as a full copy of os.environ and later reaches driver-supplied shell verification. Several shell variables are removed, but unrelated credentials remain available to executed commands.
中
Python environment access
probe_environment = dict(os.environ)
The AGY version and help probes receive a copy of the complete ambient environment. This is a bounded local probe, but the external executable can still read unrelated inherited secrets.

リスク要因

⚡ スクリプトを含む (18)
⚙️ 外部コマンド (50)
📁 ファイルシステムへのアクセス (50)
🌐 ネットワークアクセス (28)
🔑 環境変数 (4)
監査者: codex