NVIDIA / NVIDIA/NemoClaw

e2e(hermes): security child-process census changes after restart

Open
#11,082 0 comments 0 reactions 0 assignees View on GitHub
area: ci area: e2e integration: hermes
Dominant language
TypeScript
Stars
22.5k
Forks
3.1k
Avg merge
1d 1h
Merged PRs (30d)
715

Description

## Investigation Summary

- The exact-candidate [PR #11071 E2E run](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523) tested commit 0ddc3ea52efe8a5d63099b92f43cbe0a43c88a01.
- Hermes installation, health, live inference, and managed gateway restart progressed past the path validation failure fixed by #11071.
- The security target then failed because the bounded nemoclaw-start child-process census changed while the test was selecting a stable supervisor set.
- No open issue currently tracks this later security-posture failure.

## Description

The Hermes security target takes two bounded snapshots of child supervisors and requires an identical process set. A legitimate or unstable child transition after gateway restart can change the set between snapshots, so the target fails before completing the remaining posture assertions.

Expected: the test obtains a stable, identity-bound child-supervisor view or reports the exact process transition that prevents stability.

Actual: the child-process census changes during acquisition and the whole security target fails without a separate lifecycle classification.

## Reproduction Steps

1. Run the Hermes security-posture target.
2. Complete installation, health, inference, and managed gateway restart.
3. Acquire the bounded nemoclaw-start child-supervisor census.
4. Observe the process set or identity change between the stability samples.

## Environment

- GitHub Actions Docker E2E
- Candidate: 0ddc3ea52efe8a5d63099b92f43cbe0a43c88a01
- Run: [33915961523](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523)
- Job: [Security: Hermes](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523/job/101163752434)

## Acceptance Criteria

- Capture the exact child process added, removed, or replaced between census samples.
- Distinguish a legitimate supervised lifecycle transition from an unstable or escaped process.
- Use a bounded stabilization rule tied to process identity, not an unbounded retry or a weaker count-only assertion.
- Keep the security posture checks fail-closed for unknown or escaped children.
- The Hermes security-posture target passes repeatedly on the fixing commit.

## Exact Failure

The completed job reported that the nemoclaw-start child supervisor census did not stabilize after four attempts. The first sample contained PID identities 874 and 45916; the second also contained child PID 45920 under 45916. This confirms a changing child lifecycle rather than the earlier Hermes path refusal.

Contributor guide

Open the contributing guide

Research direction

Start by running the Hermes security-posture target from the referenced GitHub Actions Docker E2E job and inspect the nemoclaw-start child-supervisor census acquisition and its stability-sample logs. Done means reporting the exact process transition, distinguishing supervised lifecycle changes from escaped children, using bounded identity-based stabilization, preserving fail-closed checks, and passing repeatedly.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions, typescript
Domain
ci-cd, security, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.