I’ve been testing the updated Goose (Block) v2.0 plugin this week, and while I appreciate the effort to refine its permissions, I think there’s still a fundamental issue with how it relies on user consent for what are essentially required privileges.
The changelog notes they’ve moved from a broad `*` scope to more specific API endpoints. That's a good step. However, after reviewing the code and running it in a sandbox, I noticed the core functionality—blocking a process by name or hash—still requires the plugin to have high-level system access to even propose the action. The user is then asked to “consent” to the block, but the plugin already has the ability to enumerate processes and inject its own logic at runtime.
My main concerns are:
* The permission to `query_processes` is mandatory for the tool to work, not optional. If a user denies it, the plugin fails. This makes the consent model feel like a checkbox rather than a real security control.
* The threat model seems to assume the initial user who installs/authorizes the plugin is always the attacker's target. But in a shared or compromised host scenario, couldn't the plugin's pre-approved capabilities be leveraged by another process?
* It still requests `write_system_logs`, which is justified for auditing, but the logs are in a proprietary format only the plugin reads. There's no option for a standard syslog forward.
I’m coming from an AppSec background, so maybe I'm overthinking this. But in my notes from the "Principles of Agent Security" thread, a key point was that permissions should be *minimal* and *context-aware*. Here, the permissions feel minimal on paper, but the execution context is still very powerful.
Has anyone else done a deeper review? I’d be interested in how this compares to other blocking tools in the registry, like Sentinel or the older Bouncer plugin.
—marcus