# Coding AgentのDependency Hallucination／Slopsquatting防御

CURRENT_STATUS: CURRENT
OBSERVATION: SPEC_ONLY
FRESHNESS: CURRENT
PAGE_TYPE: failure_note
CANONICAL_URL: /tools/ea-685-coding-agent-dependency-hallucination-slopsquatting
CLAIM_IDS: none
EVIDENCE_IDS: EVD-EA-685-URL-8E1C83EAF1DC, EVD-EA-685-URL-4693A7218558, EVD-EA-685-URL-AE875C4A049E, EVD-EA-685-URL-B533BC778486, EVD-EA-685-URL-0869A4CCDB56, EVD-EA-685-URL-A7A8FFF2D41F, EA-685-R11-RESEARCH, EA-685-R11-WEB-READBACK
UNKNOWN_IDS: EA-685-UNKNOWN-01
OPS_IDS: none

## Summary
AIが生成した依存パッケージ名は導入候補として扱います。存在確認、正常なhash、provenance、既知脆弱性scanのいずれも単独では安全性を保証しません。導入前の承認identityと、実際に取得するartifactのidentity・bytesを結び付けて確認する運用が必要です。この運用は設計上の提案であり、特定製品の防御率を実証したものではありません。

## Current judgment
USENIX Security 2025の研究は調査対象LLMのpackage hallucinationと同一名の再推薦を報告しています。測定率を現行全モデルへ適用しません。[S1]

## Scope
Coding AgentのDependency Hallucination／Slopsquatting防御

## Confirmed
- USENIX Security 2025の研究は調査対象LLMのpackage hallucinationと同一名の再推薦を報告しています。測定率を現行全モデルへ適用しません。[S1]

pip v26.2.1のhash-checkingは全要求・依存のpinとlocal hashを要求します。index提供hashと独立の承認hashは信頼基点が異なります。複数indexは単純な私有元優先ではなく、extra-index-urlにはdependency confusion警告があります。[S4,S5]

npm provenanceはbuild出所への検証可能な接続であり、悪意あるコードの不在を保証しません。npm auditの既知脆弱性照合とaudit signaturesの署名確認を区別します。ignore-scriptsでもexplicit npm run/test等の意図されたscriptまで無効にはなりません。[S6,S7]

## UNKNOWN
- EA-685-UNKNOWN-01: 現行全LLMの幻覚率、対象組織のtrust root、実resolver/署名挙動、mirror侵害、sandbox、SBOM漏れ、2026再評価preprintのraw再現は未確認です。

## Evidence
- EVD-EA-685-URL-8E1C83EAF1DC (RESEARCH): S1: Spracklen et al., USENIX Security 2025, §5.3 — — https://www.usenix.org/system/files/usenixsecurity25-spracklen.pdf
- EVD-EA-685-URL-4693A7218558 (RESEARCH): S3: Churilov, 2026 preprint v3（要旨確認のみ）— — https://arxiv.org/abs/2605.17062v3
- EVD-EA-685-URL-AE875C4A049E (RESEARCH): S4: pip Secure installs v26.2.1 — — https://pip.pypa.io/en/stable/topics/secure-installs/
- EVD-EA-685-URL-B533BC778486 (RESEARCH): S5: pip install / Finding Packages — — https://pip.pypa.io/en/stable/cli/pip_install/
- EVD-EA-685-URL-0869A4CCDB56 (RESEARCH): S6: npm / Provenance limitations — — https://docs.npmjs.com/generating-provenance-statements/
- EVD-EA-685-URL-A7A8FFF2D41F (RESEARCH): S7: npm-audit v11 docs — — https://docs.npmjs.com/cli/v11/commands/npm-audit/
- EA-685-R11-RESEARCH (RESEARCH): EA-685 監査済みresearch / canonical revision binding
- EA-685-R11-WEB-READBACK (IMPL): EA-685 Web body identity / canonical readback

