T05 · Unauthorized Access and Privilege Escalation
Warning
- Location
- scripts/nova_deploy.py:55
- Finding
- Unrestricted Domain Egress Enabled by Default<![CDATA[ ## Vulnerability Details **File Location**: `scripts/nova_deploy.py:55-69` **Vulnerability Type**: Excessive network permissions **Risk Level**: Medium ### Vulnerable Code ```python def make_advanced_config( port: int, directory: str = "/", enable_kms: bool = False, enable_s3: bool = False, enable_wallet: bool = False, enable_helios: bool = False, helios_chains: list | None = None, ) -> dict: return { "directory": directory, "app_listening_port": port, "egress_allow": ["**"], "enable_decentralized_kms": enable_kms, "enable_persistent_storage": enable_s3, "enable_s3_storage": enable_s3, ``` ### Technical Analysis The deployment configuration grants applications outbound access to every domain name by default through `egress_allow: ["**"]`. Basic application creation, build, health checking, and deployment do not inherently require unrestricted application-level egress. The wildcard does not cover direct IP addresses according to the project documentation, but it still permits communication with any attacker-controlled domain. If application code or one of its dependencies is compromised, this permission provides a ready-made channel for command-and-control traffic or data exfiltration. This exceeds least privilege because egress is enabled independently of the features or external services selected by the user. ### Attack Path 1. A malicious dependency, compromised source repository, or application vulnerability results in attacker-controlled code running inside the enclave application. 2. The generated deployment already permits connections to all domain names. 3. The attacker registers or controls an external domain. 4. The compromised application sends enclave data, service responses, or application secrets to that domain. 5. Network policy does not block the transmission because the wildcard authorizes it. ### Impact Assessment An attacker who obtains code ex ...[truncated 416 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Default `egress_allow` to an empty list. - Add explicit command-line options such as repeated `--allow-egress <host>` arguments. - Populate the allowlist only with domains required by enabled features. - Require an explicit acknowledgement before allowing `"**"`. - Provide narrowly scoped presets for S3, KMS, and supported chain RPC services. - Add an `egress_deny` policy for metadata, private, loopback, and link-local address ranges unless a specific platform feature demonstrably requires them. - Document that wildcard egress materially weakens enclave isolation. ]]>
