Back to skill

Security audit

google-classroom

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Google Classroom integration that uses Maton authentication and gives clear approval gates for writes, automation, credentials, and trigger forwarding.

Install only if you trust Maton as the gateway for your Google Classroom account. Prefer OAuth, review requested Google scopes, confirm every write or automation setup, avoid third-party trigger destinations unless you explicitly need them, and verify Maton package provenance where possible.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:32
Finding
Third-Party Dependencies Installed Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md:32-47`, `SKILL.md:1514-1534` **Vulnerability Type**: Dependency supply-chain integrity weakness **Risk Level**: Medium ### Vulnerable Code ```markdown ## Installation ### NPM ```bash npm install -g @maton/cli@0.3.1 ``` ### Homebrew ```bash brew install maton-ai/cli/maton brew pin maton ``` Versions are pinned to the release this skill was reviewed against. Upgrade deliberately - check the release notes, then move the pin - rather than by re-running an unpinned install. Homebrew cannot select a version from a tap, so `brew pin maton` holds the installed build until you choose to upgrade; `maton-ai/cli` is Maton's own tap. ``` Additional SDK installation instructions use the same trust model: ```markdown **Python** ```bash pip install 'maton-ai==0.3.1' ``` **JavaScript** ```bash npm install @maton/sdk@0.3.1 ``` ``` ### Technical Analysis The installation commands pin package versions, which limits unexpected upgrades but does not cryptographically bind installation to the exact artifacts reviewed with this Skill. No checksum, package signature, hash-locked requirements file, or lockfile integrity verification is specified. The Homebrew installation additionally trusts the external `maton-ai/cli` tap. The global npm installation may execute package-controlled lifecycle scripts and installs the CLI into the invoking user's global package environment. Consequently, compromise of a package publisher, registry artifact, release process, or Homebrew tap could cause an artifact different from the reviewed implementation to be installed while retaining the expected package name and version. This is a supply-chain weakness rather than evidence that the named packages are currently malicious. The audit found no dependency confusion, typosquatting, or known malicious payload in the project itself. ### Attack Path 1. An attacker compromi ...[truncated 1891 chars]
Remediation
## Remediation Suggestions 1. **Publish cryptographic checksums or signatures** - Provide SHA-256 hashes for reviewed CLI and SDK release artifacts. - Document a verification command that users must run before installation. - Prefer signed release artifacts and verify signatures against a separately documented publisher key. 2. **Use hash-locked dependency manifests** - For Python, provide a requirements file containing exact versions and hashes and install it with `pip install --require-hashes`. - For JavaScript projects, provide a reviewed lockfile containing registry integrity metadata and use `npm ci` instead of an unconstrained project installation. - Preserve exact transitive dependency versions, not only the top-level package version. 3. **Harden Homebrew installation** - Document how users can verify the tap repository owner and formula source before installation. - Pin or verify the formula commit and downloaded artifact checksum. - Prefer a signed or otherwise independently verifiable release channel. 4. **Reduce installation privileges** - Avoid global npm installation where practical. - Recommend an isolated virtual environment, container, or project-local installation. - Explicitly advise users not to run installation commands with elevated privileges. 5. **Document the reviewed artifact identity** - Record package names, versions, artifact hashes, registry origins, release signatures, and review dates. - Require a new security review whenever any of those values change.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The skill manifest says this skill is for Google Classroom API integration and explicitly states that Google Classroom is not an event source, while this file documents Calendly events and payloads. Even though the header notes this is shared platform reference text, the file still exposes capabilities for processing Calendly-triggered invitee events that are not justified by the Google Classroom skill's purpose.

Static analysis

No suspicious patterns detected.