RESTART-01: Crash handler re-download persistence¶
| Property | Value |
|---|---|
| Severity | high |
| Platform | AWS Nitro Enclaves |
| Lifecycle stage | runtime |
| Mode | Active: runs fixed read-only commands on the host. Skipped with --read-only. |
What a failure enables¶
- RCE as root in enclave
What it checks¶
It passes when:
- No enclave services have dangerous restart policies.
- No enclave-related services found with restart policies.
Example failures:
- … enclave service(s) auto-restart on failure: …. If the boot sequence re-downloads state from S3, a single poisoned object persists across every restart.
- 2 enclave service(s) auto-restart on failure: enclave-app.service (Restart=always), enclave-app-networking.service (Restart=on-failure). If the boot sequence re-downloads state from S3, a single poisoned object persists across every restart.
How to fix¶
- Set Restart=no or Restart=on-success for enclave services, or ensure the boot sequence validates integrity (signatures/checksums) of downloaded state before loading it. Automatic restart without input validation creates persistent re-exploitation.
- Set Restart=no or validate integrity of downloaded state before loading.
After the fix, scan again: the check should report PASS.
When it is not assessed¶
SKIP:
- No instance ID specified; skipping check.
ERROR:
- SSM command did not complete within timeout.
- Could not send SSM command: …
Scan inputs¶
The untrust scan options this check reads:
| Option | Description |
|---|---|
--instance-id |
EC2 instance ID running the Nitro Enclave. |
--region |
AWS region. |
Permissions¶
The cloud API calls this check makes, read from the scanner's source:
| Cloud | API call | Permission | Access |
|---|---|---|---|
| AWS | ssm.get_command_invocation |
ssm:GetCommandInvocation |
read |
| AWS | ssm.send_command |
ssm:SendCommand |
run command |
Every AWS scan also calls sts:GetCallerIdentity. See Required permissions for a complete policy.
Evidence recorded¶
Keys in the finding's evidence: all_services, risky_services, services
Generated from untrust 1.3.0 (commit 7ef462d9a0c3).