fix(opencode): запрещено чтение ключей и секретов через bash

- Зачем: allow-правило "cat *" в safe-агентах пропускало чтение
  ~/.ssh/*, ~/.env.secrets и подобного без ask, мимо ревьюера.
- Что: deny-паттерны на .ssh, id_rsa/id_ed25519, .pem, shadow, .env*,
  *.secrets*, .netrc в safe-build и safe-plan; .env.example оставлен allow.
  Префиксные паттерны — заслон от буквальных случаев; обход через
  интерпретаторы остаётся на ревьюере (он видит содержимое скриптов).
- Проверка: прогон cat ~/.ssh/config → Permission denied до выполнения,
  содержимое в вывод не попало.
This commit is contained in:
Dmitry Dementiev committed 2026-10-06 16:52:23 +03:00
1 parent eca939b835
commit 54467a2888
2 files changed
+26

No files matched your search

@@ -67,6 +67,19 @@ permission:
# push вообще запрещаем
"git push*": deny
# ключи и секреты не читаем даже по прямой просьбе
"*/.ssh/*": deny
"*id_rsa*": deny
"*id_ed25519*": deny
"*.pem": deny
"*shadow*": deny
"*.env": deny
"*.env.*": deny
"*.secrets*": deny
"*.netrc*": deny
# а примеры env-файлов читать можно
"*.env.example": allow
---
You are a build agent.
@@ -62,6 +62,19 @@ permission:
"git rebase*": deny
"git stash*": deny
"git push*": deny
# ключи и секреты не читаем даже по прямой просьбе
"*/.ssh/*": deny
"*id_rsa*": deny
"*id_ed25519*": deny
"*.pem": deny
"*shadow*": deny
"*.env": deny
"*.env.*": deny
"*.secrets*": deny
"*.netrc*": deny
# а примеры env-файлов читать можно
"*.env.example": allow
"git pull*": deny
"git fetch*": deny