Skills/npm/mosaic-headless

mosaic-headless@1.36.3

CAUTION· install only

Publisher claims: "AI-agent skill: build Mosaic Pro (Nextend) WordPress sites by writing the underlying data model directly - 23 custom tables, no visual editor, no DOM. Every node type, style property and node property swept against a live install and asserted on the deliv" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher moksa1123 · publishing for 78 daysInstalls 3,992Last detonated 30 min ago

Coverage

Install scripts ran; no agent task scenario for this bundle.
Tested
install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · every file read, file written and host contacted by what ran
Not tested
use of the skill by an agent

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; install scripts ran; no agent task scenario for this bundle) on 2026-11-14 and scored it 78/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; document.cookie access. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessinstall script run in the sandbox
0.1sprocessexited 1: Node.js v22.23.5
0.1sprocessscript backend runs setup only
0.1sprocessscript backend runs setup only
0.2sprocesssecond launch, clock +45 days, CI unset
0.3sprocessexited 1: Node.js v22.23.5

Static findings

HIGH
Access to sensitive file pathsscripts/check-release.mjs:334 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files[/\.env|secret|credential/i, "something that looks like a secret"],Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File type combined with upload actionSKILL.md:631 · File type combined with upload action — agent may exfiltrate local data files…er's own validation refusing an empty submit | | `data/content-loop-verification.csv` | 15 | **driven live** - a slider, a tab bar, a list and a paginated archive whose children all come from one authored template repeated per post; the pa…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionSKILL.md:630 · File type combined with upload action — agent may exfiltrate local data files…VEN rather than the default it falls back to | | `data/form-surface-verification.csv` | 23 | **driven live** - every field type Mosaic ships in one form: 1.0.12's buildable select opened, picked by click and by keyboard, its hidden input's…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Process kill commandSKILL.md:192 · Process kill command — agent can terminate processesmulti-steps-form-step) now kill the page instead - the renderFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionSKILL.md:1114 · File type combined with upload action — agent may exfiltrate local data filespython tools/sweep_style_states.py --config sweep.json --post 20 --slug probe-lab --csv data/style-state-verification.csvFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionSKILL.md:612 · File type combined with upload action — agent may exfiltrate local data files| `data/design-audit.csv` | 26 | **computed in Chromium** - contrast, font fallback, CJK tracking, overflow, measure. Empty means it ran and found nothing |Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
document.cookie accesstools/verify_dialog.py:63 · document.cookie access — can steal session cookiestry { if (document.cookie) out['cookie'] = document.cookie; } catch (e) {}Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
File type combined with upload actionSKILL.md:618 · File type combined with upload action — agent may exfiltrate local data files…es it unparented. Resolves two BROKE_PAGE rows | | `data/conversion-verification.csv` | 8 | **converted then checked live** - an Elementor page rebuilt as Mosaic and held against its source (text, images, links, heading levels), then put t…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actiontools/verify_recipes.py:4 · File type combined with upload action — agent may exfiltrate local data filespython tools/verify_recipes.py --config c.json --post 292 --slug probe-recipes \Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagescripts/install.mjs:7 · npx invocation of non-well-known package — may execute untrusted code* npx mosaic-headless claude-code --globalFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actiontools/sweep_components.py:4 · File type combined with upload action — agent may exfiltrate local data filespython tools/sweep_components.py --config c.json --post 20 --slug probe-labFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Unicode escape sequence detectedsites/_components.py:491 · Unicode escape sequence detected — may contain obfuscated payloads"\u7d93\u904e\u5b83\u81ea\u5df1\u7684"Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07
MEDIUM
File type combined with upload actiontools/sweep_components.py:5 · File type combined with upload action — agent may exfiltrate local data filespython tools/sweep_components.py --config c.json --post 20 --slug probe-lab \Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actiontools/probe_accordion.py:4 · File type combined with upload action — agent may exfiltrate local data filespython tools/probe_accordion.py --config c.json --slug probe-lab --post 20Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionscripts/check-release.mjs:171 · File type combined with upload action — agent may exfiltrate local data filesfail("browser-verification.csv has no not-comparable rows - a computed-value check "Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedtools/benchmark_tokens.py:83 · Python subprocess execution detectedr = subprocess.run([sys.executable, os.path.join(HERE, "mo.py")] + args,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actiontools/from_elementor.py:6 · File type combined with upload action — agent may exfiltrate local data filespython tools/build_page.py --config c.json --spec spec.json --post 42 ...Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Unicode escape sequence detectedsites/_components.py:492 · Unicode escape sequence detected — may contain obfuscated payloads"\u904e\u6ffe\u5668\u6e32\u67d3\u3002</p>"}},Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07
MEDIUM
npx invocation of non-well-known packagescripts/install.mjs:9 · npx invocation of non-well-known package — may execute untrusted code* npx mosaic-headless --dry-run claude-codeFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagescripts/install.mjs:6 · npx invocation of non-well-known package — may execute untrusted code* npx mosaic-headless --listFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actiontools/verify_menus.py:4 · File type combined with upload action — agent may exfiltrate local data filespython tools/verify_menus.py --config c.json --post <ID of menu-lab> --slug menu-lab \Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Unicode escape sequence detectedsites/_components.py:554 · Unicode escape sequence detected — may contain obfuscated payloadsband("cp-wp-s", "WORDPRESS / \u63a5\u56de\u539f\u751f\u5167\u5bb9",Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07
MEDIUM
npx invocation of non-well-known packagescripts/install.mjs:5 · npx invocation of non-well-known package — may execute untrusted code* npx mosaic-headless # interactive (arrow keys, zh-TW)Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commandtools/mo.py:36 · Process kill command — agent can terminate processes# kill the request, the third kills the page for every visitor until you delete theFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Unicode escape sequence detectedsites/_moksa.py:2704 · Unicode escape sequence detected — may contain obfuscated payloadsT("p", "\u795e\u5948\u5ddd\u6c96\u6d6a\u88cf",Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07
MEDIUM
Python subprocess execution detectedtools/check_tables.py:46 · Python subprocess execution detectedr = subprocess.run([sys.executable, os.path.join(here, name),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
npx invocation of non-well-known packagescripts/install.mjs:8 · npx invocation of non-well-known package — may execute untrusted code* npx mosaic-headless cursor --to /path/to/projectFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Unicode escape sequence detectedsites/_components.py:490 · Unicode escape sequence detected — may contain obfuscated payloads"WordPress \u81ea\u5df1\u7684\u5167\u5bb9\u5340\u584a\uff0c"Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07

Cost to the agent

Instructions loaded
≈22,276 tok
1 file · 80 in bundle

Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.

Known vulnerabilities

No advisories in OSV for mosaic-headless@1.36.3 as of 6 min ago. This is the package itself, not its dependencies.

What would make this Verified

2 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim moksa1123: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  3. document.cookie access≈ +4 on the totalReplace encoded or assembled strings with plain literals and remove undeclared network calls.
  4. File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
  5. Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  6. npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
Publish a new version to npm, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim moksa1123Propose a patch to the maintainer