Back to skill

Security audit

x-research-kit

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it says, but it tells users to let a third-party tool read Chrome browser cookies without enough safeguards.

Review before installing. The public X/Twitter extraction workflows are coherent, but avoid using the documented Chrome cookie command unless you understand that browser cookies can act like login credentials. If authenticated access is needed, use a dedicated browser profile with only the necessary X session, avoid logging or sharing cookie material, and prefer pinned or trusted installations of yt-dlp and gallery-dl.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:15
Finding

Unpinned Third-Party Dependency Installation

Content
View full analysis
= 2024.01.01, gallery-dl >= 1.26.0 (optional, for image posts) ## Prerequisites ```bash # macOS brew install yt-dlp gallery-dl # pip pip install yt-dlp gallery-dl # Verify yt-dlp --version && gallery-dl --version ``` ``` ### Technical Analysis The installation commands retrieve the latest available releases of `yt-dlp`, `gallery-dl`, and their transitive dependencies from the package repositories configured on the user's system. Although the documentation states minimum versions, it does not enforce exact reviewed versions, use a lockfile, verify package hashes or signatures, or identify trusted package sources. Checking `--version` only confirms that executables are available; it does not verify their integrity or provenance. Package installation can execute package-controlled installation logic. Consequently, a compromised package repository, malicious mirror, dependency compromise, or unsafe local package-manager configuration could introduce code that was not present when this Skill was reviewed. ### Attack Path 1. An attacker compromises a relevant package, transitive dependency, package index, mirror, or package-manager configuration. 2. A user follows the Skill documentation and runs `brew install yt-dlp gallery-dl` or `pip install yt-dlp gallery-dl`. 3. The package manager retrieves an attacker-controlled or compromised release because no exact versions or hashes are enforced. 4. Package installation logic or the installed executable runs with the privileges of the invoking user. 5. The malicious component accesses data available to that user, performs unauthorized network activity, or alters local files. ### Impact Assessment Successful exploitation could provide arbitrary code execution with the privileges of ...[truncated 338 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:132
Finding

Broad Browser Cookie Store Access for X Authentication

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Context Leakage

High
Category
Data Exfiltration
Confidence
75% confidence
Finding

Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Content

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

md
1. Identify URL type (tweet, profile, space)
2. Run the appropriate yt-dlp command
3. Parse JSON and present formatted Markdown
4. Offer follow-ups: "Want me to analyze the engagement?" / "Extract the full thread?"

When user asks to **download** media:

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Confidence
98% confidence
Finding

--cookies-from-browser chrome is a high-risk pattern because it instructs the tool to pull authenticated browser cookies directly from a local browser profile. While this is a legitimate yt-dlp feature, embedding it in a skill materially increases the chance that an agent or user will expose reusable session credentials, especially if command output, errors, or surrounding workflow are logged or shared.

Content

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

md
pip / apt)
- **Protected account:** "This account is protected. Cannot extract without authentication."
- **Tweet deleted:** "This tweet has been deleted or is unavailable."
- **Rate limited:** "X rate limit reached. Wait a few minutes and retry."
- **Image-only tweet:** Suggest gallery-dl as alternative

## Notes

- X may require cookies for some content. Export browser cookies with:
  `yt-dlp --cookies-from-browser chrome "URL"`
- Rate limits apply. Space requests between extractions if doing bulk analysis.

## About

X Research Kit is an open-source project by [SnapVee](https://snapvee.com).

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill advises using browser cookies to access X content without warning that this imports authenticated session material from the user's browser. In an agentic context, encouraging --cookies-from-browser can expose session tokens tied to the user's account and broaden access to protected content, creating a real risk of credential/session misuse.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

As a markdown file, this skill should disclose behaviors that may affect privacy. It emphasizes extracting structured data from posts, profiles, and spaces, but does not include any user-facing warning about handling public-profile data, engagement data, or other potentially sensitive content.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This manifest text describes the skill as able to extract data from "any X/Twitter post" and presents a broad toolkit capability, but it does not define any specific activation phrases, invocation boundaries, or exclusion conditions. In a manifest file, such broad natural-language descriptions can create ambiguity about when the skill should be selected or invoked.

Content

No source excerpt is available for this finding.