govyn 0.2.5 → 0.2.6

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.
package/README.md CHANGED
@@ -27,10 +27,28 @@ Govyn is a wall. There are no other doors.
27
27
  - **Policy engine** — YAML-based rules: rate limits, model restrictions, require-approval gates, and custom policies
28
28
  - **Action logging** — Every request logged with agent identity, cost, tokens, latency, and full context
29
29
  - **Multi-provider** — Route OpenAI and Anthropic traffic through a single proxy with per-provider API keys
30
+ - **Content filtering** — Built-in PII detection (SSN, credit card, email, phone) plus custom regex patterns evaluated against message content only
31
+ - **SSRF protection** — IPv4 and IPv6 private range blocking, DNS rebinding defense with fetch-time resolution, cloud metadata endpoint blocking
32
+ - **ReDoS protection** — All user-supplied regex patterns validated against catastrophic backtracking before compilation
30
33
  - **Locked-down management API** — Local-only by default, with optional admin API key and browser origin allowlist for remote dashboards
31
34
  - **Zero agent changes** — Agents just point at a different base URL. No SDK imports, no code changes
32
35
  - **Fail-open by default** — Proxy errors don't break your agents. Configurable to fail-closed for high-security deployments
33
36
 
37
+ ## Govyn Cloud
38
+
39
+ The open-source proxy handles governance enforcement on your own infrastructure. [Govyn Cloud](https://govynai.com) adds managed features that build on top of the proxy:
40
+
41
+ - **Semantic caching** — Hash-based exact-match and embedding-based semantic similarity caching for tool calls. Policy-driven, per-tool TTL, auto-suggest cacheable tools from observed patterns. Reduces redundant LLM calls by serving cached results for identical or semantically similar stateless tool calls.
42
+ - **Safety inspector** — 5 SQL-based analyzers observe agent behavior and auto-suggest policies (model routing, rate limits, budgets, content filters, cache policies). One-click apply with projected impact and confidence scores. Observe mode lets you trial policies without enforcement.
43
+ - **MCP governance** — MCP server registry with encrypted auth, JSON-RPC tool discovery, and default-deny proxy gateway. Extends the proxy model to MCP tool-calling protocols with full policy enforcement and telemetry.
44
+ - **Compliance export** — PDF compliance reports with 5 audit sections, R2 storage, scheduled and on-demand generation, email delivery via Resend. Provides auditable proof of governance for regulated environments.
45
+ - **Team CLI** — Browser OAuth login, live activity tail, YAML policy import/export, and commands for all cloud features. Terminal-first workflow for engineering teams.
46
+ - **Dashboard** — React SPA with Clerk auth, cost overview, agent detail, activity feed, policy management, approval queue, cache statistics, alert configuration, and billing management via Stripe.
47
+ - **Multi-tenant isolation** — Per-org proxy auth tokens, AES-256-GCM transit encryption, encryption key rotation, and prefix-based O(1) API key lookup.
48
+ - **Transactional emails** — 9 branded email templates (welcome, budget alerts, anomaly alerts, approval notifications, billing lifecycle, compliance reports) via Resend.
49
+
50
+ [Try Govyn Cloud →](https://govynai.com)
51
+
34
52
  ## Quickstart
35
53
 
36
54
  Get from zero to a governed API call in under 5 minutes.
@@ -184,6 +202,9 @@ See [`configs/openai-only.yaml`](./configs/openai-only.yaml) for the canonical m
184
202
  - `GET /api/approvals/:id` remains accessible without admin auth so the approval polling flow continues to work for agents.
185
203
  - Approval tokens are single-use and bound to the original approved agent, target path, and request body.
186
204
  - Alert webhooks reject loopback and private-network destinations, resolve DNS before connect, and block redirects to prevent SSRF against internal services.
205
+ - SSRF protection covers IPv4 private ranges, IPv6 loopback/link-local/ULA, IPv4-mapped IPv6, cloud metadata endpoints, and DNS rebinding attacks (fetch-time resolution).
206
+ - Policy regex patterns from YAML are validated against ReDoS (nested quantifiers, overlapping alternation) before compilation. Unsafe patterns are rejected as non-matches.
207
+ - Content filter patterns evaluate against extracted message content only — model names, token counts, and request metadata cannot trigger or evade content filters.
187
208
 
188
209
  ### Generating Agent Keys
189
210
 
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Extract concatenated message content strings from a request body.
3
+ *
4
+ * Handles OpenAI messages[].content (string or content_parts[].text)
5
+ * and Anthropic messages[].content (string or content[].text).
6
+ *
7
+ * Returns only message text -- model names, tokens, and other request
8
+ * metadata are excluded to prevent content filter evasion via metadata
9
+ * injection (e.g., putting PII in a model name field would not trigger
10
+ * a content filter that scans the full serialized body).
11
+ *
12
+ * @param requestBody - Parsed JSON request body
13
+ * @returns Concatenated message text, or empty string if no messages found
14
+ */
15
+ export declare function extractMessageContent(requestBody: Record<string, unknown>): string;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Extract concatenated message content strings from a request body.
3
+ *
4
+ * Handles OpenAI messages[].content (string or content_parts[].text)
5
+ * and Anthropic messages[].content (string or content[].text).
6
+ *
7
+ * Returns only message text -- model names, tokens, and other request
8
+ * metadata are excluded to prevent content filter evasion via metadata
9
+ * injection (e.g., putting PII in a model name field would not trigger
10
+ * a content filter that scans the full serialized body).
11
+ *
12
+ * @param requestBody - Parsed JSON request body
13
+ * @returns Concatenated message text, or empty string if no messages found
14
+ */
15
+ export function extractMessageContent(requestBody) {
16
+ const messages = requestBody['messages'];
17
+ if (!Array.isArray(messages))
18
+ return '';
19
+ const parts = [];
20
+ for (const msg of messages) {
21
+ if (typeof msg !== 'object' || msg === null)
22
+ continue;
23
+ const m = msg;
24
+ const content = m['content'];
25
+ if (typeof content === 'string') {
26
+ parts.push(content);
27
+ }
28
+ else if (Array.isArray(content)) {
29
+ for (const part of content) {
30
+ if (typeof part === 'object' && part !== null) {
31
+ const p = part;
32
+ if (typeof p['text'] === 'string') {
33
+ parts.push(p['text']);
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+ return parts.join('\n');
40
+ }
41
+ //# sourceMappingURL=message-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-content.js","sourceRoot":"","sources":["../src/message-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAoC;IAEpC,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QACtD,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,MAAM,CAAC,GAAG,IAA+B,CAAC;oBAC1C,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAClC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -17,6 +17,8 @@
17
17
  * Performance target: 100 policies in <5ms (ADR-006, ADR-013).
18
18
  */
19
19
  import { parsePolicies, parsePoliciesFromFile } from './policy-parser.js';
20
+ import { safeRegexTest } from './safe-regex.js';
21
+ import { extractMessageContent } from './message-content.js';
20
22
  /**
21
23
  * Infer the action type from an API endpoint path.
22
24
  *
@@ -93,7 +95,7 @@ function evaluateBlock(policy, context) {
93
95
  if (match.model !== undefined) {
94
96
  const contextModel = context.model ?? '';
95
97
  if (useRegex) {
96
- if (!new RegExp(match.model).test(contextModel)) {
98
+ if (!safeRegexTest(match.model, contextModel)) {
97
99
  return { policyName: policy.name, policyType: 'block', allowed: true };
98
100
  }
99
101
  }
@@ -105,7 +107,7 @@ function evaluateBlock(policy, context) {
105
107
  }
106
108
  if (match.path !== undefined) {
107
109
  if (useRegex) {
108
- if (!new RegExp(match.path).test(context.path)) {
110
+ if (!safeRegexTest(match.path, context.path)) {
109
111
  return { policyName: policy.name, policyType: 'block', allowed: true };
110
112
  }
111
113
  }
@@ -117,7 +119,7 @@ function evaluateBlock(policy, context) {
117
119
  }
118
120
  if (match.body !== undefined && context.body) {
119
121
  if (useRegex) {
120
- if (!new RegExp(match.body).test(context.body)) {
122
+ if (!safeRegexTest(match.body, context.body)) {
121
123
  return { policyName: policy.name, policyType: 'block', allowed: true };
122
124
  }
123
125
  }
@@ -135,7 +137,7 @@ function evaluateBlock(policy, context) {
135
137
  for (const [headerName, pattern] of Object.entries(match.headers)) {
136
138
  const headerValue = context.headers[headerName.toLowerCase()] ?? context.headers[headerName] ?? '';
137
139
  if (useRegex) {
138
- if (!new RegExp(pattern).test(headerValue)) {
140
+ if (!safeRegexTest(pattern, headerValue)) {
139
141
  return { policyName: policy.name, policyType: 'block', allowed: true };
140
142
  }
141
143
  }
@@ -287,54 +289,47 @@ const BUILTIN_PATTERNS = {
287
289
  email: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/,
288
290
  phone: /\b(?:\+?1[-.\s]?)?(?:\(?\d{3}\)?[-.\s]?)\d{3}[-.\s]?\d{4}\b/,
289
291
  };
290
- /**
291
- * Recursively extract all string values from a parsed JSON object.
292
- * Only values are extracted (not keys), to avoid false positives from JSON structure.
293
- */
294
- function extractStringValues(obj) {
295
- const values = [];
296
- if (typeof obj === 'string') {
297
- values.push(obj);
298
- }
299
- else if (Array.isArray(obj)) {
300
- for (const item of obj) {
301
- values.push(...extractStringValues(item));
302
- }
303
- }
304
- else if (obj !== null && typeof obj === 'object') {
305
- for (const val of Object.values(obj)) {
306
- values.push(...extractStringValues(val));
307
- }
308
- }
309
- return values;
310
- }
311
292
  /**
312
293
  * Evaluate a content filter policy against a request context.
313
294
  *
314
- * Parses the request body as JSON, extracts all string values (recursive),
315
- * and scans them against configured patterns. Built-in pattern names
316
- * resolve to predefined regexes; unrecognized names are treated as custom regex strings.
295
+ * Parses the request body as JSON, extracts only message content text
296
+ * (not metadata like model names or token counts) and scans it against
297
+ * configured patterns. Built-in pattern names resolve to predefined
298
+ * regexes; unrecognized names are treated as custom regex strings.
299
+ *
300
+ * Uses extractMessageContent() for scoped extraction and safeRegexTest()
301
+ * for ReDoS-safe custom pattern matching.
317
302
  */
318
303
  function evaluateContentFilter(policy, context) {
319
304
  if (!context.body) {
320
305
  return { policyName: policy.name, policyType: 'content_filter', allowed: true };
321
306
  }
322
- // Parse body as JSON and extract string values
323
- let stringValues;
307
+ // Parse body as JSON and extract message content only (not metadata)
308
+ let messageText;
324
309
  try {
325
310
  const parsed = JSON.parse(context.body);
326
- stringValues = extractStringValues(parsed);
311
+ messageText = extractMessageContent(parsed);
327
312
  }
328
313
  catch {
329
314
  // Non-JSON body — can't scan, allow
330
315
  return { policyName: policy.name, policyType: 'content_filter', allowed: true };
331
316
  }
332
- const combinedText = stringValues.join(' ');
317
+ // No message content to scan — allow
318
+ if (!messageText) {
319
+ return { policyName: policy.name, policyType: 'content_filter', allowed: true };
320
+ }
333
321
  // Check each pattern
334
322
  for (const pattern of policy.patterns) {
335
323
  const builtinRegex = BUILTIN_PATTERNS[pattern];
336
- const regex = builtinRegex ?? new RegExp(pattern);
337
- if (regex.test(combinedText)) {
324
+ let matched;
325
+ if (builtinRegex) {
326
+ matched = builtinRegex.test(messageText);
327
+ }
328
+ else {
329
+ // Custom regex pattern — use ReDoS-safe test
330
+ matched = safeRegexTest(pattern, messageText);
331
+ }
332
+ if (matched) {
338
333
  const reason = policy.reveal_pattern
339
334
  ? `Content filter triggered: ${builtinRegex ? pattern : 'custom pattern'} detected`
340
335
  : `Content blocked by policy '${policy.name}'`;
@@ -668,7 +663,7 @@ function evaluateRequireApproval(policy, context) {
668
663
  if (match.model !== undefined) {
669
664
  const contextModel = context.model ?? '';
670
665
  if (useRegex) {
671
- if (!new RegExp(match.model).test(contextModel)) {
666
+ if (!safeRegexTest(match.model, contextModel)) {
672
667
  return { policyName: policy.name, policyType: 'require_approval', allowed: true };
673
668
  }
674
669
  }
@@ -680,7 +675,7 @@ function evaluateRequireApproval(policy, context) {
680
675
  }
681
676
  if (match.path !== undefined) {
682
677
  if (useRegex) {
683
- if (!new RegExp(match.path).test(context.path)) {
678
+ if (!safeRegexTest(match.path, context.path)) {
684
679
  return { policyName: policy.name, policyType: 'require_approval', allowed: true };
685
680
  }
686
681
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../src/policy-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../src/policy-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ReDoS (Regular Expression Denial of Service) protection utilities.
3
+ *
4
+ * Checks user-supplied regex patterns for known dangerous constructs
5
+ * before compiling them. Unsafe patterns are rejected (return false)
6
+ * rather than risking catastrophic backtracking.
7
+ *
8
+ * Dangerous constructs detected:
9
+ * - Nested quantifiers: e.g., (a+)+ or (a*){2,}
10
+ * - Overlapping alternation with quantifiers: e.g., (a|a)+
11
+ * - Excessive pattern length (>500 chars)
12
+ */
13
+ /**
14
+ * Check whether a regex pattern is safe to compile and execute.
15
+ *
16
+ * Returns false if the pattern:
17
+ * - Exceeds MAX_PATTERN_LENGTH
18
+ * - Contains nested quantifiers
19
+ * - Contains overlapping alternation with quantifiers
20
+ * - Is not a valid regex (would throw on `new RegExp()`)
21
+ *
22
+ * @param pattern - The regex pattern string to validate
23
+ * @returns true if the pattern is safe to use, false otherwise
24
+ */
25
+ export declare function isSafePattern(pattern: string): boolean;
26
+ /**
27
+ * Safely test a regex pattern against an input string.
28
+ *
29
+ * If the pattern is unsafe (per isSafePattern), returns false immediately
30
+ * instead of risking catastrophic backtracking. This is the correct
31
+ * semantic for policy matching: an unsafe pattern simply does not match.
32
+ *
33
+ * @param pattern - The regex pattern string
34
+ * @param input - The string to test against
35
+ * @returns true if the pattern is safe AND matches the input
36
+ */
37
+ export declare function safeRegexTest(pattern: string, input: string): boolean;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * ReDoS (Regular Expression Denial of Service) protection utilities.
3
+ *
4
+ * Checks user-supplied regex patterns for known dangerous constructs
5
+ * before compiling them. Unsafe patterns are rejected (return false)
6
+ * rather than risking catastrophic backtracking.
7
+ *
8
+ * Dangerous constructs detected:
9
+ * - Nested quantifiers: e.g., (a+)+ or (a*){2,}
10
+ * - Overlapping alternation with quantifiers: e.g., (a|a)+
11
+ * - Excessive pattern length (>500 chars)
12
+ */
13
+ /** Maximum allowed pattern length to prevent resource exhaustion. */
14
+ const MAX_PATTERN_LENGTH = 500;
15
+ /**
16
+ * Detects nested quantifiers like (a+)+, (a*){2,}, (a{1,3})*
17
+ * These cause exponential backtracking on non-matching input.
18
+ */
19
+ const NESTED_QUANTIFIER = /(\+|\*|\{[^}]+\})\s*\)(\+|\*|\{[^}]+\})/;
20
+ /**
21
+ * Detects overlapping alternation with quantifiers like (a|a)+, (ab|ab)*
22
+ * These create ambiguous match paths leading to exponential time.
23
+ */
24
+ const OVERLAPPING_ALT = /\(([^)]*\|[^)]*)\)(\+|\*|\{[^}]+\})/;
25
+ /**
26
+ * Check whether a regex pattern is safe to compile and execute.
27
+ *
28
+ * Returns false if the pattern:
29
+ * - Exceeds MAX_PATTERN_LENGTH
30
+ * - Contains nested quantifiers
31
+ * - Contains overlapping alternation with quantifiers
32
+ * - Is not a valid regex (would throw on `new RegExp()`)
33
+ *
34
+ * @param pattern - The regex pattern string to validate
35
+ * @returns true if the pattern is safe to use, false otherwise
36
+ */
37
+ export function isSafePattern(pattern) {
38
+ if (pattern.length > MAX_PATTERN_LENGTH)
39
+ return false;
40
+ if (NESTED_QUANTIFIER.test(pattern))
41
+ return false;
42
+ if (OVERLAPPING_ALT.test(pattern))
43
+ return false;
44
+ try {
45
+ new RegExp(pattern);
46
+ return true;
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ }
52
+ /**
53
+ * Safely test a regex pattern against an input string.
54
+ *
55
+ * If the pattern is unsafe (per isSafePattern), returns false immediately
56
+ * instead of risking catastrophic backtracking. This is the correct
57
+ * semantic for policy matching: an unsafe pattern simply does not match.
58
+ *
59
+ * @param pattern - The regex pattern string
60
+ * @param input - The string to test against
61
+ * @returns true if the pattern is safe AND matches the input
62
+ */
63
+ export function safeRegexTest(pattern, input) {
64
+ if (!isSafePattern(pattern))
65
+ return false;
66
+ try {
67
+ return new RegExp(pattern).test(input);
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ //# sourceMappingURL=safe-regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-regex.js","sourceRoot":"","sources":["../src/safe-regex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,qEAAqE;AACrE,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;GAGG;AACH,MAAM,iBAAiB,GAAG,yCAAyC,CAAC;AAEpE;;;GAGG;AACH,MAAM,eAAe,GAAG,qCAAqC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhD,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAa;IAC1D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE1C,IAAI,CAAC;QACH,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -52,6 +52,23 @@ export interface ResolvedWebhookTarget {
52
52
  protocol: 'http:' | 'https:';
53
53
  search: string;
54
54
  }
55
+ /**
56
+ * Async SSRF check with DNS rebinding defense.
57
+ *
58
+ * First runs a synchronous check on the URL (protocol, hostname patterns, IP literals).
59
+ * If the hostname is not an IP literal, resolves both A (IPv4) and AAAA (IPv6) DNS records
60
+ * and checks ALL resolved addresses against private/reserved ranges.
61
+ *
62
+ * Returns true if the URL should be blocked.
63
+ *
64
+ * Behavior:
65
+ * - If the hostname is an IP literal already checked by sync path, skips DNS
66
+ * - Resolves A and AAAA records in parallel
67
+ * - ENODATA/ENOTFOUND per record type means "no records" (not a failure)
68
+ * - If both lookups fail with real errors, returns true (fail closed)
69
+ * - If ANY resolved IP is private/reserved, returns true
70
+ */
71
+ export declare function resolveAndCheckUrl(urlStr: string): Promise<boolean>;
55
72
  export declare function resolveWebhookTarget(value: string): Promise<{
56
73
  ok: true;
57
74
  target: ResolvedWebhookTarget;
package/dist/security.js CHANGED
@@ -3,7 +3,31 @@ import * as dns from 'node:dns/promises';
3
3
  import * as httpRequest from 'node:http';
4
4
  import * as httpsRequest from 'node:https';
5
5
  import * as net from 'node:net';
6
+ import ipaddr from 'ipaddr.js';
6
7
  import { SESSION_COOKIE_NAME } from './auth.js';
8
+ /**
9
+ * IP ranges that must be blocked for SSRF protection.
10
+ * Covers IPv4 private/reserved and IPv6 equivalents including ULA, link-local,
11
+ * documentation ranges, and carrier-grade NAT.
12
+ */
13
+ const BLOCKED_IP_RANGES = new Set([
14
+ 'loopback',
15
+ 'uniqueLocal',
16
+ 'linkLocal',
17
+ 'private',
18
+ 'carrierGradeNat',
19
+ 'unspecified',
20
+ 'reserved',
21
+ ]);
22
+ /**
23
+ * Hostnames that resolve to cloud metadata services or other internal endpoints.
24
+ * These must be blocked regardless of what IP they resolve to.
25
+ */
26
+ const BLOCKED_METADATA_HOSTNAMES = new Set([
27
+ 'metadata.google.internal',
28
+ ]);
29
+ /** DNS error codes that mean "no records of this type" (not a real failure) */
30
+ const BENIGN_DNS_ERRORS = new Set(['ENODATA', 'ENOTFOUND']);
7
31
  export const DEFAULT_ADMIN_API_KEY_ENV = 'GOVYN_ADMIN_API_KEY';
8
32
  function unwrapHeader(value) {
9
33
  if (Array.isArray(value))
@@ -18,16 +42,6 @@ function normalizeIp(ip) {
18
42
  const normalized = withoutZone.toLowerCase();
19
43
  return normalized.startsWith('::ffff:') ? normalized.slice(7) : normalized;
20
44
  }
21
- function parseIpv4(ip) {
22
- const parts = normalizeIp(ip).split('.');
23
- if (parts.length !== 4)
24
- return null;
25
- const octets = parts.map((part) => Number.parseInt(part, 10));
26
- if (octets.some((octet) => Number.isNaN(octet) || octet < 0 || octet > 255)) {
27
- return null;
28
- }
29
- return octets;
30
- }
31
45
  function extractBearerToken(headerValue) {
32
46
  if (!headerValue)
33
47
  return null;
@@ -73,37 +87,39 @@ export function normalizeOrigin(origin) {
73
87
  }
74
88
  }
75
89
  export function isLoopbackIp(ip) {
76
- const normalized = normalizeIp(ip);
77
- if (normalized === '::1')
78
- return true;
79
- const octets = parseIpv4(normalized);
80
- if (!octets)
90
+ try {
91
+ const addr = ipaddr.parse(normalizeIp(ip));
92
+ // Handle IPv4-mapped IPv6 loopback (e.g. ::ffff:127.0.0.1)
93
+ if (addr.kind() === 'ipv6') {
94
+ const v6 = addr;
95
+ if (v6.isIPv4MappedAddress()) {
96
+ return v6.toIPv4Address().range() === 'loopback';
97
+ }
98
+ }
99
+ return addr.range() === 'loopback';
100
+ }
101
+ catch {
81
102
  return false;
82
- return octets[0] === 127;
103
+ }
83
104
  }
84
105
  export function isPrivateOrReservedIp(ip) {
85
- const normalized = normalizeIp(ip);
86
- if (normalized === '::' || normalized === '0.0.0.0')
87
- return true;
88
- if (isLoopbackIp(normalized))
106
+ try {
107
+ const addr = ipaddr.parse(normalizeIp(ip));
108
+ // Handle IPv4-mapped IPv6 addresses (e.g. ::ffff:10.0.0.1, ::ffff:192.168.1.1)
109
+ // These must be unwrapped and checked against IPv4 private ranges.
110
+ if (addr.kind() === 'ipv6') {
111
+ const v6 = addr;
112
+ if (v6.isIPv4MappedAddress()) {
113
+ const v4 = v6.toIPv4Address();
114
+ return BLOCKED_IP_RANGES.has(v4.range());
115
+ }
116
+ }
117
+ return BLOCKED_IP_RANGES.has(addr.range());
118
+ }
119
+ catch {
120
+ // Unparseable IP = reject (fail closed)
89
121
  return true;
90
- const ipv4 = parseIpv4(normalized);
91
- if (ipv4) {
92
- const [a, b] = ipv4;
93
- return (a === 0 ||
94
- a === 10 ||
95
- (a === 100 && b >= 64 && b <= 127) ||
96
- (a === 169 && b === 254) ||
97
- (a === 172 && b >= 16 && b <= 31) ||
98
- (a === 192 && b === 168) ||
99
- (a === 198 && (b === 18 || b === 19)));
100
- }
101
- if (!net.isIPv6(normalized))
102
- return false;
103
- const firstHextet = Number.parseInt(normalized.split(':')[0] || '0', 16);
104
- return ((firstHextet & 0xfe00) === 0xfc00 || // fc00::/7 unique local
105
- (firstHextet & 0xffc0) === 0xfe80 || // fe80::/10 link local
106
- normalized === '::1');
122
+ }
107
123
  }
108
124
  function isLocalHostname(hostname) {
109
125
  const normalized = normalizeHost(hostname);
@@ -137,6 +153,9 @@ function isBlockedWebhookHostname(hostname) {
137
153
  normalized.endsWith('.home.arpa')) {
138
154
  return true;
139
155
  }
156
+ if (BLOCKED_METADATA_HOSTNAMES.has(normalized)) {
157
+ return true;
158
+ }
140
159
  return net.isIP(normalized) ? isPrivateOrReservedIp(normalized) : false;
141
160
  }
142
161
  export function isAllowedOrigin(origin, security) {
@@ -352,6 +371,77 @@ async function resolvePublicAddress(hostname) {
352
371
  }
353
372
  return { ok: true, address: normalizedAnswers[0].address, family: normalizedAnswers[0].family };
354
373
  }
374
+ /**
375
+ * Async SSRF check with DNS rebinding defense.
376
+ *
377
+ * First runs a synchronous check on the URL (protocol, hostname patterns, IP literals).
378
+ * If the hostname is not an IP literal, resolves both A (IPv4) and AAAA (IPv6) DNS records
379
+ * and checks ALL resolved addresses against private/reserved ranges.
380
+ *
381
+ * Returns true if the URL should be blocked.
382
+ *
383
+ * Behavior:
384
+ * - If the hostname is an IP literal already checked by sync path, skips DNS
385
+ * - Resolves A and AAAA records in parallel
386
+ * - ENODATA/ENOTFOUND per record type means "no records" (not a failure)
387
+ * - If both lookups fail with real errors, returns true (fail closed)
388
+ * - If ANY resolved IP is private/reserved, returns true
389
+ */
390
+ export async function resolveAndCheckUrl(urlStr) {
391
+ let parsed;
392
+ try {
393
+ parsed = new URL(urlStr);
394
+ }
395
+ catch {
396
+ return true; // Unparseable URL = fail closed
397
+ }
398
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
399
+ return true;
400
+ }
401
+ const hostname = normalizeHost(parsed.hostname);
402
+ // Check blocked hostnames (localhost, metadata endpoints, etc.)
403
+ if (isBlockedWebhookHostname(hostname)) {
404
+ return true;
405
+ }
406
+ // If hostname is an IP literal, just check the IP directly
407
+ if (net.isIP(hostname)) {
408
+ return isPrivateOrReservedIp(hostname);
409
+ }
410
+ // Resolve DNS (both A and AAAA) and check all results
411
+ const [v4Result, v6Result] = await Promise.allSettled([
412
+ dns.resolve4(hostname),
413
+ dns.resolve6(hostname),
414
+ ]);
415
+ const allIps = [];
416
+ let v4Benign = false;
417
+ let v6Benign = false;
418
+ if (v4Result.status === 'fulfilled') {
419
+ allIps.push(...v4Result.value);
420
+ }
421
+ else {
422
+ const err = v4Result.reason;
423
+ v4Benign = BENIGN_DNS_ERRORS.has(err.code ?? '');
424
+ }
425
+ if (v6Result.status === 'fulfilled') {
426
+ allIps.push(...v6Result.value);
427
+ }
428
+ else {
429
+ const err = v6Result.reason;
430
+ v6Benign = BENIGN_DNS_ERRORS.has(err.code ?? '');
431
+ }
432
+ // If both failed with real errors (not ENODATA/ENOTFOUND), fail closed
433
+ if (allIps.length === 0) {
434
+ const bothFailed = v4Result.status === 'rejected' && v6Result.status === 'rejected';
435
+ if (bothFailed && !v4Benign && !v6Benign) {
436
+ return true;
437
+ }
438
+ // Both returned ENODATA/ENOTFOUND: hostname has no records -- allow
439
+ // (will fail at the actual fetch anyway)
440
+ return false;
441
+ }
442
+ // If ANY resolved IP is private/reserved, block
443
+ return allIps.some((ip) => isPrivateOrReservedIp(ip));
444
+ }
355
445
  export async function resolveWebhookTarget(value) {
356
446
  const validated = validateWebhookUrl(value);
357
447
  if (!validated.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "govyn",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "AI agent governance proxy",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -54,6 +54,7 @@
54
54
  },
55
55
  "dependencies": {
56
56
  "better-sqlite3": "^12.8.0",
57
+ "ipaddr.js": "^2.3.0",
57
58
  "postgres": "^3.4.8",
58
59
  "yaml": "^2.8.2"
59
60
  },