blitzstrike 2.4.94 → 2.4.95

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/CHANGELOG.md CHANGED
@@ -5,6 +5,23 @@ All notable changes to Blitz Strike are documented here.
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/).
7
7
 
8
+ ## [2.4.95] — 2026-09-17
9
+
10
+ ### Fixed — full interconnection audit (unreachable template + 2 ungrounded classes)
11
+
12
+ - `auto_poc` `open_redirect` template was UNREACHABLE: `canonicalId("open_redirect")`
13
+ resolves to `oauth_misconfig`, but the template key was `open_redirect`, so the
14
+ lookup fell back to the `missing_authz` recipe. Renamed the key to the canonical
15
+ `oauth_misconfig` + added an interconn invariant that every auto-poc key IS its
16
+ own canonical id.
17
+ - `nosql_injection` and `host_header` were referenced across intel/orchestrator/
18
+ writeup/technique-lookup but had no pattern, severity, or synonym (ungrounded).
19
+ Added full patterns (CWE-943 / CWE-644), severity VRT entries (P1 critical /
20
+ P3 medium), and synonyms (nosql/mongo injection; host-header poisoning /
21
+ password-reset poisoning). cwe_map already carried both CWEs.
22
+ - `SINK_TO_VECTOR` mapped the `code_execution` sink to a non-pattern vector name;
23
+ now maps to `command_injection` (consistent with the "code execution" synonym).
24
+
8
25
  ## [2.4.94] — 2026-09-17
9
26
 
10
27
  ### Added — Hunting intel (DNS sinkhole detection + CWE/CVE watchlist)
