Claude Code 2.1.281 stopper rm -rf som slapp gjennom i auto-modus
Oppdater til Claude Code 2.1.281 hvis du kjører agenter uten tilsyn, fordi versjonen stanser en rekursiv sletting som tidligere slapp forbi både auto-modus og `--dangerously-skip-permissions`.
Anthropic la ut Claude Code 2.1.281 på GitHub 23. september, dagen etter 2.1.280. Endringsloggen har 176 punkter: 13 nye funksjoner, 112 feilrettinger, 33 forbedringer, 17 endringer i oppførsel og én fjernet menyoppføring. Den alvorligste rettingen gjelder sletting der målet regnes ut først når kommandoen kjører.
«En rekursiv rm der målet bare er utdata fra kommandosubstitusjon, som rm -rf "$(pwd)", kjørte uten spørsmål i auto- og --dangerously-skip-permissions-modus» — Endringsloggen for Claude Code 2.1.281
Nå spør Claude Code før slike kommandoer kjører, også når en Bash-tillatelsesregel ellers ville godkjent dem. Vil du ha den gamle oppførselen, må du sette CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1. Sjekken for farlig rm fanger dessuten sletting mot en skallvariabel fulgt av et toppnivå-katalognavn, og mot variabler avledet fra arbeidskatalogen. Det dekker klassikeren der en tom variabel gjør "$DIR/usr" om til /usr. En tillatelsesregel med en NUL-byte ble tidligere tolket som jokertegn og matchet alt. Nå matcher den ingenting.
Dokumentasjonen beskriver allerede en egen sperre for kritiske stier som rm -rf / og rm -rf ~, der verken allow-regler eller en PreToolUse-hook som svarer «allow» kan godkjenne slettingen.
«Denne sikringen beskytter mot feil fra modellen.» — Anthropic, dokumentasjonen for tillatelsesmoduser i Claude Code
For økter uten tilsyn venter spørsmålet om farlig rm nå 2 minutter. Deretter avslås kommandoen med et hint om hvordan den kan skrives om, slik at agenten jobber videre i stedet for å henge. Du slår det av med CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1. Der klassifisereren for auto-modus kjører på serversiden, må også skrivebeskyttede og sandkassede skallkommandoer nå vente på vurderingen, og de blokkeres hvis de flagges.
To endringer kan knekke eksisterende oppsett. Self-hosted runners sender nå systemprompter som private filer i stedet for kommandolinjetekst, så store prompter ikke lenger stopper oppstarten. En wrapper eller kommando-hook som legger til --system-prompt eller --append-system-prompt, må bytte til --system-prompt-file eller --append-system-prompt-file. Den andre gjelder attribusjon: "attribution": false i settings.json skjuler nå all attribusjon i commits og PR-er, men eldre CLI-versjoner hopper over hele innstillingsfila når den inneholder dette.
Isolasjonen er også strammet inn. --setting-sources ble ikke sendt videre til økter Claude Code starter selv, men nå arver teammates, /bg, claude agents og --worktree --tmux forelderens begrensning. claude --bg kjørte tidligere prosjekt-hooks i en katalog som ikke hadde passert tillitsspørsmålet. Nå spør den først, eller avslutter hvis den ikke kjøres interaktivt.
For headless-bruk er det flere rettinger. En tur kunne prøve på nytt i det uendelige og ignorere --max-turns, og -p-økter feilet hvis startkatalogen ble slettet underveis. Interaktiv oppstart ventet dessuten på en nettverksforespørsel etter administrerte innstillinger selv uten MCP-servere eller plugins konfigurert. Det tar rundt 80 ms, men over 17 sekunder når nettet er utilgjengelig.
Hva bør du gjøre?
- Oppdater til 2.1.281 før du lar agenter kjøre i auto-modus eller med
--dangerously-skip-permissionsover natta. - Søk gjennom wrappere og hooks etter
--system-promptog--append-system-prompt, og bytt til filvariantene hvis du bruker self-hosted runners. - Deler du
settings.jsonmellom maskiner med ulike versjoner, bruk objektformen med tommecommit- ogpr-strenger ogsessionUrlsatt til false i stedet for"attribution": false.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.