@agent-beam/beam 0.2.30 → 0.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +74 -4
  2. package/Skills/agentbeam-app-monitoring/SKILL.md +5 -4
  3. package/dist/cli.js +110 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cve.js +1 -1
  6. package/dist/cve.js.map +1 -1
  7. package/dist/monitor-client.d.ts +45 -1
  8. package/dist/monitor-client.js +3 -3
  9. package/dist/monitor-client.js.map +1 -1
  10. package/dist/monitor-pipeline.d.ts +60 -9
  11. package/dist/monitor-pipeline.js +325 -5
  12. package/dist/monitor-pipeline.js.map +1 -1
  13. package/dist/monitor-rules.d.ts +58 -0
  14. package/dist/monitor-rules.js +130 -1
  15. package/dist/monitor-rules.js.map +1 -1
  16. package/dist/monitor-signals.d.ts +63 -0
  17. package/dist/monitor-signals.js +125 -0
  18. package/dist/monitor-signals.js.map +1 -0
  19. package/dist/monitor-stacks.d.ts +41 -0
  20. package/dist/monitor-stacks.js +129 -0
  21. package/dist/monitor-stacks.js.map +1 -0
  22. package/dist/monitor.d.ts +2 -0
  23. package/dist/monitor.js +12 -4
  24. package/dist/monitor.js.map +1 -1
  25. package/dist/package-risk-rules.d.ts +27 -0
  26. package/dist/package-risk-rules.js +137 -0
  27. package/dist/package-risk-rules.js.map +1 -0
  28. package/dist/package-scan.d.ts +50 -0
  29. package/dist/package-scan.js +279 -0
  30. package/dist/package-scan.js.map +1 -0
  31. package/dist/packages.d.ts +43 -0
  32. package/dist/packages.js +228 -0
  33. package/dist/packages.js.map +1 -0
  34. package/dist/sdk.d.ts +61 -1
  35. package/dist/sdk.js +93 -8
  36. package/dist/sdk.js.map +1 -1
  37. package/dist/share-cli.d.ts +2 -0
  38. package/dist/share-cli.js +185 -0
  39. package/dist/share-cli.js.map +1 -0
  40. package/dist/share.d.ts +138 -0
  41. package/dist/share.js +384 -0
  42. package/dist/share.js.map +1 -0
  43. package/dist/stack-detect.d.ts +3 -0
  44. package/dist/stack-detect.js +62 -0
  45. package/dist/stack-detect.js.map +1 -0
  46. package/package.json +3 -1
  47. package/stress-report.json +78 -38