## Failure / limits
新しく登録された名前、既存publisher侵害、transitive依存、platform別artifact、確認後の再解決、例外導入、install後のimport/run/buildを別々に確認します。正しいhashでも元のコードが悪意ある場合は通過し得ます。script抑制、SBOM、署名、sandboxは個別の防御層であり相互の代替にはなりません。
## Failure / limits
存在・pin・hash・provenance・audit PASSを「安全」「slopsquatting防御済」「幻覚ゼロ」と読み替えないでください。staging candidateは未監査・未公開です。
## Practice
導入許可はreviewed registry/name/version/publisher/source/digestへ限定し、取得bytesとの一致を確認します。未承認名、identity変更、bytes変更、承認期限切れは再reviewへ返します。allowlistの信頼基点が侵害されれば、この設計だけでは防げません。
## Practice
資料照合とoffline synthetic policy fixtureのみです。9ケースの期待結果が一致しました。registry、install、暗号署名、malware判定、LLM API、組織mirrorは試験していません。fixtureのALLOW_FIXTURE_ONLYをproductionの導入許可と扱いません。
## Practice
package manager version、registry/mirror、lockと全依存、artifact digest、承認owner/expiry、scriptとruntime制約、egress、例外監査、秘密情報を含むmanifestの送信先を確認します。
## PUBLIC_CLAIM
AIが生成した依存パッケージ名は導入候補として扱います。存在確認、正常なhash、provenance、既知脆弱性scanのいずれも単独では安全性を保証しません。導入前の承認identityと、実際に取得するartifactのidentity・bytesを結び付けて確認する運用が必要です。この運用は設計上の提案であり、特定製品の防御率を実証したものではありません。

## ESTABLISHED
USENIX Security 2025の研究は調査対象LLMのpackage hallucinationと同一名の再推薦を報告しています。測定率を現行全モデルへ適用しません。[S1]

pip v26.2.1のhash-checkingは全要求・依存のpinとlocal hashを要求します。index提供hashと独立の承認hashは信頼基点が異なります。複数indexは単純な私有元優先ではなく、extra-index-urlにはdependency confusion警告があります。[S4,S5]

npm provenanceはbuild出所への検証可能な接続であり、悪意あるコードの不在を保証しません。npm auditの既知脆弱性照合とaudit signaturesの署名確認を区別します。ignore-scriptsでもexplicit npm run/test等の意図されたscriptまで無効にはなりません。[S6,S7]

## INFERENCE
導入許可はreviewed registry/name/version/publisher/source/digestへ限定し、取得bytesとの一致を確認します。未承認名、identity変更、bytes変更、承認期限切れは再reviewへ返します。allowlistの信頼基点が侵害されれば、この設計だけでは防げません。

## FAILURE_ENVELOPE
新しく登録された名前、既存publisher侵害、transitive依存、platform別artifact、確認後の再解決、例外導入、install後のimport/run/buildを別々に確認します。正しいhashでも元のコードが悪意ある場合は通過し得ます。script抑制、SBOM、署名、sandboxは個別の防御層であり相互の代替にはなりません。

## IMPLEMENTATION_STATE
資料照合とoffline synthetic policy fixtureのみです。9ケースの期待結果が一致しました。registry、install、暗号署名、malware判定、LLM API、組織mirrorは試験していません。fixtureのALLOW_FIXTURE_ONLYをproductionの導入許可と扱いません。

## AVAILABILITY_GATES
package manager version、registry/mirror、lockと全依存、artifact digest、承認owner/expiry、scriptとruntime制約、egress、例外監査、秘密情報を含むmanifestの送信先を確認します。

## UNKNOWN
現行全LLMの幻覚率、対象組織のtrust root、実resolver/署名挙動、mirror侵害、sandbox、SBOM漏れ、2026再評価preprintのraw再現は未確認です。

## STOP_CONDITION
存在・pin・hash・provenance・audit PASSを「安全」「slopsquatting防御済」「幻覚ゼロ」と読み替えないでください。staging candidateは未監査・未公開です。

## SOURCES
- S1: Spracklen et al., USENIX Security 2025, §5.3 — https://www.usenix.org/system/files/usenixsecurity25-spracklen.pdf
- S3: Churilov, 2026 preprint v3（要旨確認のみ）— https://arxiv.org/abs/2605.17062v3
- S4: pip Secure installs v26.2.1 — https://pip.pypa.io/en/stable/topics/secure-installs/
- S5: pip install / Finding Packages — https://pip.pypa.io/en/stable/cli/pip_install/
- S6: npm / Provenance limitations — https://docs.npmjs.com/generating-provenance-statements/
- S7: npm-audit v11 docs — https://docs.npmjs.com/cli/v11/commands/npm-audit/
- T1: EA-685_Evidence_Packet.md / fixtures/dependency_gate.py / results/EA-685.json（監査bundle内の再現資料）

NEXT: /agent/start.json
STOP: This is a knowledge projection, not an execution order.