blitzstrike 2.4.96 → 2.4.98

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,32 @@ 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.98] — 2026-09-17
9
+
10
+ ### Added — fingerprint-first CVE matching wired into live_recon
11
+
12
+ - `live_recon()` now cross-references the detected stack (tech + headers +
13
+ body) against the CVE watchlist and returns `suggested_cves` + a
14
+ "FINGERPRINT MATCH" next-step: when the target matches a high-value
15
+ watchlist product (Next.js, Kibana, Langflow, Confluence/Jira, PAN-OS,
16
+ Grafana, Keycloak, …) it names the specific CVEs to test first (with EPSS)
17
+ instead of relying on generic scanning.
18
+
19
+ ## [2.4.97] — 2026-09-17
20
+
21
+ ### Added — hunting-intel upgrade (Hacktivity-ranked CVE watchlist + dedup doctrine)
22
+
23
+ - Upgraded `watchlist()` CVE data from a generic 9-CVE list to the 18
24
+ Hacktivity-ranked CVEs with EPSS, report counts, and per-CVE fingerprint
25
+ hints (Confluence OGNL RCE, Next.js middleware/RSC auth-bypass/RCE, Kibana
26
+ SSRF/authz, Langflow RCE, PAN-OS GlobalProtect, Grafana, Keycloak, Jira).
27
+ `watchlist()` now emits a "fingerprint-first" recommendation: if the target
28
+ stack matches a watchlist product, test that specific CVE instead of relying
29
+ on generic scanning.
30
+ - Added a `dedup_before_report` doctrine rule — search Hacktivity (and prior
31
+ public reports) for the same endpoint/tech/vuln class before writing the
32
+ report; the #1 cause of "Duplicate"/"N/A" rejections is not searching first.
33
+
8
34
  ## [2.4.96] — 2026-09-17
9
35
 
10
36
  ### Security — self-audit (command injection + path traversal fixed)
package/README.md CHANGED
@@ -52,6 +52,13 @@ source analysis, and validation — into three tool tiers executed server-side.
52
52
  Reconnaissance → analysis → validation. Nothing is reported until STRIKE
53
53
  confirms it.
54
54
 
55
+ Beyond the three tiers, Blitz Strike also ships **Web3 audit** (deterministic
56
+ Solidity + executable Foundry proof), a **live logic-bug prober** (sibling
57
+ enumeration + differential IDOR), **hunting intel** (CWE/CVE watchlist + DNS
58
+ sinkhole detection), and **out-of-band proof** — so IDOR/auth logic bugs, blind
59
+ injection, and smart-contract findings are all caught and proven, not just
60
+ pattern-matched.
61
+
55
62
  ---
56
63
 
57
64
  ## Autonomous, LLM-driven
@@ -220,7 +227,7 @@ MCP servers. With no client detected, it prints the snippet for manual paste.
220
227
  | `dedup_findings(findings)` | Collapse findings that share a root cause (sink × source × CWE) into one group per root cause. |
221
228
  | `generate_report(findings, format)` | Emit a reproducible markdown/JSON report with summary + SHA-256 integrity hash. |
222
229
  | `run_enterprise_benchmark()` | Run the labelled enterprise corpus and report detection rate, false-positive rate, and precision. |
223
- | `coverage_matrix()` | Enumerate language × sink-class coverage (4 languages × 15 sink classes) + coverage ratio. |
230
+ | `coverage_matrix()` | Enumerate language × sink-class coverage (5 languages) + coverage ratio. |
224
231
 
225
232
  ### EAGLE-EYE — taint + data-flow
226
233
 
@@ -263,6 +270,26 @@ decoration — they are wired into the flow:
263
270
  - `tool_lookup(name)` auto-attaches the tool's full manual.
264
271
  - `run_engagement()` attaches the relevant manual per matched chain's `tools` field.
265
272
 
273
+ ### WEB3 — smart-contract audit + proof
274
+
275
+ | Tool | Purpose |
276
+ |---|---|
277
+ | `web3_audit(code, path)` | Deterministic Solidity audit — 13 bug classes (reentrancy incl. ERC721/ERC1155 callbacks, unchecked return/arithmetic, tx.origin auth, signature replay, selfdestruct, delegatecall, missing access control, timestamp dependence, spot-price oracle, unbounded loop, encodePacked collision, missing address(0) check) with CWE + severity + line refs. |
278
+ | `foundry_poc(class, contract)` | Generate an executable Foundry test that PROVES a Web3 finding. |
279
+ | `foundry_run(contract_code, poc_code, class_)` | Actually run the Foundry PoC (`forge test`) — a PASSING test = exploit reproduced (deterministic: forge's own verdict). |
280
+
281
+ ### HUNTING — doctrine + live logic-bug prober + intel
282
+
283
+ | Tool | Purpose |
284
+ |---|---|
285
+ | `hunting_doctrine()` | High-ROI heuristics — sibling rule, A→B signal, two-account IDOR, PoC escalation, follow-the-money + the always-rejected kill-list. |
286
+ | `kill_list(type)` | Deterministic always-rejected check — missing headers, self-XSS, open-redirect-alone, SSRF-DNS-only, GraphQL-introspection-alone are N/A standalone. |
287
+ | `sibling_scan(base_url, endpoint, token_a, token_b)` | Deterministic LIVE logic-bug prober — sibling enumeration + differential IDOR + auth matrix + mass assignment + rate limit (closes the static-analysis gap on IDOR/auth logic bugs). |
288
+ | `auto_poc(type, base_url, endpoint, param)` | Turn a finding into a copy-paste-ready reproduction recipe (marker + negative control + expected differential + Patchstack-style title). |
289
+ | `watchlist()` | Ranked CWE frequency + high-value CVE watchlist with payout + saturated flag — "what to hunt next". |
290
+ | `resolve_check(host)` | Detect an ISP/country DNS sinkhole (blocking page) before auditing a sensitive-niche domain. |
291
+ | `oob_start()` / `oob_poll(id)` / `oob_stop(id)` | Out-of-band proof — interactsh listener for blind SSRF/XXE/SQLi/command-injection (the canary must actually arrive). |
292
+
266
293
  ### MEMORY — long-term knowledge (self-growing)
267
294
 
268
295
  | Tool | Purpose |
@@ -325,7 +352,7 @@ See `ATTRIBUTION.md` for full license/copyright notices.
325
352
 
326
353
  ## Escalation Chains (chains.json)
327
354
 
328
- 57 data-driven escalation chains, each with ordered steps carrying:
355
+ 58 data-driven escalation chains, each with ordered steps carrying:
329
356
 
330
357
  - `tool_hint` — which Blitz Strike tool to use
331
358
  - `success_criteria` — binary observable for the step
@@ -361,7 +388,7 @@ All other tools need no credentials.
361
388
  bun install # deps
362
389
  bun run typecheck # tsc --noEmit
363
390
  bun run build # ESM bundle → dist/index.js
364
- bun run test # regression + benchmark suite (183 checks)
391
+ bun run test # regression + benchmark suite (453 checks)
365
392
  bun run compile # single static binary → dist/blitzstrike
366
393
  ```
367
394
 
@@ -375,14 +402,14 @@ number you can re-run, not a claim.
375
402
  - **Benchmark** (`run_enterprise_benchmark`) — a labelled corpus of vulnerable +
376
403
  safe fixtures across PHP, JavaScript, Python, and Java. Current result:
377
404
  detection rate **1.0**, false-positive rate **0**, precision **1.0**.
378
- - **Coverage matrix** (`coverage_matrix`) — 4 languages × 15 sink classes =
379
- 56/60 pairs covered. The four uncovered pairs are legitimately absent from
380
- the language (e.g. Java has no `eval`, Python/Java no PHP-style file
381
- inclusion, JS no deserialization sink).
405
+ - **Coverage matrix** (`coverage_matrix`) — 5 languages × sink classes = 84%
406
+ coverage (php, javascript, python, java, rust). Uncovered pairs are
407
+ legitimately absent from the language (e.g. Java has no `eval`, Python/Java no
408
+ PHP-style file inclusion, JS no deserialization sink).
382
409
  - **Attack-vector taxonomy** (`list_attack_vectors` / `attack_vectors`) — a
383
410
  master reference of 34 attack-vector categories (588 vectors) so a driving
384
411
  agent can map the *entire* attack surface, not just the obvious sinks.
385
- - **Regression suite** — `bun run test` runs 183 checks covering finding
412
+ - **Regression suite** — `bun run test` runs 453 checks covering finding
386
413
  lifecycle, evidence integrity, CVSS math, taint tracing, dedup, report
387
414
  integrity, and benchmark invariants. CI runs it on every push.
388
415