@@ -0,0 +1,41 @@
1
+ import type { MonitorRule } from "./monitor-rules.js";
2
+ /** What an app can declare. Each runs a set of families; paths and attacks belong to families. */
3
+ export declare const STACK_FAMILIES: {
4
+ readonly nextjs: readonly ["js", "nextjs", "react"];
5
+ readonly node: readonly ["js"];
6
+ readonly express: readonly ["js"];
7
+ readonly nestjs: readonly ["js"];
8
+ readonly vite: readonly ["js", "vite"];
9
+ readonly django: readonly ["python", "django"];
10
+ readonly flask: readonly ["python", "flask"];
11
+ readonly fastapi: readonly ["python", "fastapi"];
12
+ readonly rails: readonly ["ruby", "rails"];
13
+ readonly laravel: readonly ["php", "laravel"];
14
+ readonly php: readonly ["php"];
15
+ readonly wordpress: readonly ["php", "wordpress"];
16
+ readonly spring: readonly ["java", "spring"];
17
+ readonly java: readonly ["java"];
18
+ readonly go: readonly ["go"];
19
+ readonly dotnet: readonly ["dotnet"];
20
+ readonly static: readonly [];
21
+ };
22
+ export type Stack = keyof typeof STACK_FAMILIES;
23
+ export declare const STACKS: Stack[];
24
+ export declare const isStack: (v: unknown) => v is Stack;
25
+ /** The families a path belongs to (empty for an ordinary path any app might serve). */
26
+ export declare function pathFamilies(path: string): string[];
27
+ /** True when the stack runs none of the families the path or rule belongs to. */
28
+ export declare function foreignTo(stack: Stack, families: readonly string[]): boolean;
29
+ /**
30
+ * Every pattern here must stay linear in its input (this runs inside customer apps, on attacker-
31
+ * written text): match fixed markers with separate tests, never `marker[^x]*other` across a line.
32
+ *
33
+ * Attacks on particular frameworks, and their debug or admin endpoints answering the public.
34
+ * `families` says which software each targets: against an app that declares a stack without it,
35
+ * the request is rolled up as not applicable. Exposures need a 2xx, so they need the status.
36
+ */
37
+ export declare const stackRules: (MonitorRule & {
38
+ families: string[];
39
+ })[];
40
+ /** The families a rule targets (stack rules only; built-in rules target every stack). */
41
+ export declare function ruleFamilies(ruleId: string): string[];
@@ -0,0 +1,129 @@
1
+ /** What an app can declare. Each runs a set of families; paths and attacks belong to families. */
2
+ export const STACK_FAMILIES = {
3
+ nextjs: ["js", "nextjs", "react"],
4
+ node: ["js"],
5
+ express: ["js"],
6
+ nestjs: ["js"],
7
+ vite: ["js", "vite"],
8
+ django: ["python", "django"],
9
+ flask: ["python", "flask"],
10
+ fastapi: ["python", "fastapi"],
11
+ rails: ["ruby", "rails"],
12
+ laravel: ["php", "laravel"],
13
+ php: ["php"],
14
+ wordpress: ["php", "wordpress"],
15
+ spring: ["java", "spring"],
16
+ java: ["java"],
17
+ go: ["go"],
18
+ dotnet: ["dotnet"],
19
+ static: [],
20
+ };
21
+ export const STACKS = Object.keys(STACK_FAMILIES);
22
+ export const isStack = (v) => typeof v === "string" && v in STACK_FAMILIES;
23
+ // Paths only one family serves. A request for one, from an app that doesn't run that family and
24
+ // with no response status to go on, can't have worked.
25
+ const FAMILY_PATHS = [
26
+ ["php", /\.(?:php\d?|phtml)(?=[/?#;]|$)|\/phpmyadmin(?=[/?#]|$)/i],
27
+ ["wordpress", /\/(?:wordpress|wp-(?:admin|content|includes|json|login\.php))(?=[/?#]|$)|\/xmlrpc\.php/i],
28
+ ["dotnet", /\.(?:aspx?|ashx|asmx|axd)(?=[/?#;]|$)|\/web\.config(?=[?#]|$)/i],
29
+ ["java", /\.(?:jsp|jspx|do|action)(?=[/?#;]|$)|\/(?:actuator|jolokia|manager\/html|jmx-console|web-console)(?=[/?#]|$)/i],
30
+ ["cgi", /\.(?:cgi|pl)(?=[/?#;]|$)|\/cgi-bin(?=[/?#]|$)/i],
31
+ ["vite", /\/@(?:fs|vite|id)\//i],
32
+ ["rails", /\/rails\/info(?=[/?#]|$)/i],
33
+ ["laravel", /\/(?:_ignition|telescope|horizon|_debugbar)(?=[/?#]|$)|\/storage\/logs\/laravel\.log/i],
34
+ ["django", /\/__debug__(?=[/?#]|$)/i],
35
+ ["go", /\/debug\/(?:pprof|vars)(?=[/?#]|$)/i],
36
+ ];
37
+ /** The families a path belongs to (empty for an ordinary path any app might serve). */
38
+ export function pathFamilies(path) {
39
+ const route = path.split(/[?#]/)[0];
40
+ const families = FAMILY_PATHS.filter(([, re]) => re.test(route)).map(([family]) => family);
41
+ // wp-login.php is WordPress, not any PHP app: a Laravel app can't serve it either.
42
+ return families.includes("wordpress") ? ["wordpress"] : families;
43
+ }
44
+ /** True when the stack runs none of the families the path or rule belongs to. */
45
+ export function foreignTo(stack, families) {
46
+ const runs = STACK_FAMILIES[stack];
47
+ return families.length > 0 && !families.some(f => runs.includes(f));
48
+ }
49
+ // The response status in an access-log line was 2xx (same reading as monitor-rules.ts).
50
+ const ACCESS_STATUS = /"[A-Z]+ \S+ HTTP\/[\d.]+" (\d{3})\b|"(?:status|httpStatus|status_code|statusCode|response_status)"\s*:\s*"?(\d{3})\b/;
51
+ const served = (raw) => ((raw.match(ACCESS_STATUS)?.[1] ?? raw.match(ACCESS_STATUS)?.[2]) ?? "").startsWith("2");
52
+ /**
53
+ * Every pattern here must stay linear in its input (this runs inside customer apps, on attacker-
54
+ * written text): match fixed markers with separate tests, never `marker[^x]*other` across a line.
55
+ *
56
+ * Attacks on particular frameworks, and their debug or admin endpoints answering the public.
57
+ * `families` says which software each targets: against an app that declares a stack without it,
58
+ * the request is rolled up as not applicable. Exposures need a 2xx, so they need the status.
59
+ */
60
+ export const stackRules = [
61
+ // Next.js and React
62
+ { id: "stack.nextjs.middleware_bypass", title: "Next.js middleware bypass attempt (x-middleware-subrequest)", severity: "critical", category: "exploit", families: ["nextjs"], sources: ["http"],
63
+ match: s => /"x-middleware-subrequest"\s*:/i.test(s) },
64
+ { id: "stack.nextjs.sourcemap_exposed", title: "Next.js source maps served publicly", severity: "medium", category: "recon", families: ["nextjs"], sources: ["http"],
65
+ match: (s, raw) => /\.js\.map(?=[\s?"#]|$)/i.test(s) && /\/_next\/static\//i.test(s) && served(raw) },
66
+ // Vite dev servers (CVE-2025-30208 and kin): arbitrary file read through /@fs and ?raw??.
67
+ { id: "stack.vite.fs_read", title: "Vite dev server file read attempt", severity: "high", category: "exploit", families: ["vite"], sources: ["http"],
68
+ match: s => /\/@fs\/|[?&](?:raw|import&raw|inline)\?\?|\?import&raw\?\?/i.test(s) },
69
+ // Node.js
70
+ { id: "stack.node.package_files_exposed", title: "Node.js package files served publicly", severity: "high", category: "secrets", families: ["js"], sources: ["http"],
71
+ match: (s, raw) => /\/(?:\.npmrc|package-lock\.json|node_modules\/[^\s"?]+)(?=[\s?"#]|$)/i.test(s) && served(raw) },
72
+ // Python
73
+ { id: "stack.flask.debugger_console", title: "Werkzeug debugger console attempt", severity: "critical", category: "exploit", families: ["flask", "python"], sources: ["http"],
74
+ match: s => /[?&]__debugger__=yes&(?:cmd|frm)=/i.test(s) },
75
+ { id: "stack.flask.console_exposed", title: "Werkzeug debugger console served publicly", severity: "critical", category: "secrets", families: ["flask", "python"], sources: ["http"],
76
+ match: (s, raw) => /"[A-Z]+ \/console(?:[?\s])|"path"\s*:\s*"\/console(?:[?"])/i.test(s) && served(raw) },
77
+ { id: "stack.django.debug_toolbar_exposed", title: "Django debug toolbar served publicly", severity: "high", category: "secrets", families: ["django"], sources: ["http"],
78
+ match: (s, raw) => /\/__debug__\//i.test(s) && served(raw) },
79
+ // Ruby on Rails
80
+ { id: "stack.rails.info_exposed", title: "Rails info pages served publicly", severity: "high", category: "secrets", families: ["rails"], sources: ["http"],
81
+ match: (s, raw) => /\/rails\/info\/(?:properties|routes)/i.test(s) && served(raw) },
82
+ // PHP and Laravel
83
+ { id: "stack.laravel.ignition_rce", title: "Laravel Ignition remote code execution attempt (CVE-2021-3129)", severity: "critical", category: "exploit", families: ["laravel"], sources: ["http"],
84
+ match: s => /\/_ignition\/execute-solution/i.test(s) },
85
+ { id: "stack.laravel.debug_tools_exposed", title: "Laravel debug tools or logs served publicly", severity: "high", category: "secrets", families: ["laravel"], sources: ["http"],
86
+ match: (s, raw) => /\/(?:telescope|horizon|_debugbar)(?:\/|[\s?"]|$)|\/storage\/logs\/laravel\.log/i.test(s) && served(raw) },
87
+ { id: "stack.php.phpunit_rce", title: "PHPUnit eval-stdin remote code execution attempt (CVE-2017-9841)", severity: "critical", category: "exploit", families: ["php"], sources: ["http"],
88
+ match: s => /eval-stdin\.php/i.test(s) && /\/phpunit\//i.test(s) },
89
+ { id: "stack.php.cgi_argument_injection", title: "PHP-CGI argument injection attempt (CVE-2024-4577)", severity: "critical", category: "exploit", families: ["php"], sources: ["http"],
90
+ match: s => /\?(?:­|-)d[\s+]*(?:allow_url_include|auto_prepend_file|cgi\.force_redirect)/i.test(s) },
91
+ { id: "stack.php.stream_wrapper", title: "PHP stream wrapper injection attempt", severity: "high", category: "exploit", families: ["php"], sources: ["http"],
92
+ match: s => /\b(?:php:\/\/(?:input|filter|stdin)|phar:\/\/|expect:\/\/|data:\/\/text\/plain;base64)/i.test(s) },
93
+ // WordPress
94
+ { id: "stack.wordpress.recon_user_enum", title: "WordPress user enumeration", severity: "medium", category: "recon", families: ["wordpress"], sources: ["http"],
95
+ match: s => /\/wp-json\/wp\/v2\/users|[?&]author=\d+(?:[&\s"]|$)/i.test(s) },
96
+ { id: "stack.wordpress.plugin_file_read", title: "WordPress plugin file read attempt", severity: "high", category: "exploit", families: ["wordpress"], sources: ["http"],
97
+ match: s => /admin-ajax\.php\?/i.test(s) && /[?&]action=(?:revslider_show_image|duplicator_download|kc_get_thumbn)/i.test(s) },
98
+ // Java and Spring
99
+ { id: "stack.spring.spring4shell", title: "Spring4Shell attempt (CVE-2022-22965)", severity: "critical", category: "exploit", families: ["spring", "java"], sources: ["http"],
100
+ match: s => /class\.module\.classLoader/i.test(s) },
101
+ { id: "stack.java.expression_injection", title: "Java expression injection attempt (SpEL or OGNL)", severity: "critical", category: "exploit", families: ["java"], sources: ["http", "log"],
102
+ match: s => /T\(java\.lang\.(?:Runtime|ProcessBuilder|System)\)|%\{\(#|\$\{#_memberAccess|@ognl\.OgnlContext|#context\[/i.test(s) },
103
+ { id: "stack.spring.actuator_exposed", title: "Spring Boot actuator served publicly", severity: "critical", category: "secrets", families: ["spring"], sources: ["http"],
104
+ match: (s, raw) => /\/actuator\/(?:env|heapdump|threaddump|configprops|gateway\/routes|jolokia|loggers|mappings)(?=[\s?"#/]|$)/i.test(s) && served(raw) },
105
+ { id: "stack.java.admin_console_exposed", title: "Java admin console served publicly", severity: "high", category: "secrets", families: ["java"], sources: ["http"],
106
+ match: (s, raw) => /\/(?:manager\/html|jolokia|jmx-console|web-console)(?=[\s?"#/]|$)/i.test(s) && served(raw) },
107
+ // Go
108
+ { id: "stack.go.pprof_exposed", title: "Go pprof or expvar served publicly", severity: "high", category: "secrets", families: ["go"], sources: ["http"],
109
+ match: (s, raw) => /\/debug\/(?:pprof|vars)(?=[\s?"#/]|$)/i.test(s) && served(raw) },
110
+ // .NET
111
+ { id: "stack.dotnet.diagnostics_exposed", title: "ASP.NET diagnostics served publicly (elmah or trace)", severity: "high", category: "secrets", families: ["dotnet"], sources: ["http"],
112
+ match: (s, raw) => /\/(?:elmah|trace)\.axd/i.test(s) && served(raw) },
113
+ { id: "stack.dotnet.telerik_rau", title: "Telerik UI upload exploit attempt (CVE-2019-18935)", severity: "critical", category: "exploit", families: ["dotnet"], sources: ["http"],
114
+ match: s => /Telerik\.Web\.UI\.WebResource\.axd\?/i.test(s) && /[?&]type=rau\b/i.test(s) },
115
+ { id: "stack.dotnet.web_config_exposed", title: "web.config served publicly", severity: "critical", category: "secrets", families: ["dotnet"], sources: ["http"],
116
+ match: (s, raw) => /\/web\.config(?=[\s?"#]|$)/i.test(s) && served(raw) },
117
+ // GraphQL, any stack
118
+ { id: "stack.graphql.recon_introspection", title: "GraphQL introspection query", severity: "medium", category: "recon", families: [], sources: ["http"],
119
+ // Each query parameter once, then its value: one regex across the line backtracked quadratically.
120
+ match: s => { for (const [, value] of s.matchAll(/[?&]query=([^\s"&]*)/gi))
121
+ if (/__(?:schema|type)\b/i.test(value))
122
+ return true; return false; } },
123
+ ];
124
+ const byId = new Map(stackRules.map(r => [r.id, r]));
125
+ /** The families a rule targets (stack rules only; built-in rules target every stack). */
126
+ export function ruleFamilies(ruleId) {
127
+ return byId.get(ruleId)?.families ?? [];
128
+ }
129
+ //# sourceMappingURL=monitor-stacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor-stacks.js","sourceRoot":"","sources":["../src/monitor-stacks.ts"],"names":[],"mappings":"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"}
package/dist/monitor.d.ts CHANGED
@@ -39,6 +39,8 @@ export interface MonitorOptions {
39
39
  maxCpu?: number;
40
40
  /** A project config file to use instead of ./beam.monitor.json (--config). */
41
41
  config?: string;
42
+ /** The app's framework (--stack). Default: detected from the --app directory. */
43
+ stack?: string;
42
44
  }
43
45
  export declare function runMonitor(options: MonitorOptions, log?: (message: string) => void): Promise<void>;
44
46
  export declare function monitorStatus(write?: (line: string) => void, llm?: string): Promise<number>;
package/dist/monitor.js CHANGED
@@ -19,6 +19,8 @@ import { LLM_PROVIDERS, describeOwnLlm, detectedLlmKeys, judgeWithOwnLlm, ownLlm
19
19
  import { ensureMonitorConfig, monitorConfigPath, resolveMonitorSettings, writeMonitorConfig } from "./monitor-config.js";
20
20
  export { BRUTE_FORCE_THRESHOLD, DEDUPE_WINDOW_MS, MAX_NEW_FINDINGS_PER_10_MIN, MonitorPipeline, meetsLevel } from "./monitor-pipeline.js";
21
21
  import { MonitorPipeline } from "./monitor-pipeline.js";
22
+ import { STACKS, isStack } from "./monitor-stacks.js";
23
+ import { detectStack } from "./stack-detect.js";
22
24
  /** Follows a log file like `tail -F`: survives rotation (new inode) and truncation (copytruncate). */
23
25
  export class FileTailer {
24
26
  path;
@@ -175,7 +177,7 @@ export async function runMonitor(options, log = m => console.error(`[beam monito
175
177
  const ownLlm = llmFrom(resolved, options.llm, log);
176
178
  const identity = await monitorAuth();
177
179
  if (!identity)
178
- throw new Error("Set BEAM_APP_TOKEN to the app's token from the dashboard's App monitoring page, or connect this machine with 'beam connect'.");
180
+ throw new Error("Set BEAM_APP_TOKEN to the app's token from App monitoring > Settings, apps and alerts in the dashboard, or connect this machine with 'beam connect'.");
179
181
  const custom = (await readPolicy())?.rules.customDetectors ?? [];
180
182
  let config = null;
181
183
  let lastRefresh = 0;
@@ -230,7 +232,13 @@ export async function runMonitor(options, log = m => console.error(`[beam monito
230
232
  await refresh(true);
231
233
  }
232
234
  const maxCpu = Math.min(100, Math.max(1, Number(resolved.locked.has("maxCpuPercent") ? saved.maxCpuPercent : options.maxCpu ?? saved.maxCpuPercent) || 25));
235
+ if (options.stack !== undefined && !isStack(options.stack))
236
+ throw new Error(`--stack must be one of: ${STACKS.join(", ")}.`);
237
+ const stack = isStack(options.stack) ? options.stack : appDir ? detectStack(appDir) ?? undefined : undefined;
238
+ if (stack)
239
+ log(`Stack: ${stack}${options.stack ? "" : ` (detected from ${appDir})`}. Attacks on other frameworks are rolled up.`);
233
240
  const pipeline = new MonitorPipeline({
241
+ stack,
234
242
  level: () => (config && Date.now() >= pausedUntil ? config.level : null),
235
243
  customDetectors: () => custom,
236
244
  cpuBudgetMsPerMinute: 600 * maxCpu, // 1% of a core = 600 ms per minute
@@ -299,7 +307,7 @@ export async function runMonitor(options, log = m => console.error(`[beam monito
299
307
  const outcome = await send(batch);
300
308
  retry = outcome === "retry";
301
309
  return outcome;
302
- });
310
+ }, { force });
303
311
  }
304
312
  finally {
305
313
  flushing = false;
@@ -407,7 +415,7 @@ export async function monitorStatus(write = console.log, llm) {
407
415
  return 1;
408
416
  }
409
417
  if (!identity) {
410
- write("Set BEAM_APP_TOKEN to the app's token from the dashboard's App monitoring page, or connect this machine with 'beam connect'.");
418
+ write("Set BEAM_APP_TOKEN to the app's token from App monitoring > Settings, apps and alerts in the dashboard, or connect this machine with 'beam connect'.");
411
419
  return 1;
412
420
  }
413
421
  const result = await fetchMonitorConfig(identity);
@@ -452,7 +460,7 @@ export async function monitorTest(write = console.log, llm) {
452
460
  return 1;
453
461
  }
454
462
  if (!identity) {
455
- write("✖ Set BEAM_APP_TOKEN to the app's token from the dashboard's App monitoring page, or connect this machine with 'beam connect'.");
463
+ write("✖ Set BEAM_APP_TOKEN to the app's token from App monitoring > Settings, apps and alerts in the dashboard, or connect this machine with 'beam connect'.");
456
464
  return 1;
457
465
  }
458
466
  const config = await fetchMonitorConfig(identity);
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../src/monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type Finding, type Severity } from "./core.js";
2
+ type CodeRule = {
3
+ id: string;
4
+ title: string;
5
+ severity: Severity;
6
+ explanation: string;
7
+ /** Cheap substring prefilter: the regex only runs when one of these occurs in the file. */
8
+ hints: string[];
9
+ find: (content: string) => number;
10
+ /** A signal only feeds combinations and is never reported on its own. */
11
+ signal?: boolean;
12
+ };
13
+ export declare const codeRules: CodeRule[];
14
+ export declare function scanCode(content: string, options?: {
15
+ shell?: boolean;
16
+ }): Finding[];
17
+ export declare const isSignal: (id: string) => boolean;
18
+ export declare function packageComboFindings(perFile: Array<{
19
+ file: string;
20
+ ids: Set<string>;
21
+ }>, packageIds: Set<string>): Array<Finding & {
22
+ file: string;
23
+ }>;
24
+ export declare const normalizePipName: (name: string) => string;
25
+ /** The popular package `name` looks like a typo of, if any. */
26
+ export declare function typosquatOf(name: string, ecosystem: "npm" | "pip"): string | undefined;
27
+ export {};
@@ -0,0 +1,137 @@
1
+ import { redact } from "./core.js";
2
+ import { riskRules } from "./skill-risk-rules.js";
3
+ const regex = (re) => (content) => re.exec(content)?.index ?? -1;
4
+ // At least `min` hits of a pattern in one file (javascript-obfuscator output is full of _0x names).
5
+ const many = (re, min) => (content) => {
6
+ let count = 0, first = -1;
7
+ for (const m of content.matchAll(re)) {
8
+ if (first < 0)
9
+ first = m.index ?? 0;
10
+ if (++count >= min)
11
+ return first;
12
+ }
13
+ return -1;
14
+ };
15
+ export const codeRules = [
16
+ { id: "pkg.decode_exec", title: "Decodes a payload and executes it", severity: "critical", explanation: "Code is base64/hex/zlib-decoded and passed straight to eval or exec, so what runs is never visible in the source. This is the signature of most malicious PyPI and npm droppers.",
17
+ hints: ["atob", "Buffer.from", "b64decode", "decompress", "marshal", "fromhex", "codecs"],
18
+ find: regex(/\b(?:eval|Function|runInThisContext|runInNewContext|runInContext)\s*\(\s*(?:atob\s*\(|Buffer\.from\s*\()|\bnew\s+Function\s*\(\s*(?:atob\s*\(|Buffer\.from\s*\()|\b(?:exec|eval)\s*\(\s*(?:compile\s*\(\s*)?(?:base64\.b64decode|zlib\.decompress|marshal\.loads|bytes\.fromhex|codecs\.decode|__import__\(\s*["'](?:base64|zlib|marshal|codecs)["']\s*\))/) },
19
+ { id: "pkg.exfil_endpoint", title: "Hardcoded data-collection endpoint", severity: "high", explanation: "The code contains a Discord or Telegram bot webhook with its token, or a public request-capture service. Malicious packages use these to receive stolen data without running their own server.",
20
+ hints: ["discord", "telegram", "webhook.site", "pipedream", "interact.sh", "oast.", "burpcollaborator", "requestbin", "requestcatcher", "canarytokens", "ngrok", "transfer.sh", "pastebin"],
21
+ find: regex(/discord(?:app)?\.com\/api\/webhooks\/\d{15,20}\/[\w-]{30,}|api\.telegram\.org\/bot\d{6,12}:[\w-]{30,}|\bwebhook\.site\/[\w-]{8,}|\.m\.pipedream\.net\b|\b(?:interact\.sh|oast\.(?:fun|live|me|online|pro|site)|burpcollaborator\.net|requestbin\.(?:net|com)|requestcatcher\.com|canarytokens\.com)\b|\b[\w-]+\.ngrok(?:-free)?\.(?:io|app)\b|\btransfer\.sh\b|\bpastebin\.com\/raw\b/) },
22
+ { id: "pkg.env_harvest", title: "Serializes the whole environment", severity: "high", explanation: "Every environment variable, which on a developer machine or CI runner includes API keys and tokens, is turned into one string. Ordinary code reads the variables it needs by name.",
23
+ hints: ["process.env", "os.environ"],
24
+ find: regex(/JSON\.stringify\(\s*process\.env\b|json\.dumps\(\s*(?:dict\(\s*)?os\.environ\b|\bstr\(\s*os\.environ\s*\)/) },
25
+ { id: "pkg.obfuscated", title: "Obfuscated code", severity: "high", explanation: "The file looks like javascript-obfuscator output or a long run of hex escapes. Published libraries are minified, not obfuscated; obfuscation exists to stop a reviewer from reading the code.",
26
+ hints: ["_0x", "\\x"],
27
+ find: content => Math.max(many(/\b_0x[0-9a-f]{4,6}\b/g, 40)(content), regex(/(?:\\x[2-7][0-9a-fA-F]){40,}/)(content)) },
28
+ { id: "pkg.sensitive_files", title: "Reads credential or wallet files", severity: "high", explanation: "The code references SSH keys, cloud or registry credentials, shell history, browser password stores or crypto wallets. Confirm the package has a reason to touch them.",
29
+ hints: [".ssh", "id_rsa", "id_ed25519", "id_ecdsa", ".aws", ".git-credentials", ".docker", ".kube", "gcloud", "/etc/", "Login Data", "Local State", "cookies.sqlite", "key4.db", "wallet.dat", "Exodus", "solana", ".electrum", "Keychains", "_history"],
30
+ find: regex(/\.ssh[\\/](?:id_\w+|authorized_keys|config)\b|\bid_(?:rsa|ed25519|ecdsa)\b|\.aws[\\/]credentials\b|\.git-credentials\b|\.docker[\\/]config\.json\b|\.kube[\\/]config\b|\.config[\\/]gcloud\b|\/etc\/shadow\b|[\\/]Login Data\b|[\\/]Local State\b|\bcookies\.sqlite\b|\bkey4\.db\b|\bwallet\.dat\b|\bExodus[\\/]|\.config[\\/]solana[\\/]id\.json\b|\.electrum\b|Library[\\/]Keychains\b|\.(?:bash|zsh)_history\b/) },
31
+ // CLIs read .npmrc for registry settings all the time; stealing the publish token in it is how
32
+ // npm worms spread (Shai-Hulud, 2025). So it only counts at install time or next to a webhook.
33
+ { id: "pkg.registry_tokens", title: "Reads package-registry credentials", severity: "info", explanation: "The code reads .npmrc or .pypirc, where registry publish tokens live.", signal: true,
34
+ hints: [".npmrc", ".pypirc"],
35
+ find: regex(/\.npmrc\b|\.pypirc\b/) },
36
+ { id: "pkg.recon", title: "Collects host details", severity: "info", explanation: "Hostname, username or network interfaces are read together.", signal: true,
37
+ hints: ["hostname", "userInfo", "networkInterfaces", "getuser", "getlogin", "platform.node"],
38
+ find: content => {
39
+ const hits = [/\bos\.hostname\(\)/, /\bos\.userInfo\(/, /\bos\.networkInterfaces\(/, /\bsocket\.gethostname\(\)/, /\bgetpass\.getuser\(\)/, /\bos\.getlogin\(\)/, /\bplatform\.node\(\)/]
40
+ .map(re => re.exec(content)?.index ?? -1).filter(i => i >= 0);
41
+ return hits.length >= 2 ? Math.min(...hits) : -1;
42
+ } },
43
+ { id: "pkg.network", title: "Makes network calls", severity: "info", explanation: "The file sends requests or opens sockets.", signal: true,
44
+ hints: ["http", "fetch", "axios", "XMLHttpRequest", "net", "dns", "WebSocket", "requests.", "urlopen", "socket.", "curl", "wget"],
45
+ find: regex(/\brequire\(\s*["'](?:node:)?(?:https?|net|dns|tls|dgram)["']\s*\)\.\w+\s*\(|\bhttps?\.(?:request|get)\s*\(|\bfetch\s*\(|\baxios(?:\.\w+)?\s*\(|\bXMLHttpRequest\b|\bnet\.(?:connect|createConnection)\s*\(|\bdns\.(?:lookup|resolve\w*)\s*\(|\bnew\s+WebSocket\s*\(|\brequests\.(?:get|post|put)\s*\(|\burlopen\s*\(|\burllib\.request\.Request\b|\bhttp\.client\.HTTPS?Connection\b|\bsocket\.(?:socket|create_connection)\s*\(|\bhttpx\.(?:get|post|Client)\b|\b(?:curl|wget)\s[^\n]{0,80}https?:\/\//) },
46
+ ];
47
+ // Shell-shaped rules borrowed from the skill scanner. They only run on code that executes at
48
+ // install time and on bundled shell scripts: `launchctl load` in pm2's runtime code is its job; in
49
+ // a postinstall it's a package making itself permanent.
50
+ const SHELL_RULE_IDS = new Set(["risk.persistence", "risk.destructive_broad", "risk.download_exec", "risk.decode_exec"]);
51
+ const shellRules = riskRules.filter(r => SHELL_RULE_IDS.has(r.id));
52
+ const lineOf = (content, index) => content.slice(0, index).split("\n").length;
53
+ // Minified files are one enormous line, so evidence is cut around the match rather than taken whole.
54
+ const around = (content, index) => redact(content.slice(Math.max(0, index - 40), index + 160).replace(/\s+/g, " ").trim()).slice(0, 200);
55
+ export function scanCode(content, options = {}) {
56
+ const findings = [];
57
+ for (const rule of codeRules) {
58
+ if (!rule.hints.some(h => content.includes(h)))
59
+ continue;
60
+ const at = rule.find(content);
61
+ if (at >= 0)
62
+ findings.push({ id: rule.id, title: rule.title, severity: rule.severity, explanation: rule.explanation, evidence: around(content, at), line: lineOf(content, at) });
63
+ }
64
+ if (options.shell) {
65
+ const lines = content.split(/\r?\n/);
66
+ for (const rule of shellRules) {
67
+ const i = lines.findIndex(l => l.length <= 2000 && rule.re.test(l));
68
+ if (i >= 0)
69
+ findings.push({ id: rule.id, title: rule.title, severity: rule.severity, explanation: rule.explanation, evidence: redact(lines[i].trim()).slice(0, 200), line: i + 1 });
70
+ }
71
+ }
72
+ return findings;
73
+ }
74
+ export const isSignal = (id) => codeRules.some(r => r.id === id && r.signal);
75
+ // "install" is a marker for files that run when the package is installed (npm lifecycle scripts
76
+ // and what they call, a sdist's setup.py). "package" combos look across the whole package.
77
+ const COMBOS = [
78
+ { scope: "file", all: ["pkg.env_harvest", "pkg.network"], id: "pkg.combo.env_exfil", title: "Sends the environment over the network", severity: "critical", explanation: "The same file serializes every environment variable and makes network calls: the shape of token theft." },
79
+ { scope: "file", all: ["install", "pkg.env_harvest"], id: "pkg.combo.install_env", title: "Collects the environment during install", severity: "critical", explanation: "Code that runs on install serializes every environment variable. Nothing about installing a library needs that." },
80
+ { scope: "file", all: ["install", "pkg.recon", "pkg.network"], id: "pkg.combo.install_beacon", title: "Fingerprints the machine and phones home during install", severity: "critical", explanation: "Install-time code reads the hostname or username and sends network traffic, the pattern of dependency-confusion and recon payloads." },
81
+ { scope: "file", all: ["install", "pkg.exfil_endpoint"], id: "pkg.combo.install_exfil", title: "Install-time code talks to a data-collection endpoint", severity: "critical", explanation: "A webhook or request-capture service is contacted from code that runs on install." },
82
+ { scope: "file", all: ["install", "pkg.obfuscated"], id: "pkg.combo.install_obfuscated", title: "Obfuscated code runs during install", severity: "critical", explanation: "What the install script does is deliberately hidden." },
83
+ { scope: "file", all: ["pkg.sensitive_files", "pkg.exfil_endpoint"], id: "pkg.combo.credential_exfil", title: "Credential files and a data-collection endpoint together", severity: "critical", explanation: "Reading key, token or wallet files next to a webhook is the shape of credential theft." },
84
+ { scope: "file", all: ["install", "pkg.registry_tokens"], id: "pkg.combo.install_registry_tokens", title: "Reads registry tokens during install", severity: "high", explanation: "Install-time code reads .npmrc or .pypirc. Publish tokens stolen this way let a worm republish every package the victim maintains." },
85
+ { scope: "file", all: ["pkg.registry_tokens", "pkg.exfil_endpoint"], id: "pkg.combo.registry_token_exfil", title: "Registry tokens and a data-collection endpoint together", severity: "critical", explanation: "Reading .npmrc or .pypirc next to a webhook is the shape of publish-token theft." },
86
+ { scope: "file", all: ["pkg.sensitive_files", "pkg.network"], id: "pkg.combo.credential_network", title: "Reads credential files and makes network calls", severity: "medium", explanation: "Legitimate for SDKs that load their own credentials; otherwise a reason to read the file." },
87
+ { scope: "package", all: ["pkg.typosquat", "pkg.new_package"], id: "pkg.combo.fresh_typosquat", title: "Brand-new package named like a popular one", severity: "critical", explanation: "A package published in the last month whose name is one typo from a popular package is the classic typosquat (and the shape of names AI agents hallucinate)." },
88
+ ];
89
+ export function packageComboFindings(perFile, packageIds) {
90
+ const all = new Set([...packageIds, ...perFile.flatMap(f => [...f.ids])]);
91
+ const out = [];
92
+ for (const c of COMBOS) {
93
+ const files = c.scope === "package" ? (c.all.every(id => all.has(id)) ? ["(whole package)"] : []) : perFile.filter(f => c.all.every(id => f.ids.has(id))).map(f => f.file);
94
+ for (const file of files)
95
+ out.push({ id: c.id, title: c.title, severity: c.severity, explanation: c.explanation, evidence: `Together: ${c.all.join(" + ")}`, file });
96
+ }
97
+ return out;
98
+ }
99
+ // Typosquat check against the most-installed names. Only the names a person or agent typed are
100
+ // checked (the requested package, a project's direct dependencies), never transitive ones.
101
+ const POPULAR = {
102
+ npm: ["react", "react-dom", "preact", "angular", "svelte", "next", "nuxt", "express", "fastify", "lodash", "underscore", "ramda", "axios", "request", "node-fetch", "superagent", "chalk", "commander", "yargs", "minimist", "inquirer", "debug", "dotenv", "cross-env", "rimraf", "mkdirp", "minimatch", "semver", "moment", "dayjs", "date-fns", "luxon", "typescript", "webpack", "rollup", "esbuild", "parcel", "@babel/core", "eslint", "prettier", "mocha", "vitest", "mongoose", "mongodb", "sequelize", "prisma", "@prisma/client", "mysql", "mysql2", "redis", "ioredis", "sqlite3", "socket.io", "jsonwebtoken", "bcrypt", "bcryptjs", "passport", "helmet", "morgan", "body-parser", "cookie-parser", "multer", "nodemon", "colors", "color", "classnames", "rxjs", "tslib", "core-js", "bluebird", "async", "fs-extra", "chokidar", "cheerio", "puppeteer", "playwright", "jquery", "bootstrap", "tailwindcss", "postcss", "autoprefixer", "styled-components", "redux", "react-redux", "zustand", "react-router", "react-router-dom", "graphql", "openai", "@anthropic-ai/sdk", "langchain", "discord.js", "electron", "three", "chart.js", "marked", "highlight.js", "sharp", "nodemailer", "stripe", "twilio", "firebase", "aws-sdk", "@types/node", "@types/react", "ethers", "web3", "event-stream", "ua-parser-js", "node-ipc", "coffee-script"],
103
+ pip: ["requests", "urllib3", "numpy", "pandas", "scipy", "matplotlib", "seaborn", "scikit-learn", "tensorflow", "torch", "torchvision", "keras", "transformers", "openai", "anthropic", "langchain", "flask", "django", "fastapi", "uvicorn", "gunicorn", "pydantic", "sqlalchemy", "psycopg2", "psycopg2-binary", "pymysql", "redis", "celery", "boto3", "botocore", "awscli", "pytest", "setuptools", "wheel", "python-dateutil", "pyyaml", "jinja2", "markupsafe", "click", "rich", "typer", "tqdm", "pillow", "opencv-python", "beautifulsoup4", "lxml", "selenium", "scrapy", "httpx", "aiohttp", "cryptography", "pycryptodome", "paramiko", "colorama", "termcolor", "attrs", "certifi", "charset-normalizer", "packaging", "virtualenv", "poetry", "black", "flake8", "mypy", "pylint", "isort", "jupyter", "notebook", "ipython", "plotly", "networkx", "sympy", "nltk", "spacy", "xgboost", "lightgbm", "discord-py", "python-telegram-bot", "pygame", "tweepy", "docker", "kubernetes", "protobuf", "grpcio", "websockets", "pyjwt", "bcrypt", "python-dotenv", "loguru", "huggingface-hub", "datasets", "tokenizers", "accelerate", "diffusers", "streamlit", "gradio"],
104
+ };
105
+ // PEP 503: pip treats "Foo_Bar", "foo.bar" and "foo-bar" as the same package.
106
+ export const normalizePipName = (name) => name.toLowerCase().replace(/[-_.]+/g, "-");
107
+ // Edit distance with adjacent transpositions ("reqeusts"), stopping early once it passes 1.
108
+ function withinOneEdit(a, b) {
109
+ if (Math.abs(a.length - b.length) > 1)
110
+ return false;
111
+ let prev2 = [], prev = Array.from({ length: b.length + 1 }, (_, j) => j);
112
+ for (let i = 1; i <= a.length; i++) {
113
+ const row = [i];
114
+ for (let j = 1; j <= b.length; j++) {
115
+ row[j] = Math.min(prev[j] + 1, row[j - 1] + 1, prev[j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));
116
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1])
117
+ row[j] = Math.min(row[j], prev2[j - 2] + 1);
118
+ }
119
+ if (Math.min(...row) > 1)
120
+ return false;
121
+ prev2 = prev;
122
+ prev = row;
123
+ }
124
+ return prev[b.length] <= 1;
125
+ }
126
+ /** The popular package `name` looks like a typo of, if any. */
127
+ export function typosquatOf(name, ecosystem) {
128
+ const norm = (n) => (ecosystem === "pip" ? normalizePipName(n) : n.toLowerCase());
129
+ const candidate = norm(name);
130
+ const popular = POPULAR[ecosystem].map(norm);
131
+ if (candidate.length < 5 || popular.includes(candidate))
132
+ return undefined;
133
+ // npm names differ by separators alone (crossenv vs cross-env, the 2017 typosquat); pip normalizes those away.
134
+ const bare = (n) => n.replace(/[-_.]/g, "");
135
+ return popular.find(p => withinOneEdit(candidate, p) || (ecosystem === "npm" && bare(candidate) === bare(p)));
136
+ }
137
+ //# sourceMappingURL=package-risk-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-risk-rules.js","sourceRoot":"","sources":["../src/package-risk-rules.ts"],"names":[],"mappings":"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"}