Interactive, no-code hands-on lab teaching Claude Desktop, Cowork, Connectors, Skills, Plugins, MCP, and Claude Code 101 — built for product managers and curious beginners.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in larryfang/claude-lab-for-pms
transport — counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 369de4c · analyzer v33 · 5d ago
danger signals1
- dynamic code execution vm exec larryfang-claude-lab-369de4c/scripts/verify-course.mjs :18
vm.runInNewContext(fs.readFileSync(path.join(root, "assets/js/content.js"), "utf8"), sandbox, { filename: "content.js" });
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 7
filesystem 2
- fs (weak) larryfang-claude-lab-369de4c/scripts/check-links.mjs :1
import fs from "node:fs"; - fs (weak) larryfang-claude-lab-369de4c/scripts/verify-course.mjs :1
import fs from "node:fs";
shell / exec 1
- shell (weak) larryfang-claude-lab-369de4c/scripts/verify-course.mjs :4
import { spawnSync } from "node:child_process";
network 2
- net larryfang-claude-lab-369de4c/assets/js/app.js :283
return fetch("content/" + file, { cache: "no-cache" }).then(function (r) { if (!r.ok) throw new Error("HTTP " + r.status); return r.text(); }).then(function (t) { bodyCache[file] = t; return t; }); - net (weak) larryfang-claude-lab-369de4c/scripts/check-links.mjs :28
const response = await fetch(url, { redirect: "follow", signal: controller.signal, headers: { "user-agent": "Claude-Lab-Link-Check/1.0" } });
declared dependencies 1
- @playwright/test@1.62.1
perm:untrusted 1
- untrusted larryfang-claude-lab-369de4c/assets/js/app.js :283
return fetch("content/" + file, { cache: "no-cache" }).then(function (r) { if (!r.ok) throw new Error("HTTP " + r.status); return r.text(); }).then(function (t) { bodyCache[file] = t; return t; });