T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:143- Finding
Mutable Remote Flake Retrieval and Execution
- Content
View full analysis
' \ --accept-flake-config \ --command -- ``` ```bash docker run -v nix-store:/nix -v "$PWD:/workspace" -w /workspace --rm nixos/nix nix \ --extra-experimental-features 'nix-command flakes' \ develop 'https://nixomatic.com/?p=' \ --accept-flake-config \ --command -- ``` ### Technical Analysis The skill directs the agent to retrieve and evaluate a Nix flake from the external `nixomatic.com` service and then execute software resolved through that flake. The service URL is not pinned to an immutable flake revision or verified against an expected content hash. Consequently, the effective code executed by the skill can change after the skill itself has been reviewed. A compromise of the service, its generated flake, its package resolution process, or a configured binary cache could introduce different executable content without requiring any change to `SKILL.md`. The use of `--accept-flake-config` further expands the trust boundary by automatically accepting configuration supplied by the remote flake. Such configuration can influence Nix behavior, including substituters and trusted public keys. The security claims at lines 270-271 are descriptive assertions and do not technically enforce source integrity. ### Attack Path 1. A user requests a tool that is not installed locally. 2. The skill constructs a URL under `https://nixomatic.com/`. 3. Nix downloads and evaluates the remotely generated flake. 4. The command automatically accepts configuration declared by that flake. 5. An attacker who has compromised the service or an associated supply-chain component changes the generated environment or resolved package ...[truncated 808 chars]- Remediation
View remediation
