Back to skill

Security audit

BNBot

Security checks for vulnerabilities and agentic risk

Overview

This skill is not clearly malicious, but it gives an agent broad browser-linked social account control with persistent local service setup and weak guardrails.

Review this before installing. Use it only if you are comfortable giving an external CLI and Chrome extension control over an authenticated Twitter/X session. Confirm every post, delete, follow, unfollow, scraping, article publish, and media upload action yourself, avoid passing sensitive local files, verify the npm package/version and Chrome extension provenance, and stop the local daemon when not actively using it.

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:9
Finding

Unpinned Third-Party Package Is Installed and Executed as a Background Daemon

Content
View full analysis
/tmp/bnbot.log 2>&1 & sleep 1 lsof -i :18900 -P 2>/dev/null | grep LISTEN ``` ### Technical Analysis The installation metadata requests `bnbot-cli` from npm without specifying an exact version or package-integrity digest. The instructions subsequently launch code supplied by that dependency as a persistent background process for the current host session. Because dependency resolution is not pinned to an audited artifact, the code installed at different times can differ from the version originally reviewed. A malicious or compromised future package release could therefore execute arbitrary commands under the account running the Skill. The daemon is also designed to communicate with a Chrome extension operating in an authenticated Twitter/X browser session. Consequently, compromise of the dependency could potentially affect both local resources available to the process and social-media operations exposed through that extension. The repository contains only documentation and no implementation of the npm package or extension, so their internal controls and actual network behavior could not be verified in this audit. ### Attack Path 1. An attacker compromises the npm publisher account, package distribution process, or another component responsible for publishing `bnbot-cli`. 2. The attacker publishes a malicious release under the expected package name. 3. A user installs the Skill after that release becomes the version selected by npm because no exact version or integrity digest is specified. 4. The setup instructions cause the user or agent to run `b ...[truncated 1200 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill advertises itself as Twitter/X automation, but the README documents broader capabilities such as cross-platform content fetching and job search. This scope mismatch weakens informed consent and increases the chance an agent or user invokes higher-risk functions they did not expect, especially where external content retrieval or account actions are involved.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
86% confidence
Finding

The instructions recommend starting a long-lived background daemon with nohup on a local listening port, creating persistent agent-controlled browser automation beyond a single task. Persistent services increase exposure to unauthorized local access, stale sessions, and unintended reuse of an authenticated browser context.

Content

Scanner excerpt · README.md (reported line 32)May include surrounding context.

After bnbot-cli is installed, start the WebSocket daemon:

bash
nohup bnbot serve > /tmp/bnbot.log 2>&1 &
sleep 1
lsof -i :18900 -P 2>/dev/null | grep LISTEN

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

The restart guidance reinforces maintaining a persistent background service, normalizing continuous availability of a local automation endpoint. In the context of browser-mediated account access, this increases the risk of unintended actions through a lingering authenticated control channel.

Content

Scanner excerpt · README.md (reported line 50)May include surrounding context.

If empty, restart it:

bash
nohup bnbot serve > /tmp/bnbot.log 2>&1 &

How to use tools

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The README describes scraping and media upload behavior without any privacy, consent, or data-handling warnings. Because the tool can collect content and upload local files or remote URLs, users and agents may unintentionally process sensitive data or violate platform and privacy expectations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README exposes destructive and account-affecting commands like delete, follow/unfollow, retweet, and posting without documenting confirmation, dry-run, or approval requirements. In an agent context, this can lead to accidental or unauthorized account actions that are hard to reverse and may cause reputational or operational harm.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

Fetching WeChat, TikTok, and Xiaohongshu content is outside the declared Twitter/X automation use case. This broadens data-ingestion and network interaction beyond user expectations, potentially exposing the environment to unreviewed third-party content flows and privacy issues.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Job-search functionality is unrelated to the stated Twitter/X automation purpose, indicating unnecessary expansion of agent-accessible actions. Unjustified capability growth increases attack surface and makes it harder for operators to reason about what the skill may do on a user's behalf.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is presented as Twitter/X automation, but its documented capabilities extend into unrelated content fetching, article publishing, and job search. This scope mismatch increases the chance that users or higher-level agents will grant the skill broader trust and permissions than justified, enabling unintended data access or actions outside the expected domain.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The documentation promotes scraping and content-fetching capabilities without any warning about privacy, sensitive data collection, retention, or terms-of-service implications. Because the skill operates through a logged-in browser session, scraped data may include personalized or private content, making the absence of data-handling guidance more dangerous.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
72% confidence
Finding

The instructions tell users to start a background daemon with nohup, creating persistent local service behavior on port 18900. While not inherently malicious, persistence expands the attack surface by leaving a long-lived control channel running beyond the immediate task, potentially exposing browser-linked automation to unintended local access or stale sessions.

Content

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

After bnbot-cli is installed, start the WebSocket daemon:

bash
nohup bnbot serve > /tmp/bnbot.log 2>&1 &
sleep 1
lsof -i :18900 -P 2>/dev/null | grep LISTEN

Session Persistence

Medium
Category
Rogue Agent
Confidence
72% confidence
Finding

Restart guidance again normalizes a persistent background service without discussing shutdown, authentication, or local exposure. In the context of a browser-automation skill tied to a user session, an always-on daemon increases the chance of unauthorized or unintended actions if other local processes can reach the service.

Content

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

If empty, restart it:

bash
nohup bnbot serve > /tmp/bnbot.log 2>&1 &

How to use tools

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill exposes destructive and state-changing account actions such as unfollow, unbookmark, delete-tweet, and other engagement operations without documenting any confirmation or warning requirements. In an agent-driven environment, that omission materially increases the risk of accidental account manipulation, irreversible deletions, or abuse through prompt injection or user misunderstanding.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Cross-platform content fetching from WeChat, TikTok, and Xiaohongshu is not aligned with the stated Twitter/X automation purpose, creating unnecessary capability expansion. In an agent setting, this can expose users to unexpected retrieval of third-party content, possible local file writes, and broader browsing/data-handling than the skill description suggests.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Article authoring and publishing functions substantially exceed the declared Twitter/X automation scope and introduce the ability to create and publish longer-form content. That broadens the action surface from social posting into content production workflows, which may surprise users and allow an agent to perform more impactful publishing actions than expected.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Job-search functionality is unrelated to Twitter/X automation and signals unnecessary privilege and feature expansion. In practice, this can cause users or orchestrating agents to trust the skill for one purpose while it performs unrelated searches or accesses external workflows not implied by its manifest.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.