Nyheter
Praksis

10. april 2026

cplt — sandbox for Copilot CLI

cplt kjører GitHub Copilot CLI inne i Apples Seatbelt-sandbox på macOS. Copilot kan jobbe med prosjektet ditt, men kjernen blokkerer tilgang til credentials, secrets og .env-filer.

Hvorfor

Copilot CLI kjører vilkårlige kommandoer på maskina di. En ondsinnet postinstall-hook eller et prompt injection-angrep kan lese ~/.ssh, ~/.config/gcloud og .env-filer uten at du merker det.

Supply chain-angrep det siste året viser at dette skjer i praksis:

  • Shai-Hulud — npm-orm som spredde seg til 700+ pakker via stjålne tokens
  • axios-trojaneren — kapra npm-pakke som installerte en RAT når en AI-agent kjørte npm install
  • CamoLeak — prompt injection i PR-kommentarer fikk Copilot til å eksfiltrere kode (CVSS 9.6)
  • MCP Poisoning — skjulte instruksjoner i npm-metadata lurte agenter til å hente ut SSH-nøkler

Slik stopper cplt angrepskjeden

Et typisk supply chain-angrep har fire steg. cplt bryter kjeden på de tre viktigste:

Infeksjon via postinstall-hook → cplt injiserer npm_config_ignore_scripts=true, så hooks aldri kjører.

Credential-høsting fra ~/.ssh, ~/.config/gcloud, .env → kjernen nekter lesing. Agenten får ikke åpna filene.

Persistens via git-hooks eller native moduler → .git/hooks og ~/.copilot/pkg er skrivebeskyttet.

Kom i gang

brew install navikt/tap/cplt

cplt --doctor              # sjekk miljøet
cplt -- -p "fix the tests" # kjør Copilot i sandbox

Tre kommandoer, så er du i gang. --doctor verifiserer at Copilot er installert, at auth fungerer, og at sandboxen er aktiv.

For prosjekter som trenger .env-filer eller localhost-tilgang:

# Next.js med .env-filer
cplt --allow-env-files -- -p "start dev-serveren"

# MCP-server eller dev-server på localhost
cplt --allow-localhost 3000 -- -p "bruk MCP-serveren"

# Next.js/Turbopack (tilfeldige porter)
cplt --allow-localhost-any -- -p "fiks builden"

Kjør cplt --init-config for å lagre innstillingene permanent.

github.com/navikt/cplt · Trusselmodell (SECURITY.md)

Alle nyheter