Skip to content

EXEC-01: State files lack execute permissions

Property Value
Severity medium
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 executable state files found under /opt. Binary replacement via S3 would be blocked.

Example failures:

  • … file(s) in the state directory have execute permissions. An attacker who can replace these via S3 could achieve code execution on the host.
  • 3 file(s) in the state directory have execute permissions.

How to fix

  • Remove execute permissions from all files downloaded from S3: chmod -x /opt/*/app_* /opt/*/*.py. Ensure the download routine does not set the execute bit (boto3's download_file uses 0644 by default).
  • Remove execute permissions from all files downloaded from S3.

After the fix, scan again: the check should report PASS.

When it is not assessed

SKIP:

  • No instance ID specified; skipping check.

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: executable_files

Generated from untrust 1.3.0 (commit 7ef462d9a0c3).