blitzstrike 1.0.25 → 1.0.26

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 (2) hide show
  1. package/dist/index.js +5 -5
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -30473,7 +30473,7 @@ function loadJson(name) {
30473
30473
  function detectWaf(headers, body = "") {
30474
30474
  const sigs = loadJson("waf_signatures");
30475
30475
  if (!sigs)
30476
- return { error: "waf_signatures.json not loaded" };
30476
+ return { detected: false, wafs: [], error: "waf_signatures.json not loaded" };
30477
30477
  const headerSigs = sigs.header_signatures ?? [];
30478
30478
  const bodySigs = sigs.body_signatures ?? [];
30479
30479
  const matches = [];
@@ -30484,7 +30484,7 @@ function detectWaf(headers, body = "") {
30484
30484
  if (!h)
30485
30485
  continue;
30486
30486
  if (pattern) {
30487
- const val = (headers[h] ?? headers[s.header] ?? "").toLowerCase();
30487
+ const val = (headers[h] ?? headers[s.header ?? ""] ?? "").toLowerCase();
30488
30488
  if (val.includes(pattern)) {
30489
30489
  matches.push({ waf: s.waf, header: s.header, pattern: s.pattern, confidence: s.confidence, via: "header-value" });
30490
30490
  }
@@ -30517,14 +30517,14 @@ function detectWaf(headers, body = "") {
30517
30517
  function techCorrelation(tech) {
30518
30518
  const data = loadJson("tech_correlations");
30519
30519
  if (!data)
30520
- return { error: "tech_correlations.json not loaded" };
30520
+ return { found: false, error: "tech_correlations.json not loaded" };
30521
30521
  const key = tech.toLowerCase();
30522
30522
  const entry = data[key];
30523
30523
  if (!entry) {
30524
30524
  const matches = Object.keys(data).filter((k) => k.includes(key) || key.includes(k)).slice(0, 5);
30525
30525
  return { found: false, tech, suggestions: matches };
30526
30526
  }
30527
- return { found: true, tech: key, vulns: entry.vulns ?? [], paths: entry.paths ?? [], detection: entry.detection ?? entry };
30527
+ return { found: true, tech: key, vulns: entry.vulns ?? [], paths: entry.paths ?? [], detection: entry.detection ?? { vulns: entry.vulns, paths: entry.paths } };
30528
30528
  }
30529
30529
  function cveCorrelation(cveId) {
30530
30530
  const data = loadJson("cve_correlations");
@@ -51384,7 +51384,7 @@ function createServer() {
51384
51384
  inputSchema: { path: string2().describe("Source file path") }
51385
51385
  }, async ({ path }) => {
51386
51386
  const r = traceDataFlow(path);
51387
- const taintedSinks = [...new Set(r.candidates.map((c) => c.sink_id ?? c.sink ?? c.category))];
51387
+ const taintedSinks = [...new Set(r.candidates.map((c) => c.sink?.id ?? "unknown"))];
51388
51388
  const guidance = nextSteps({
51389
51389
  tier: "eagle-eye",
51390
51390
  hasFindings: r.candidates.length > 0,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blitzstrike",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "description": "Blitz Strike — a universal MCP security-audit toolbelt. BLITZ sweeps the attack surface, EAGLE-EYE traces source-to-sink, STRIKE verifies live. 57 attack chains, 130-tool catalog, intelligence data layer. One server, every agent.",
5
5
  "type": "module",
6
6
  "bin": {