Back to skill

Security audit

Sinkron

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Sinkron email-inbox integration with disclosed token use and deletion capabilities, but users should handle the external package and destructive commands carefully.

Install only after confirming the Sinkron package provenance, preferably in an isolated environment first. Store SINKRON_TOKEN in a secret manager or restricted environment variable, avoid logging message contents or tokens, and require explicit human confirmation before running delete-messages or delete-inbox, especially with --force.

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:19
Finding
External Dependency Installed Without Cryptographic Artifact Verification## Vulnerability Details **File Location**: `SKILL.md:19`, `SKILL.md:69-72`, `SKILL.md:113-126`; `manifest.json:73` **Vulnerability Type**: Third-party dependency and supply-chain risk **Risk Level**: Medium ### Vulnerable Code `SKILL.md:19`: ```yaml install: "pip install sinkron==1.0.2" ``` `SKILL.md:69-72`: ```bash # Download wheel/tarball without installing, then inspect contents pip download sinkron==X.Y.Z --no-deps -d /tmp/sinkron-inspect ls /tmp/sinkron-inspect/ # Unzip the .whl (it's a zip) and review .py source files for # unexpected network callbacks, obfuscated code, or telemetry ``` `SKILL.md:113-126`: ```bash pip index versions sinkron ``` ```bash # Preferred (pinned version) pip install sinkron==X.Y.Z # Alternative via uv (also pin version) uv tool install sinkron==X.Y.Z ``` `manifest.json:73`: ```json "installation": ["pip install sinkron==1.0.2", "uv tool install sinkron==1.0.2"], ``` ### Technical Analysis The reviewed project contains only documentation and a manifest; it does not include the source code of the `sinkron` CLI or Python SDK. Consequently, the external package's installation behavior, network destinations, credential storage, and handling of email content cannot be verified from this artifact. Pinning the dependency to version `1.0.2` limits unintended upgrades, but it does not cryptographically authenticate the package downloaded from the package index. The project provides no approved SHA-256 digest, hash-locked requirements file, vendored source, signed artifact, or reproducible-build verification. The recommended source inspection and isolated testing are advisory and are not enforced by the installation commands. Package installation and subsequent imports execute code controlled by the external distribution. Once `SINKRON_TOKEN` is exposed to that process, the package can access the credential and any inbox data returned through the API. This i ...[truncated 2150 chars]
Remediation
## Remediation Suggestions 1. Provide a reviewed, hash-locked dependency manifest containing the exact package version and approved SHA-256 digest, and require installation with `pip install --require-hashes -r requirements.txt`. 2. Alternatively, bundle the audited dependency source or a verified wheel with the Skill so the reviewed implementation corresponds exactly to the executed artifact. 3. Publish and verify signed release artifacts, and document the expected package publisher, artifact filename, digest, and signing identity. 4. Replace placeholder installation examples such as `sinkron==X.Y.Z` with a single reviewed version and its matching integrity metadata. 5. Perform dependency verification before exposing `SINKRON_TOKEN`; installation and initial validation should occur in an environment where the credential is absent. 6. Run the package in a restricted container or dedicated account with minimal filesystem access, a minimal environment, and network access limited to documented Sinkron API origins. 7. Document the exact API origin, TLS requirements, redirect policy, and local token-storage path so operators can enforce outbound allowlists and verify credential handling. 8. Avoid passing secrets through command-line arguments where they may appear in process listings or logs. Prefer direct environment injection, standard input, or an operating-system secret store with restrictive permissions. 9. Audit the external package's installation hooks, HTTP client behavior, telemetry, configuration permissions, and message-deletion authorization before production deployment.
Vulnerability Patterns
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Rp1

Medium
Category
MCP Rug Pull
Confidence
75% confidence
Finding
Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill documents `sinkron delete-inbox [--force]` without an adjacent explicit warning that the action is irreversible and may permanently destroy all inbox contents. In an automation-oriented skill, this increases the chance that an agent or operator invokes the command in the wrong context, causing preventable data loss.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The manifest advertises destructive commands (`delete-messages` and `delete-inbox`) but provides no explicit warning, safety note, or confirmation expectations in the metadata. In an agent setting, this increases the risk of accidental or overly broad deletion of inbox data, especially if an LLM or automation invokes commands from the manifest without strong human review.

Static analysis

No suspicious patterns detected.