T05 · Unauthorized Access and Privilege Escalation
- Location
lib/api.ts:18- Finding
Overbroad Access to a Shared Credential File
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This looks like a real X/Twitter research CLI, but users should review it because it can send broad user queries to a third-party API and uses an overbroad shared credential file.
Install only if you are comfortable with X/Twitter research queries going to twitterapi.io and with API credit usage. Prefer setting only TWITTERAPI_IO_KEY in the environment instead of sourcing a shared global.env file, keep unrelated secrets out of that file, and use explicit X/Twitter search requests rather than broad auto-invocation or unattended heartbeat checks.
lib/api.ts:18Overbroad Access to a Shared Credential File
The top-level description frames the skill as general X research and says it is not for account management, but the documented behavior includes profile lookups, thread/tweet retrieval, persistent watchlist management, bulk monitoring, and local file writes. This mismatch can cause users or orchestration systems to grant or trigger the skill under narrower assumptions than its actual data collection and persistence capabilities warrant.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
# From your project
mkdir -p .claude/skills
cd .claude/skills
git clone https://github.com/rohunvora/x-research-skill.git x-research
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
# From your project
mkdir -p .claude/skills
cd .claude/skills
git clone https://github.com/rohunvora/x-research-skill.git x-research
The README advertises broad natural-language triggers such as 'what are people saying about' and 'check X for', which can overlap with ordinary conversation and cause the skill to activate when the user did not explicitly intend to invoke an external-search capability. In an agent environment, this can lead to unintended third-party API calls, unnecessary cost, and unplanned transmission of user queries to twitterapi.io.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## Star History
[](https://star-history.com/#rohunvora/x-research-skill&Date)
## License
The skill invokes environment access (source ~/.config/env/global.env) and networked third-party API usage, but it declares no explicit tool scope or permission boundaries. That makes the agent's effective capabilities opaque to users and policy layers, increasing the chance of unintended secret exposure or unauthorized network actions when the skill is auto-invoked.
The invocation guidance uses broad conversational triggers like 'what are people saying about' and 'check x for,' which can overlap with ordinary user requests and cause over-selection of this skill. In combination with network access and third-party transmission, this raises the risk of sending user queries externally without sufficiently explicit user intent.
Although the skill mentions twitterapi.io, it does not give a clear privacy warning that user queries and retrieved targets will be transmitted to a third-party service. Users may unknowingly disclose sensitive topics, entities, or investigation targets to an external provider, creating privacy, confidentiality, and compliance risks.
The skill forwards user-supplied search queries and account identifiers to twitterapi.io, a third-party provider, without any user-visible consent or warning at the transmission point. Because X research queries may contain sensitive topics, proprietary project names, internal incident details, or targeted usernames, this can leak user intent and potentially sensitive operational context to an external service beyond the platform boundary.
The manifest presents the skill as an X research/search agent and says nothing about writing files to the user's local filesystem. This file defines a drafts directory under the user's home and, when --save is used, writes markdown research reports there, adding a content-creation/storage behavior beyond the stated description.
The manifest describes a general-purpose X/Twitter research agent focused on searching X for perspectives, discussions, and opinions, and explicitly contrasts it with a web research agent using X as the source. This file also creates and persists a local watchlist state with add/remove/check operations, which is a broader monitoring/workflow feature not reflected in the manifest description.
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
## What it does
Wraps the [twitterapi.io](https://twitterapi.io) third-party Twitter API into a fast CLI so your AI agent (or you) can search tweets, pull threads, monitor accounts, and get sourced research without writing curl commands. Full-archive search (not limited to 7 days), no official X developer account required.
- **Search** with engagement sorting, time filtering, noise removal
- **Quick mode** for cheap, targeted lookups
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
## What it does
Wraps the [twitterapi.io](https://twitterapi.io) third-party Twitter API into a fast CLI so your AI agent (or you) can search tweets, pull threads, monitor accounts, and get sourced research without writing curl commands. Full-archive search (not limited to 7 days), no official X developer account required.
- **Search** with engagement sorting, time filtering, noise removal
- **Quick mode** for cheap, targeted lookups
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.
## What it does
Wraps the [twitterapi.io](https://twitterapi.io) third-party Twitter API into a fast CLI so your AI agent (or you) can search tweets, pull threads, monitor accounts, and get sourced research without writing curl commands. Full-archive search (not limited to 7 days), no official X developer account required.
- **Search** with engagement sorting, time filtering, noise removal
- **Quick mode** for cheap, targeted lookups
The manifest describes an X/Twitter research skill that searches and reads X content via a third-party API. Falling back to reading ~/.config/env/global.env introduces local file access for credential discovery, which is not an obvious part of the stated research behavior and is broader than the manifest describes.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"test:integration": "bun test tests/integration"
},
"devDependencies": {
"@types/bun": "^1.0.0"
}
}
For an X/Twitter research skill, network access to query X is expected, but reading environment-derived local path information is not inherently required by the manifest's stated purpose. Here it is used to support a local drafts export feature that itself is outside the clearly declared scope.
Detected: suspicious.env_credential_access, suspicious.potential_exfiltration