feat(scanners): add Endor dependency reachability analysis - #55
jesse-merhi wants to merge 5 commits into
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs real behavior proof before merge. Reviewed September 16, 2026, 2:56 AM ET / 06:56 UTC (Revision 3). ClawSweeper reviewWhat this changesAdds a Docker-only Endor scanner for JavaScript and TypeScript dependencies, with raw findings, credential discovery, CLI summaries, runtime-image instructions, and regression tests. Merge readiness⛔ Blocked before merge - 4 items remain The prior URL-preflight finding is resolved. This remains useful work absent from current main, but the acknowledged credential-isolation gap still blocks merge. Likely related people: jesse-merhi and Patrick Erichsen are routing candidates based on earlier scanner and sandbox work. Priority: P2 Review scores
Verification
How this fits togetherClawScan selects scanner adapters for local skills and plugins, runs them in Docker, and records their evidence for reporting or an external judge. The new adapter sends a disposable project copy through Endor dependency analysis and returns findings or an explicit failure. flowchart TD
A[Target and scanner selection] --> B{Supported target kind}
B -->|Unsupported| C[Skipped result]
B -->|Local project| D[Credential and Docker checks]
D --> E[Disposable project copy]
E --> F[Endor dependency analysis]
F --> G[Endor API and dependency registries]
F --> H[Raw findings and scan status]
Before merge
Findings
Agent review detailsSecurityNeeds attention: Image pinning, checksum verification, and disabled hooks are useful safeguards, but credential isolation during dependency resolution remains unproven. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Preserve raw Endor evidence while ensuring dependency resolution cannot expose scanner credentials to target-selected destinations, with final-request proof of that boundary. Do we have a high-confidence way to reproduce the issue? Unclear for the remaining security concern: the reported probe stopped before the registry request, so no credential leak or isolation has been reproduced. The previous URL-preflight defect is resolved by the inspected capability gating and regression coverage. Is this the best way to solve the issue? The registry-based adapter and disposable workspace fit the existing architecture, but security suitability remains unclear until credential isolation is established through the actual dependency path. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 84ee99ce015b. LabelsLabel justifications:
EvidenceSecurity concerns:
What I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (2 earlier review cycles)
|
|
/clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Add
clawscan --scanner endorfor JavaScript and TypeScript dependency and function-reachability analysis in Docker. The companion ClawHub PR #3742 runs it from the background plugin scan queue.The adapter preserves raw findings and reports command failures, invalid output and upstream analysis errors. Unsupported URLs now skip before credential or Docker preflight; local plugin targets retain their credential checks.
A sanitized input copy is mounted read-only. Git and Endor run in a private container copy so non-root Linux hosts can remove their input after success or failure. Git trusts only that private path, and install scripts and Git hooks are disabled.
Evidence
--scanner endorand a URL, no Endor credentials and no Docker on PATH now exits 0 with a skipped result. A local package in the same environment still exits 1 for missing credentials. Full-entrypoint regression tests cover both paths and confirm Docker is never checked for the URL.go test -count=1 ./...andgo vet ./...passed on the URL fix with Go 1.27.0 on Darwin ARM64. Focused native and independent review found no regressions in that fix. Hosted CI and both CodeQL analyses passed on this head.Remaining review blockers
Credential isolation from target-controlled package-manager configuration is unresolved. A real Endor 1.7.1115 probe used synthetic credentials and a local capture endpoint with
.npmrcinterpolation. Endor stopped at its required tenantsystem-configresponse before dependency resolution. Zero requests reached the target registry; this neither confirms a leak nor proves isolation. The next check needs a controlled authenticated tenant or a valid vendor API fixture and must observe the final registry request.The preexisting shared Docker runner can leave a container running after its client is killed on timeout. Generic container teardown remains a separate follow-up before hosted rollout. No package or image has been released. This PR remains draft while the credential boundary is unresolved.
Change Breakdown