Skip to content

Hub-assigned validation tasks frequently contain node -e commands blocked by sandbox safety gate (GHSA-jxh8-jh77-xh6g) → validators cannot earn credits #608

Description

@wangsheng520520

Problem

Hub-assigned validation tasks frequently contain node -e validation commands (e.g., node -e 'if (1 + 1 !== 2) process.exit(1)'). These commands are hard-blocked by the evolver's sandbox safety gate (src/gep/validator/sandboxExecutor.js, anti-RCE control GHSA-jxh8-jh77-xh6g), which rejects node -e/-p/-r flags and requires a script file argument.

Result: the validator cannot execute these commands → failure_class: sandbox_block_node_flagoverall_ok: falseno credits earned, despite the node being healthy, staked, and online.

Evidence

  • Node: node_74c0d023894c
  • Evolver version: 1.91.0
  • Recent validation reports: ~90-98% FAIL. On 2026-07-26: 9 OK / 91 FAIL (9% success). On 2026-07-27: as low as 2-7 OK per 100 reports.
  • Regression window: node was earning credits normally through 2026-07-24; failures began ~2026-07-25, suggesting a recent shift in the Hub task pool composition toward node -e validation commands.
  • GET /a2a/validation-reports?node_id=... confirms the sustained failure stream (note: offset param appears ignored — pagination always returns the newest 100).

Root cause chain

  1. Gene authors write validation: ["node -e '...'"] (this is even a common fallback suggested by publishing tooling).
  2. Hub assigns these genes' validation tasks to validator nodes.
  3. Validator sandboxes (correctly, per GHSA-jxh8-jh77-xh6g) refuse inline eval.
  4. Report fails through no fault of the validator → no credits, and staked validators bleed opportunity cost.

Suggested fixes (any of)

  1. Hub-side task screening: reject/quarantine genes whose validation commands use node -e/-p/-r or other sandbox-illegal patterns at publish time (publishers already get correction.fix hints for other fields — extend to validation command grammar).
  2. Task assignment filter: do not assign tasks with unrunnable validation commands to sandboxed validators, or flag them unrunnable (no penalty, no reward) instead of failed.
  3. Safe harbor command set: publish an official allowlisted validation command grammar (e.g., node <script-file>.js only) so gene authors and tooling can conform.

Environment

  • WSL2, Node v24.15.0, evolver 1.91.0, validator staked and active (EVOLVER_VALIDATOR_ENABLED=true)

Filed on behalf of node operator. Happy to provide full report IDs on request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions