Skip to content

fix(gateway): block .config, .gcloud, and macOS Keychains from media delivery - #55796

Closed
nicha16 wants to merge 1 commit into
NousResearch:mainfrom
nicha16:fix/gateway-media-denylist-credential-paths
Closed

fix(gateway): block .config, .gcloud, and macOS Keychains from media delivery#55796
nicha16 wants to merge 1 commit into
NousResearch:mainfrom
nicha16:fix/gateway-media-denylist-credential-paths

Conversation

@nicha16

@nicha16 nicha16 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Extends _MEDIA_DELIVERY_DENIED_HOME_SUBPATHS to deny:

  • ~/.config/ (tokens, app credentials)
  • ~/.gcloud/ (Google Cloud service account keys)
  • ~/Library/Keychains/ (macOS keychain databases)

These paths are already blocked in strict mode but were missing from the default non-strict denylist.

@alt-glitch alt-glitch added type/security Security vulnerability or hardening P3 Low — cosmetic, nice to have comp/gateway Gateway runner, session dispatch, delivery area/auth Authentication, OAuth, credential pools sweeper:risk-security-boundary Sweeper risk: may affect sandboxing, auth, credentials, or sensitive data sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages labels Jun 30, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Heads-up for review: main already denies .gcloud and Library/Keychains in _MEDIA_DELIVERY_DENIED_HOME_SUBPATHS (gateway/platforms/base.py). This diff reintroduces the _MEDIA_DELIVERY_DENIED_* constants at an older location with a smaller set (branch appears based on stale main) and also bundles an unrelated change to tools/send_message_tool.py _get_cron_auto_delivery_target(). Recommend rebasing onto current main and isolating the denylist change from the cron-delivery change.

@teknium1

Copy link
Copy Markdown
Contributor

Thanks for the security-focused contribution. The requested default-mode media-delivery protection is already present on current main; this is an automated hermes-sweeper review.

  • gateway/platforms/base.py:1025-1035 already denies the broader ~/.config/ tree, ~/.gcloud/, and ~/Library/Keychains/.
  • gateway/platforms/base.py:1327-1330 applies that denylist in the default non-strict delivery path.
  • git blame attributes those entries to d682f320b35a13084371a541a835e1d988c982b8, which is contained in v2026.7.1.
  • The PR also includes unrelated cron/send-message changes, while its denylist diff is superseded by the current implementation.

Closing as implemented on main.

@teknium1 teknium1 closed this Jul 15, 2026
@teknium1 teknium1 added the sweeper:implemented-on-main Sweeper: behavior already present on current main label Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/auth Authentication, OAuth, credential pools comp/gateway Gateway runner, session dispatch, delivery P3 Low — cosmetic, nice to have sweeper:implemented-on-main Sweeper: behavior already present on current main sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages sweeper:risk-security-boundary Sweeper risk: may affect sandboxing, auth, credentials, or sensitive data type/security Security vulnerability or hardening

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants