blitzstrike 1.0.34 → 1.0.36
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 +55 -0
- package/bench/corpus/java-cmd-vuln.md +8 -0
- package/bench/corpus/java-deser-vuln.md +8 -0
- package/bench/corpus/java-sqli-prep.md +9 -0
- package/bench/corpus/java-sqli-vuln.md +9 -0
- package/bench/corpus/java-ssrf-vuln.md +9 -0
- package/bench/corpus/java-xss-vuln.md +8 -0
- package/bench/corpus/java-xxe-vuln.md +10 -0
- package/bench/corpus/js-cmd-spawn.md +8 -0
- package/bench/corpus/js-cmd-vuln.md +8 -0
- package/bench/corpus/js-eval-vuln.md +8 -0
- package/bench/corpus/js-pathtraversal-vuln.md +8 -0
- package/bench/corpus/js-redirect-vuln.md +8 -0
- package/bench/corpus/js-sqli-param.md +8 -0
- package/bench/corpus/js-ssrf-vuln.md +8 -0
- package/bench/corpus/{js-xss-sanitized.md → js-xss-escape.md} +1 -1
- package/bench/corpus/js-xss-vuln.md +8 -0
- package/bench/corpus/php-cmd-authgated.md +8 -0
- package/bench/corpus/php-cmd-byref.md +11 -0
- package/bench/corpus/php-cmd-escaped.md +9 -0
- package/bench/corpus/php-cmd-escapeshellcmd.md +9 -0
- package/bench/corpus/php-cmd-intval.md +9 -0
- package/bench/corpus/php-cmd-passthru.md +9 -0
- package/bench/corpus/php-cmd-shell-exec.md +9 -0
- package/bench/corpus/php-cmd-transitive.md +10 -0
- package/bench/corpus/{php-command-injection-vuln.md → php-cmd-vuln.md} +1 -1
- package/bench/corpus/php-codeexec-assert.md +9 -0
- package/bench/corpus/php-codeexec-vuln.md +9 -0
- package/bench/corpus/php-fileupload-name.md +9 -0
- package/bench/corpus/php-fileupload-sanitized.md +9 -0
- package/bench/corpus/php-fileupload-vuln.md +9 -0
- package/bench/corpus/php-filewrite-vuln.md +9 -0
- package/bench/corpus/php-include-intval.md +9 -0
- package/bench/corpus/php-include-require.md +9 -0
- package/bench/corpus/php-include-vuln.md +9 -0
- package/bench/corpus/php-include-whitelist.md +10 -0
- package/bench/corpus/php-redirect-safe.md +9 -0
- package/bench/corpus/php-redirect-vuln.md +9 -0
- package/bench/corpus/php-sqli-authgated.md +9 -0
- package/bench/corpus/php-sqli-esc.md +9 -0
- package/bench/corpus/php-sqli-filter.md +9 -0
- package/bench/corpus/php-sqli-getvar.md +9 -0
- package/bench/corpus/php-sqli-interproc.md +10 -0
- package/bench/corpus/php-sqli-whereraw.md +9 -0
- package/bench/corpus/php-ssrf-curl.md +11 -0
- package/bench/corpus/php-ssrf-vuln.md +9 -0
- package/bench/corpus/php-ssrf-wpremote.md +9 -0
- package/bench/corpus/php-unserialize-vuln.md +9 -0
- package/bench/corpus/php-xss-attr.md +9 -0
- package/bench/corpus/php-xss-authgated.md +8 -0
- package/bench/corpus/php-xss-eschtml.md +9 -0
- package/bench/corpus/php-xss-htmlentities.md +9 -0
- package/bench/corpus/php-xss-return.md +9 -0
- package/bench/corpus/php-xss-ternary.md +9 -0
- package/bench/corpus/php-xss-vuln.md +9 -0
- package/bench/corpus/php-xxe-vuln.md +9 -0
- package/bench/corpus/php-zipslip-vuln.md +10 -0
- package/bench/corpus/py-cmd-subprocess.md +9 -0
- package/bench/corpus/{py-command-injection-vuln.md → py-cmd-vuln.md} +3 -3
- package/bench/corpus/py-deser-json.md +9 -0
- package/bench/corpus/py-deser-vuln.md +9 -0
- package/bench/corpus/py-eval-vuln.md +8 -0
- package/bench/corpus/py-pathtraversal-vuln.md +8 -0
- package/bench/corpus/py-sqli-param.md +9 -0
- package/bench/corpus/py-sqli-vuln.md +9 -0
- package/bench/corpus/py-ssrf-vuln.md +9 -0
- package/bench/corpus/py-xss-vuln.md +8 -0
- package/dist/index.js +812 -29
- package/package.json +1 -1
- package/bench/corpus/java-command-injection-vuln.md +0 -7
- package/bench/corpus/php-file-upload-vuln.md +0 -9
- package/bench/corpus/py-command-injection-sanitized.md +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,61 @@ 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
|
+
## [1.0.36] — 2026-09-13
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Phase 3 — Benchmark expansion** (`scripts/generate-corpus.py` + 70-fixture corpus):
|
|
13
|
+
- Corpus grown 10 → **70 fixtures** (49 vulnerable + 21 patched/safe), covering
|
|
14
|
+
11 sink types × 4 languages (PHP/JS/Python/Java) × vulnerable/patched pairs.
|
|
15
|
+
- Benchmark now scores **detection 1.0 / FP 0 / FN 0 / precision 1.0**.
|
|
16
|
+
- Benchmark PHP fixtures now run through **EAGLE-EYE 2.0** (`analyzeDataFlow2`),
|
|
17
|
+
so return/byref/ternary/transitive cases are measured.
|
|
18
|
+
|
|
19
|
+
### Fixed (engine gaps exposed by the expanded corpus)
|
|
20
|
+
|
|
21
|
+
- **PHP**: `include`/`require`/`include_once`/`require_once` and `eval` are
|
|
22
|
+
statement nodes (not calls) — now handled as sinks.
|
|
23
|
+
- **PHP**: `sinkClassOf` now prefixes `$` to property-lookup bases, so
|
|
24
|
+
`$wpdb->get_var`/`$wpdb->get_results` are classified correctly.
|
|
25
|
+
- **PHP**: method chains (`DB::table()->whereRaw()->get()`) — nested sinks are
|
|
26
|
+
now detected by recursing into the chain base.
|
|
27
|
+
- **PHP**: `in_array`/`preg_match`/`ctype_*`/`is_numeric` whitelist guards are
|
|
28
|
+
recognized as input-validation gates (sinks inside them are suppressed).
|
|
29
|
+
- **PHP**: `wp_safe_redirect` is the *safe* redirect (removed from the redirect sink).
|
|
30
|
+
- **Universal adapters**: added SSRF sinks (JS `http.get`/`axios`, Python
|
|
31
|
+
`requests.*`, Java `new URL`/`openConnection`), path-traversal (JS
|
|
32
|
+
`fs.readFile`), and XXE (Java `DocumentBuilder`/`SAXParser`).
|
|
33
|
+
- **Universal adapters**: parameterized SQL (`?` placeholder + params) and
|
|
34
|
+
Python `subprocess` list-form (no shell) are now recognized as safe.
|
|
35
|
+
|
|
36
|
+
## [1.0.35] — 2026-09-13
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- **Phase 2 — EAGLE-EYE 2.0** (`src/callgraph.ts` + `src/eagle2.ts`):
|
|
41
|
+
- **Call graph** — sound (over-approximate) function/method resolution on a
|
|
42
|
+
PHP AST: name calls, `$this->m()`, static calls, and Class Hierarchy
|
|
43
|
+
Analysis (CHA) for `$obj->m()`.
|
|
44
|
+
- **Whole-program interprocedural taint** — call-graph worklist propagates
|
|
45
|
+
taint transitively across function boundaries (`outer -> inner -> sink`).
|
|
46
|
+
- **Return propagation** — `$x = helper($tainted)` taints `$x` iff the helper
|
|
47
|
+
returns a value derived from its parameter.
|
|
48
|
+
- **By-reference alias tracking** — `&$out` output params that write a source
|
|
49
|
+
taint the caller's variable.
|
|
50
|
+
- **Conditional flow** — ternary (`retif`) + if/else branches are merged
|
|
51
|
+
(sources unioned, sanitizers intersected — sound).
|
|
52
|
+
- **Authorization flow** — sinks guarded by a capability/nonce check are
|
|
53
|
+
flagged `auth_gated` with the *specific* gate name.
|
|
54
|
+
- New MCP tool `eagle_eye2` — prefer over `taint_scan` for accurate
|
|
55
|
+
cross-function reachability.
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- Sink classification false positives: bare function-name sinks (`system(`, `exec(`, …)
|
|
60
|
+
now use `\b` word boundaries, so `outer_exec(...)` is no longer misclassified
|
|
61
|
+
as command execution.
|
|
62
|
+
|
|
8
63
|
## [1.0.33] — 2026-09-13
|
|
9
64
|
|
|
10
65
|
### Added
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
- id: java-xxe-vuln
|
|
2
|
+
- language: java
|
|
3
|
+
- vulnerable: true
|
|
4
|
+
- sink_type: xml_processing
|
|
5
|
+
```java
|
|
6
|
+
InputStream in = request.getInputStream();
|
|
7
|
+
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
|
8
|
+
DocumentBuilder db = dbf.newDocumentBuilder();
|
|
9
|
+
db.parse(in);
|
|
10
|
+
```
|