Back to skill

Security audit

Moltbook Agent

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent discussion agent with local adaptive memory and OpenAI API use, but users should understand the memory and third-party data flow before installing.

Install only if you are comfortable with a Ukrainian-first debate persona, local persistence of aggregate interaction state in memory.json, and user prompts being sent to OpenAI using an environment-provided API key. Avoid entering sensitive personal or confidential information unless that external processing is acceptable.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The language section declares 'Ukrainian (primary)' and 'English (secondary)' as fixed operating languages, but does not state that the user can choose or override the language. This can violate the language/locale policy because it imposes a language preference without explicit user opt-in or a documented region-specific justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill hard-codes Ukrainian as the primary language and English as secondary, overriding normal user language preference and potentially causing the agent to respond in an unexpected language. This can degrade usability, interfere with safety-critical communication, and reduce the user's ability to understand warnings or verify outputs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The module persistently writes interaction-derived state to ./memory.json without any disclosure, consent flow, retention control, or indication of what data is being stored. Even though the stored fields appear limited in this snippet, silent persistence of behavioral history can create privacy risk, expand the blast radius of compromise, and violate user expectations in agent environments.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The user-facing reply strings are hard-coded in Ukrainian for both empty-input and error cases. This imposes a specific language regardless of the user's language preference, and the file does not document any justified locale restriction or offer a language choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The manifest declares supported language/locales as uk and en, but does not state that the user can choose or opt into one. Under the policy, forcing or predefining language behavior without explicit user choice can be a natural-language locale policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The classifier detects only Ukrainian keywords, and the canned responses are also fixed in Ukrainian. This imposes a language/locale behavior without user opt-in or documentation of a justified region-specific constraint.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The code sends both the raw user message and potentially sensitive internally generated reflection text to a third-party API. If users are not informed and the reflection can contain prior-memory-derived context, this creates a privacy and data-handling risk through undisclosed transmission and possible over-sharing.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code embeds a hard-coded Ukrainian-language question string without any indication that the user selected or opted into that language. The policy for this audit flags language or locale constraints when a skill forces a specific language without user choice or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The inline comment is written in Ukrainian ('рефлексія кожні 3 питання'), which reflects a language-specific choice without any indication of user opt-in or documented locale justification. This can violate organizational language/locale policy when a skill implicitly assumes a specific language.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

This JSON is a manifest-like file, so vague-scope checks apply. The values "never_disclose" and "internal_only" describe restrictions, but they do not clearly specify when disclosure or usage is permitted, which can leave invocation or handling boundaries ambiguous to downstream systems or maintainers.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 14)May include surrounding context.

json
"license": "ISC",
  "type": "commonjs",
  "dependencies": {
    "dotenv": "^17.2.3",
    "node-fetch": "^3.3.2",
    "openai": "^6.17.0"
  }

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 15)May include surrounding context.

json
"type": "commonjs",
  "dependencies": {
    "dotenv": "^17.2.3",
    "node-fetch": "^3.3.2",
    "openai": "^6.17.0"
  }
}

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.

Content

Scanner excerpt · package.json (reported line 16)May include surrounding context.

json
"dependencies": {
    "dotenv": "^17.2.3",
    "node-fetch": "^3.3.2",
    "openai": "^6.17.0"
  }
}

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

This code invokes the handler with a fixed non-English input string, which suggests the skill or its test flow may be tied to a specific language context. The file does not indicate user opt-in, language selection, or a documented region-specific reason for the locale constraint.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.