Skip to content

dream(security-adversarial): pre-pin npx flags bypassed the darwin pin; wrapper now… - #28

Merged
jjohare merged 1 commit into
mainfrom
dream/security-adversarial-2026-10-08
Oct 11, 2026
Merged

jjohare merged 1 commit into
mainfrom
dream/security-adversarial-2026-10-08

Conversation

@jjohare

@jjohare jjohare commented Oct 8, 2026

Copy link
Copy Markdown
Member

Draft PR opened by the dream engine on a GATED ACCEPT night (2026-10-08-dream-machine, run ca8c74e024bc5abf).

Candidate tree f5eb3003700edc109baaec4601ff3360331bf164 was applied in isolation and the required evaluators re-run against it: bench=PASSED, darwin=PASSED. Witness 0fa10caa4075.

A human decides the merge — evaluation is not promotion.

Finding: Given the pin-discipline loop in scripts/darwin-entrypoint.sh (lines 48-73) validates only the darwin version token and passes every other argument through verbatim, when the darwin command carries an npx resolution-control flag before the pinned package (e.g. --registry https://evil.example or -p @evil/shim@9.9.9), then the wrapper does not refuse it at the pin check and the pinned name can resolve to attacker-controlled code; after the patch, every pre-pin dash argument exits 64 while the configured command (npx @metaharness/darwin@0.10.2 evolve . --sandbox mock --mutator ruvllm --ruvllm-url … --ruvllm-model qwen3.8-27B) behaves unchanged.

Gate: ACCEPT upheld: 2 required evaluator(s) passed on candidate tree f5eb3003700e

@jjohare
jjohare marked this pull request as ready for review October 11, 2026 10:33
@jjohare
jjohare merged commit ad2dfc0 into main Oct 11, 2026
7 checks passed
@jjohare
jjohare deleted the dream/security-adversarial-2026-10-08 branch October 11, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant