@memberjunction/generic-database-provider 5.37.0 → 5.39.0

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.
@@ -1,4 +1,5 @@
1
- import { DatabasePlatform, UserInfo, QueryDependencySpec, QueryParameterInfo } from '@memberjunction/core';
1
+ import { DatabasePlatform, UserInfo, QueryDependencySpec } from '@memberjunction/core';
2
+ import { MJQueryParameterEntity } from '@memberjunction/core-entities';
2
3
  import { CompositionResult, CompositionCTEInfo } from './queryCompositionEngine.js';
3
4
  import { PagingWrappedSQL } from './queryPagingEngine.js';
4
5
  import { type QueryTemplateInput } from '@memberjunction/query-processor';
@@ -44,7 +45,7 @@ export interface RenderContext {
44
45
  /** Parameter values from the caller */
45
46
  Parameters?: Record<string, string>;
46
47
  /** Formal parameter definitions (for validation). Null = skip validation. */
47
- ParameterDefinitions?: QueryParameterInfo[];
48
+ ParameterDefinitions?: MJQueryParameterEntity[];
48
49
  /** Whether the outer query uses Nunjucks templates */
49
50
  UsesTemplate?: boolean;
50
51
  /** Inline dependency specs for transient query testing */
@@ -107,6 +108,35 @@ export declare class RenderPipeline {
107
108
  * @returns Final SQL, applied parameters, composition metadata, and diagnostic trace
108
109
  */
109
110
  static Run(sql: string, ctx: RenderContext): RenderResult;
111
+ /**
112
+ * Defense-in-depth guard on the fully-resolved query: throws when the
113
+ * rendered SQL contains a write statement anywhere — a DML mutation
114
+ * (INSERT / UPDATE / DELETE / MERGE / REPLACE), DDL (DROP / CREATE / ALTER /
115
+ * TRUNCATE / RENAME), or EXEC / CALL / GRANT / REVOKE / USE.
116
+ *
117
+ * {@link SQLParser.HasWriteStatement} inspects EVERY top-level statement, so
118
+ * it catches both a single rendered mutation and a stacked-statement
119
+ * injection payload (e.g. `SELECT 1; DROP TABLE x`) that the first-statement
120
+ * `StatementKind` alone would miss. It is AST-precise: matching is on the
121
+ * statement type, so it cannot false-positive on legitimate read queries —
122
+ * the `REPLACE()` string function, parenthesized SELECTs, trailing
123
+ * semicolons, or benign `SET` / `DECLARE` prefixes all pass.
124
+ *
125
+ * A second, token-based check rejects stacked statements (an internal
126
+ * statement-separating `;`). Unlike the AST check it fires even when the
127
+ * trailing payload makes the SQL unparseable — e.g. `SELECT 1; EXEC
128
+ * xp_cmdshell '…'` or `SELECT 1; WAITFOR DELAY '…'` — which is the
129
+ * stacked-injection class the AST scan misses (the whole string fails to
130
+ * parse, so there is no AST to classify). A rendered read query must be a
131
+ * single statement.
132
+ *
133
+ * The broader dangerous-keyword scan
134
+ * ({@link SQLExpressionValidator.validateFullQuery}) deliberately stays on
135
+ * the ad-hoc execution path (untrusted free-text input); it is unsuitable as
136
+ * a blanket gate here because it rejects legitimate read constructs (the
137
+ * `REPLACE()` string function, parenthesized SELECTs, etc.).
138
+ */
139
+ private static assertSafeToExecute;
110
140
  /**
111
141
  * Resolves only the composition step — for callers that need composition
112
142
  * without the full pipeline (e.g., save-time token analysis).
@@ -1 +1 @@
1
- {"version":3,"file":"renderPipeline.d.ts","sourceRoot":"","sources":["../src/renderPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderPipeline.d.ts","sourceRoot":"","sources":["../src/renderPipeline.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,13 @@ export class RenderPipeline {
59
59
  currentSQL = templateResult.processedSQL;
60
60
  appliedParameters = templateResult.appliedParameters;
61
61
  const afterTemplates = currentSQL;
62
+ // ── Step 2.5: Safety validation (mutation + injection guard) ──
63
+ // The fully-resolved query is the point where composition and parameter
64
+ // substitution — the only injection vectors — are complete, and where
65
+ // StatementKind reflects the user's actual statement (paging wrapping
66
+ // below always produces a SELECT). Saved queries otherwise skip the
67
+ // dangerous-keyword validation that ad-hoc queries get at execution.
68
+ RenderPipeline.assertSafeToExecute(afterTemplates, ctx.Platform);
62
69
  // ── Step 3: MaxRows safety limit (if specified) ──────────────
63
70
  if (hasMaxRows) {
64
71
  currentSQL = QueryPagingEngine.WrapWithMaxRows(currentSQL, ctx.MaxRows, ctx.Platform);
@@ -85,6 +92,46 @@ export class RenderPipeline {
85
92
  PagingResult: pagingResult,
86
93
  };
87
94
  }
95
+ /**
96
+ * Defense-in-depth guard on the fully-resolved query: throws when the
97
+ * rendered SQL contains a write statement anywhere — a DML mutation
98
+ * (INSERT / UPDATE / DELETE / MERGE / REPLACE), DDL (DROP / CREATE / ALTER /
99
+ * TRUNCATE / RENAME), or EXEC / CALL / GRANT / REVOKE / USE.
100
+ *
101
+ * {@link SQLParser.HasWriteStatement} inspects EVERY top-level statement, so
102
+ * it catches both a single rendered mutation and a stacked-statement
103
+ * injection payload (e.g. `SELECT 1; DROP TABLE x`) that the first-statement
104
+ * `StatementKind` alone would miss. It is AST-precise: matching is on the
105
+ * statement type, so it cannot false-positive on legitimate read queries —
106
+ * the `REPLACE()` string function, parenthesized SELECTs, trailing
107
+ * semicolons, or benign `SET` / `DECLARE` prefixes all pass.
108
+ *
109
+ * A second, token-based check rejects stacked statements (an internal
110
+ * statement-separating `;`). Unlike the AST check it fires even when the
111
+ * trailing payload makes the SQL unparseable — e.g. `SELECT 1; EXEC
112
+ * xp_cmdshell '…'` or `SELECT 1; WAITFOR DELAY '…'` — which is the
113
+ * stacked-injection class the AST scan misses (the whole string fails to
114
+ * parse, so there is no AST to classify). A rendered read query must be a
115
+ * single statement.
116
+ *
117
+ * The broader dangerous-keyword scan
118
+ * ({@link SQLExpressionValidator.validateFullQuery}) deliberately stays on
119
+ * the ad-hoc execution path (untrusted free-text input); it is unsuitable as
120
+ * a blanket gate here because it rejects legitimate read constructs (the
121
+ * `REPLACE()` string function, parenthesized SELECTs, etc.).
122
+ */
123
+ static assertSafeToExecute(sql, platform) {
124
+ const dialect = GetDialect(platform);
125
+ const parsed = new SQLParser(sql, dialect);
126
+ if (parsed.HasWriteStatement) {
127
+ throw new Error('RenderPipeline: rendered SQL contains a write statement ' +
128
+ '(mutation / DDL) — only a read query may be rendered for execution.');
129
+ }
130
+ if (SQLParser.HasStackedStatements(sql, dialect)) {
131
+ throw new Error('RenderPipeline: rendered SQL contains multiple statements ' +
132
+ '(a stacked-statement injection) — only a single read query may be rendered.');
133
+ }
134
+ }
88
135
  /**
89
136
  * Resolves only the composition step — for callers that need composition
90
137
  * without the full pipeline (e.g., save-time token analysis).
@@ -1 +1 @@
1
- {"version":3,"file":"renderPipeline.js","sourceRoot":"","sources":["../src/renderPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderPipeline.js","sourceRoot":"","sources":["../src/renderPipeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/generic-database-provider",
3
3
  "type": "module",
4
- "version": "5.37.0",
4
+ "version": "5.39.0",
5
5
  "description": "Shared database provider logic for MemberJunction — intermediate base class between DatabaseProviderBase and platform-specific providers",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -22,18 +22,19 @@
22
22
  "vitest": "^3.1.1"
23
23
  },
24
24
  "dependencies": {
25
- "@memberjunction/actions": "5.37.0",
26
- "@memberjunction/actions-base": "5.37.0",
27
- "@memberjunction/aiengine": "5.37.0",
28
- "@memberjunction/core": "5.37.0",
29
- "@memberjunction/core-entities": "5.37.0",
30
- "@memberjunction/encryption": "5.37.0",
31
- "@memberjunction/geo-core": "5.37.0",
32
- "@memberjunction/global": "5.37.0",
33
- "@memberjunction/query-processor": "5.37.0",
34
- "@memberjunction/sql-dialect": "5.37.0",
35
- "@memberjunction/sql-parser": "5.37.0",
36
- "@memberjunction/queue": "5.37.0",
25
+ "@memberjunction/actions": "5.39.0",
26
+ "@memberjunction/actions-base": "5.39.0",
27
+ "@memberjunction/ai-vectors-memory": "5.39.0",
28
+ "@memberjunction/aiengine": "5.39.0",
29
+ "@memberjunction/core": "5.39.0",
30
+ "@memberjunction/core-entities": "5.39.0",
31
+ "@memberjunction/encryption": "5.39.0",
32
+ "@memberjunction/geo-core": "5.39.0",
33
+ "@memberjunction/global": "5.39.0",
34
+ "@memberjunction/query-processor": "5.39.0",
35
+ "@memberjunction/sql-dialect": "5.39.0",
36
+ "@memberjunction/sql-parser": "5.39.0",
37
+ "@memberjunction/queue": "5.39.0",
37
38
  "sql-formatter": "^15.7.0",
38
39
  "uuid": "^13.0.0"
39
40
  },