Back to skill

Security audit

SocialKit Google Business Post

Security checks for vulnerabilities and agentic risk

Overview

The skill publishes user-approved Google Business Profile posts using disclosed Google authorization and local credential storage.

Use your own Google Cloud OAuth client and consider the broad business.manage permission before signing in. Protect the stored refresh token, and check the business location, text, and public photo URLs before approving each post. Review socialkit-social-core separately because its initialization and approval implementation was not supplied. The bundled review and analytics callbacks are inactive in these commands.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 18)May include surrounding context.

md
- Find options.location with `node scripts/auth.mjs --platform google-business --locations`.

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 23)May include surrounding context.

md
1. Sign in once (browser, local redirect): `node scripts/auth.mjs --platform google-business`

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 26)May include surrounding context.

md
3. Write `post.json` (text, media with alt text, options). See `node scripts/publish.mjs --help`.

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 27)May include surrounding context.

md
4. Validate: `node scripts/publish.mjs --check --dir gbp-<slug>`

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 30)May include surrounding context.

md
6. Publish: `node scripts/publish.mjs --publish --dir gbp-<slug>` and report the result.

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env, network, shell.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

The registered platform implements location-wide performance analytics beyond the skill's posting purpose.

Medium
Category
Excessive Agency
Confidence
98% confidence
Finding

The metrics callback retrieves 30 days of location-wide search and Maps impressions, website clicks, calls, and direction requests. These are business analytics rather than operations needed to publish an approved update, event, or offer; the supplied post ID is used only to identify the location.

Content

No source excerpt is available for this finding.

The registered platform can read business reviews and publish review replies, capabilities not declared by the posting skill.

Medium
Category
Excessive Agency
Confidence
99% confidence
Finding

The comments callback retrieves location-wide reviews, including reviewer names, ratings, and review text, while the reply callback issues a PUT request to publish a review reply. Managing customer reviews is distinct from publishing Google Business Profile updates, events, or offers and is not justified by the stated purpose.

Content

No source excerpt is available for this finding.

The registered platform adapter can read business reviews and publish review replies, capabilities outside the stated posting purpose.

Medium
Category
Excessive Agency
Confidence
97% confidence
Finding

The comments method retrieves location reviews, including reviewer names and review text, while reply modifies a review reply through an authenticated PUT request. These are business-review management capabilities rather than update, event, or offer publication; although the publishing runner does not invoke them, they are implemented in this skill's adapter.

Content

No source excerpt is available for this finding.

The registered platform adapter implements location-wide analytics collection beyond publishing approved posts.

Low
Category
Excessive Agency
Confidence
94% confidence
Finding

The metrics method requests 30 days of location-wide search and Maps impressions, website clicks, calls, and direction requests from the Business Profile Performance API. These analytics are not needed to publish an approved update, event, or offer and are not declared in the manifest; the publishing runner does not invoke this method.

Content

No source excerpt is available for this finding.