@mneme-ai/core 0.16.0 → 0.18.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.
- package/dist/forensics/anomaly.d.ts +83 -0
- package/dist/forensics/anomaly.d.ts.map +1 -0
- package/dist/forensics/anomaly.js +218 -0
- package/dist/forensics/anomaly.js.map +1 -0
- package/dist/forensics/forensics.test.d.ts +2 -0
- package/dist/forensics/forensics.test.d.ts.map +1 -0
- package/dist/forensics/forensics.test.js +281 -0
- package/dist/forensics/forensics.test.js.map +1 -0
- package/dist/forensics/index.d.ts +5 -0
- package/dist/forensics/index.d.ts.map +1 -0
- package/dist/forensics/index.js +5 -0
- package/dist/forensics/index.js.map +1 -0
- package/dist/forensics/likelihood.d.ts +120 -0
- package/dist/forensics/likelihood.d.ts.map +1 -0
- package/dist/forensics/likelihood.js +161 -0
- package/dist/forensics/likelihood.js.map +1 -0
- package/dist/forensics/loci.d.ts +54 -0
- package/dist/forensics/loci.d.ts.map +1 -0
- package/dist/forensics/loci.js +164 -0
- package/dist/forensics/loci.js.map +1 -0
- package/dist/forensics/vulnhunt.d.ts +62 -0
- package/dist/forensics/vulnhunt.d.ts.map +1 -0
- package/dist/forensics/vulnhunt.js +217 -0
- package/dist/forensics/vulnhunt.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
const RULES = [
|
|
2
|
+
// ── CRYPTO ──────────────────────────────────────────────────────────
|
|
3
|
+
{
|
|
4
|
+
class: "crypto-weakness",
|
|
5
|
+
severity: "high",
|
|
6
|
+
reference: "CWE-327",
|
|
7
|
+
pattern: /\b(?:MD5|SHA-?1)\s*\(/i,
|
|
8
|
+
summary: "MD5 / SHA-1 used as a hash function (broken for security)",
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
class: "crypto-weakness",
|
|
12
|
+
severity: "high",
|
|
13
|
+
reference: "CWE-327",
|
|
14
|
+
pattern: /\b(?:DES|3DES|RC4|Blowfish)\b/,
|
|
15
|
+
summary: "Weak / deprecated cipher referenced",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
class: "crypto-weakness",
|
|
19
|
+
severity: "critical",
|
|
20
|
+
reference: "CWE-330",
|
|
21
|
+
pattern: /Math\.random\s*\(\s*\)|new\s+Random\s*\(\s*\)/,
|
|
22
|
+
summary: "Non-cryptographic RNG used (Math.random / Random) — use crypto.randomBytes",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
class: "crypto-weakness",
|
|
26
|
+
severity: "high",
|
|
27
|
+
reference: "CWE-321",
|
|
28
|
+
pattern: /(?:secret|api[_-]?key|password|token|private[_-]?key)\s*=\s*["'][a-zA-Z0-9+/=_-]{16,}["']/i,
|
|
29
|
+
summary: "Hardcoded credential / secret in source",
|
|
30
|
+
},
|
|
31
|
+
// ── INJECTION ──────────────────────────────────────────────────────
|
|
32
|
+
{
|
|
33
|
+
class: "injection-sql",
|
|
34
|
+
severity: "critical",
|
|
35
|
+
reference: "CWE-89",
|
|
36
|
+
pattern: /(?:SELECT|INSERT|UPDATE|DELETE)\s+[^;]*?\$\{[^}]+\}|"\s*SELECT[^"]*"\s*\+\s*\w+|f"\s*SELECT[^"]*\{/i,
|
|
37
|
+
summary: "SQL string concatenation / interpolation — possible injection",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
class: "injection-shell",
|
|
41
|
+
severity: "critical",
|
|
42
|
+
reference: "CWE-78",
|
|
43
|
+
pattern: /(?:exec|spawn|system|popen|os\.system|subprocess\.\w+)\s*\(\s*[^,)]*(?:\$\{|\+\s*\w|input\(|argv\[)/,
|
|
44
|
+
summary: "Shell exec with concatenated / interpolated input",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
class: "injection-xss",
|
|
48
|
+
severity: "high",
|
|
49
|
+
reference: "CWE-79",
|
|
50
|
+
pattern: /\bdangerouslySetInnerHTML\b|\binnerHTML\s*=\s*[^"'][^;]+(?:input|req\.|params|body)/,
|
|
51
|
+
summary: "innerHTML / dangerouslySetInnerHTML with user-controlled data",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
class: "injection-xss",
|
|
55
|
+
severity: "medium",
|
|
56
|
+
reference: "CWE-95",
|
|
57
|
+
pattern: /\beval\s*\(\s*[^"')]*(?:input|req\.|params|body|argv)/,
|
|
58
|
+
summary: "eval() with user-controlled input",
|
|
59
|
+
},
|
|
60
|
+
// ── AUTH FLAWS ─────────────────────────────────────────────────────
|
|
61
|
+
{
|
|
62
|
+
class: "auth-flaw",
|
|
63
|
+
severity: "critical",
|
|
64
|
+
reference: "CWE-798",
|
|
65
|
+
pattern: /\b(?:Bearer|Basic)\s+[A-Za-z0-9+/=._-]{16,}/,
|
|
66
|
+
summary: "Hardcoded bearer / basic auth token",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
class: "auth-flaw",
|
|
70
|
+
severity: "critical",
|
|
71
|
+
reference: "CWE-347",
|
|
72
|
+
pattern: /jwt\.(?:decode|verify)\s*\([^,)]+,\s*null|jwt\.decode\s*\(/i,
|
|
73
|
+
summary: "JWT decoded without signature verification",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
class: "auth-flaw",
|
|
77
|
+
severity: "high",
|
|
78
|
+
reference: "CWE-942",
|
|
79
|
+
pattern: /Access-Control-Allow-Origin[^;]*\*[^;]*Access-Control-Allow-Credentials\s*:\s*true|cors\s*\(\s*\{\s*origin\s*:\s*["']\*/i,
|
|
80
|
+
summary: "CORS wildcard origin combined with credentials enabled",
|
|
81
|
+
},
|
|
82
|
+
// ── FINANCIAL LOGIC (bank-grade) ──────────────────────────────────
|
|
83
|
+
{
|
|
84
|
+
class: "financial-logic",
|
|
85
|
+
severity: "critical",
|
|
86
|
+
reference: "CWE-190",
|
|
87
|
+
pattern: /(?:amount|balance|price|cents|usd|thb|eur)\s*[+\-*]\s*(?:amount|balance|price|cents|usd|thb|eur)/i,
|
|
88
|
+
summary: "Arithmetic on money-typed names — verify overflow + precision",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
class: "financial-logic",
|
|
92
|
+
severity: "high",
|
|
93
|
+
reference: "CWE-682",
|
|
94
|
+
pattern: /Number\s*\(\s*(?:amount|balance|price|fee|tax)|parseFloat\s*\(\s*(?:amount|balance|price|fee|tax)/i,
|
|
95
|
+
summary: "Money cast to JS Number — precision loss; use BigInt or money lib",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
class: "financial-logic",
|
|
99
|
+
severity: "high",
|
|
100
|
+
reference: "CWE-840",
|
|
101
|
+
pattern: /amount\s*[<>]=?\s*0\b/i, // We want to see if it's a guard or a flaw
|
|
102
|
+
summary: "Direct comparison of `amount` to 0 — verify negative-amount handling",
|
|
103
|
+
},
|
|
104
|
+
// ── SUPPLY CHAIN ───────────────────────────────────────────────────
|
|
105
|
+
{
|
|
106
|
+
class: "supply-chain",
|
|
107
|
+
severity: "medium",
|
|
108
|
+
reference: "CWE-1357",
|
|
109
|
+
pattern: /^\+\s*"[^"]+":\s*"(\^|~)?[0-9]+\.[0-9]+\.[0-9]+(?:-[a-zA-Z0-9.-]+)?",?\s*$/m,
|
|
110
|
+
summary: "Dependency added or version changed — verify it's locked + scanned",
|
|
111
|
+
},
|
|
112
|
+
// ── INFO LEAKAGE ───────────────────────────────────────────────────
|
|
113
|
+
{
|
|
114
|
+
class: "info-leakage",
|
|
115
|
+
severity: "medium",
|
|
116
|
+
reference: "CWE-209",
|
|
117
|
+
pattern: /console\.log\s*\([^)]*(?:password|token|secret|key|jwt|cookie|session)/i,
|
|
118
|
+
summary: "Sensitive value logged to console",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
class: "info-leakage",
|
|
122
|
+
severity: "high",
|
|
123
|
+
reference: "CWE-209",
|
|
124
|
+
pattern: /\b(?:err|error|e)\.stack\b.*?(?:res\.send|res\.json|return)/,
|
|
125
|
+
summary: "Stack trace exposed to client response",
|
|
126
|
+
},
|
|
127
|
+
// ── RACE CONDITIONS ────────────────────────────────────────────────
|
|
128
|
+
{
|
|
129
|
+
class: "race-condition",
|
|
130
|
+
severity: "medium",
|
|
131
|
+
reference: "CWE-362",
|
|
132
|
+
pattern: /if\s*\([^)]*await[^)]*\)\s*\{[\s\S]{0,200}?await/,
|
|
133
|
+
summary: "Check-then-await pattern — possible TOCTOU race",
|
|
134
|
+
},
|
|
135
|
+
// ── PRIVILEGE ──────────────────────────────────────────────────────
|
|
136
|
+
{
|
|
137
|
+
class: "privilege",
|
|
138
|
+
severity: "high",
|
|
139
|
+
reference: "CWE-269",
|
|
140
|
+
pattern: /\bsetuid\s*\(\s*0\s*\)|\bos\.setuid\s*\(/,
|
|
141
|
+
summary: "Privilege escalation to root via setuid",
|
|
142
|
+
},
|
|
143
|
+
];
|
|
144
|
+
const FIX_KEYWORDS = /\b(fix|fixes|fixed|patch|patched|secure|security|cve-?\d+|vuln(?:erability)?|exploit|hotfix)\b/i;
|
|
145
|
+
const SECURITY_SUBJECT = /\b(security|cve-?\d+|vuln|exploit|csrf|xss|sqli|rce|sssrf|xxe|auth\s+bypass)\b/i;
|
|
146
|
+
/**
|
|
147
|
+
* Scan a set of (commit, diffText) pairs for vulnerability patterns.
|
|
148
|
+
*
|
|
149
|
+
* If diff text isn't available, we still scan subject + body — useful
|
|
150
|
+
* for catching "silent fix" commits (commits whose subject says nothing
|
|
151
|
+
* but whose diff would have matched).
|
|
152
|
+
*/
|
|
153
|
+
export function huntVulnerabilities(inputs) {
|
|
154
|
+
const hits = [];
|
|
155
|
+
const silentFixes = [];
|
|
156
|
+
for (const { commit, diff } of inputs) {
|
|
157
|
+
const subjectAndBody = `${commit.subject}\n${commit.body || ""}`;
|
|
158
|
+
const text = `${subjectAndBody}\n${diff || ""}`;
|
|
159
|
+
const looksLikeFix = FIX_KEYWORDS.test(subjectAndBody);
|
|
160
|
+
for (const rule of RULES) {
|
|
161
|
+
const m = rule.pattern.exec(text);
|
|
162
|
+
if (!m)
|
|
163
|
+
continue;
|
|
164
|
+
// For diff-only rules (additionsOnly), require the matched line to
|
|
165
|
+
// appear after a leading "+" in a diff context.
|
|
166
|
+
if (rule.additionsOnly !== false && diff) {
|
|
167
|
+
const line = extractLineAround(text, m.index);
|
|
168
|
+
if (line && !line.startsWith("+")) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
hits.push({
|
|
173
|
+
commit,
|
|
174
|
+
class: rule.class,
|
|
175
|
+
severity: rule.severity,
|
|
176
|
+
summary: rule.summary,
|
|
177
|
+
evidence: truncate(m[0], 200),
|
|
178
|
+
reference: rule.reference,
|
|
179
|
+
looksLikeFix,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
// Silent-fix detection: subject looks security-related but didn't
|
|
183
|
+
// raise any rule hits in the same pass — we still record it because
|
|
184
|
+
// even a "subject hint" is useful for compliance.
|
|
185
|
+
if (SECURITY_SUBJECT.test(subjectAndBody)) {
|
|
186
|
+
silentFixes.push(commit);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const bySeverity = {
|
|
190
|
+
info: 0,
|
|
191
|
+
low: 0,
|
|
192
|
+
medium: 0,
|
|
193
|
+
high: 0,
|
|
194
|
+
critical: 0,
|
|
195
|
+
};
|
|
196
|
+
const byClass = {};
|
|
197
|
+
for (const h of hits) {
|
|
198
|
+
bySeverity[h.severity] += 1;
|
|
199
|
+
byClass[h.class] = (byClass[h.class] ?? 0) + 1;
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
hits,
|
|
203
|
+
bySeverity,
|
|
204
|
+
byClass,
|
|
205
|
+
silentFixes,
|
|
206
|
+
scanned: inputs.length,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function extractLineAround(text, index) {
|
|
210
|
+
const start = text.lastIndexOf("\n", index) + 1;
|
|
211
|
+
const end = text.indexOf("\n", index);
|
|
212
|
+
return text.slice(start, end < 0 ? undefined : end);
|
|
213
|
+
}
|
|
214
|
+
function truncate(s, n) {
|
|
215
|
+
return s.length <= n ? s : s.slice(0, n - 1) + "…";
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=vulnhunt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vulnhunt.js","sourceRoot":"","sources":["../../src/forensics/vulnhunt.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ export * as wisdom from "./wisdom/index.js";
|
|
|
11
11
|
export * as insights from "./insights/index.js";
|
|
12
12
|
export * as quant from "./quant/index.js";
|
|
13
13
|
export * as guardian from "./guardian/index.js";
|
|
14
|
+
export * as forensics from "./forensics/index.js";
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,4 +11,5 @@ export * as wisdom from "./wisdom/index.js";
|
|
|
11
11
|
export * as insights from "./insights/index.js";
|
|
12
12
|
export * as quant from "./quant/index.js";
|
|
13
13
|
export * as guardian from "./guardian/index.js";
|
|
14
|
+
export * as forensics from "./forensics/index.js";
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC"}
|