package/dist/index.js CHANGED
@@ -34262,7 +34262,7 @@ var SINK_TO_VECTOR = {
34262
34262
  sql_execution: "sql_injection",
34263
34263
  command_execution: "command_injection",
34264
34264
  html_render: "xss",
34265
- code_execution: "code_execution",
34265
+ code_execution: "command_injection",
34266
34266
  http_request: "ssrf",
34267
34267
  deserialization: "deserialization",
34268
34268
  file_operations: "path_traversal",
@@ -34545,7 +34545,16 @@ var ALIASES = {
34545
34545
  "subdomain takeover": "subdomain_takeover",
34546
34546
  takeover: "subdomain_takeover",
34547
34547
  "dangling dns": "subdomain_takeover",
34548
- "dangling cname": "subdomain_takeover"
34548
+ "dangling cname": "subdomain_takeover",
34549
+ "nosql injection": "nosql_injection",
34550
+ nosql: "nosql_injection",
34551
+ nosqli: "nosql_injection",
34552
+ "mongo injection": "nosql_injection",
34553
+ "mongodb injection": "nosql_injection",
34554
+ "host header": "host_header",
34555
+ "host header injection": "host_header",
34556
+ "host header poisoning": "host_header",
34557
+ "password reset poisoning": "host_header"
34549
34558
  };
34550
34559
  function normalize(term) {
34551
34560
  return term.trim().toLowerCase().replace(/[_-]+/g, " ").replace(/\s+/g, " ").trim();
@@ -59037,6 +59046,8 @@ var VRT_MAP = {
59037
59046
  sql_injection: { vrt: "injection > sql_injection", priority: "P1", severity: "critical", rationale: "SQL injection reaches sensitive data or enables admin takeover." },
59038
59047
  ssti: { vrt: "injection > server_side_template_injection", priority: "P1", severity: "critical", rationale: "SSTI evaluates expressions server-side → code execution." },
59039
59048
  command_injection: { vrt: "injection > os_command_injection", priority: "P1", severity: "critical", rationale: "User input reaches a shell (system/exec/popen) → arbitrary command execution, full host takeover." },
59049
+ nosql_injection: { vrt: "injection > nosql_injection", priority: "P1", severity: "critical", rationale: "NoSQL operator injection reaches a database query → auth bypass or data exfiltration." },
59050
+ host_header: { vrt: "injection > host_header_injection", priority: "P3", severity: "medium", rationale: "A reflected/trusted Host header can poison password-reset links or enable cache poisoning → account takeover in the right flow." },
59040
59051
  deserialization: { vrt: "injection > insecure_deserialization", priority: "P1", severity: "critical", rationale: "Deserialization escalated via a gadget chain → code execution." },
59041
59052
  xxe: { vrt: "injection > xml_external_entity", priority: "P1", severity: "critical", rationale: "XXE reads local files or reaches internal services." },
59042
59053
  file_upload: { vrt: "insecure_design > unrestricted_file_upload", priority: "P1", severity: "critical", rationale: "A web-reachable uploaded file of an executable type → code execution." },
@@ -61257,7 +61268,7 @@ var POC_TEMPLATES = {
61257
61268
  expected: `The response contains an injected \`X-Injected: ${MK}\` header.`,
61258
61269
  fix: "Strip CR/LF from any value placed into a response header."
61259
61270
  },
61260
- open_redirect: {
61271
+ oauth_misconfig: {
61261
61272
  severity: "medium",
61262
61273
  marker: "https://attacker.example",
61263
61274
  request: (i) => qs(i, encodeURIComponent("https://attacker.example")),
@@ -988,6 +988,69 @@
988
988
  "payout_min": 1000,
989
989
  "payout_max": 15000,
990
990
  "typical_payout": "$1K\u2013$15K"
991
+ },
992
+ {
993
+ "id": "nosql_injection",
994
+ "name": "NoSQL Injection",
995
+ "cwe": "CWE-943",
996
+ "real_world": "User input reaches a NoSQL query (MongoDB $where/$gt/$ne, an unsanitized find/aggregate). Attackers inject operators to bypass authentication or dump collections.",
997
+ "detection_signatures": [
998
+ "unsanitized input into a NoSQL find/where/aggregate",
999
+ "operator injection ($ne/$gt/$where) from request input"
1000
+ ],
1001
+ "chain_templates": [
1002
+ "nosql_injection_to_data_theft"
1003
+ ],
1004
+ "references": [
1005
+ "CWE-943",
1006
+ "OWASP A03:2021 Injection"
1007
+ ],
1008
+ "bypass_techniques": [
1009
+ "operator injection ($ne/$gt/$where)",
1010
+ "JSON-body operator injection",
1011
+ "array/object type juggling to slip past input filters",
1012
+ "blind extraction via regex/timing"
1013
+ ],
1014
+ "crown_jewels": [
1015
+ "user/account collections",
1016
+ "password hashes",
1017
+ "admin documents"
1018
+ ],
1019
+ "severity": "critical",
1020
+ "payout_min": 1000,
1021
+ "payout_max": 15000,
1022
+ "typical_payout": "$1K\u2013$15K"
1023
+ },
1024
+ {
1025
+ "id": "host_header",
1026
+ "name": "Host Header Injection",
1027
+ "cwe": "CWE-644",
1028
+ "real_world": "The app trusts the Host header for link generation, password-reset URLs, or routing. An attacker injects a malicious host to poison password-reset links or bypass access controls.",
1029
+ "detection_signatures": [
1030
+ "Host header reflected into a generated URL / Location / Set-Cookie",
1031
+ "Host header used in password-reset link generation"
1032
+ ],
1033
+ "chain_templates": [
1034
+ "http_smuggling_to_auth_bypass"
1035
+ ],
1036
+ "references": [
1037
+ "CWE-644"
1038
+ ],
1039
+ "bypass_techniques": [
1040
+ "Host header override via X-Forwarded-Host",
1041
+ "absolute-URL host injection",
1042
+ "password-reset link poisoning",
1043
+ "web cache poisoning via Host"
1044
+ ],
1045
+ "crown_jewels": [
1046
+ "password-reset tokens",
1047
+ "account takeover via poisoned links",
1048
+ "cache poisoning"
1049
+ ],
1050
+ "severity": "medium",
1051
+ "payout_min": 500,
1052
+ "payout_max": 5000,
1053
+ "typical_payout": "$500\u2013$5K"
991
1054
  }
992
1055
  ]
993
1056
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blitzstrike",
3
- "version": "2.4.94",
3
+ "version": "2.4.95",
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": {