blitzstrike 2.4.66 → 2.4.67
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 +16 -0
- package/dist/index.js +13 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ 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.67] — 2026-09-14
|
|
9
|
+
|
|
10
|
+
### Fixed — Whole-code interconnection audit (2 bugs)
|
|
11
|
+
|
|
12
|
+
- `submission_gate` is now FAIL-CLOSED: a question passes only when EXPLICITLY
|
|
13
|
+
asserted true (`=== true`, not `!== false`), so an empty/unset finding fails the
|
|
14
|
+
gate instead of passing 7/7 by default. One false = kill, and a missing field is
|
|
15
|
+
a false.
|
|
16
|
+
- Redaction now covers detection end-to-end: 6 secret formats the detector found
|
|
17
|
+
but the redactor did not strip (Slack webhook URL, Firebase URL, basic-auth URL,
|
|
18
|
+
Sentry DSN, ngrok auth token, Discord bot token) now redact — the invariant
|
|
19
|
+
"every secret the detector finds is stripped from reports/logs" is restored.
|
|
20
|
+
- Added a whole-code interconnection audit (detectors ↔ CWE ↔ patterns ↔ chains ↔
|
|
21
|
+
variants ↔ synonyms ↔ severity ↔ secrets + edge cases) + regression tests for
|
|
22
|
+
both fixes.
|
|
23
|
+
|
|
8
24
|
## [2.4.66] — 2026-09-14
|
|
9
25
|
|
|
10
26
|
### Added — Per-engagement pattern recall (intelligence ledger)
|
package/dist/index.js
CHANGED
|
@@ -7495,6 +7495,12 @@ var init_secrets = __esm(() => {
|
|
|
7495
7495
|
[/\blin_api_[A-Za-z0-9]{40}\b/g, "[REDACTED]"],
|
|
7496
7496
|
[/\b(?:NRAA|NRAK|NRBR)-[A-F0-9]{27}\b/g, "[REDACTED]"],
|
|
7497
7497
|
[/\b\d{8,10}:[A-Za-z0-9_-]{35}\b/g, "[REDACTED]"],
|
|
7498
|
+
[/\b[12][A-Za-z0-9]{26}_[A-Za-z0-9]{32,}\b/g, "[REDACTED]"],
|
|
7499
|
+
[/\b[MN][A-Za-z\d]{23}\.[\w-]{6}\.[\w-]{27}\b/g, "[REDACTED]"],
|
|
7500
|
+
[/https:\/\/hooks\.slack\.com\/services\/[A-Za-z0-9\/]+/g, "[REDACTED]"],
|
|
7501
|
+
[/\bhttps?:\/\/[a-z0-9-]+\.firebaseio\.com\b/g, "[REDACTED]"],
|
|
7502
|
+
[/https:\/\/[a-f0-9]+@o[0-9]+\.ingest\.sentry\.io\/[0-9]+/g, "[REDACTED]"],
|
|
7503
|
+
[/https?:\/\/[^/\s:@]+:[^/\s:@]+@[^/\s]+/g, "[REDACTED]"],
|
|
7498
7504
|
[/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{4,}/g, "[REDACTED]"],
|
|
7499
7505
|
[/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g, "[REDACTED]"]
|
|
7500
7506
|
];
|
|
@@ -57818,37 +57824,37 @@ function submissionGate(input) {
|
|
|
57818
57824
|
const questions = [
|
|
57819
57825
|
{
|
|
57820
57826
|
q: "Reproducible — a copy-paste-ready request or step list triggers it?",
|
|
57821
|
-
pass: input.reproducible
|
|
57827
|
+
pass: input.reproducible === true,
|
|
57822
57828
|
reason: "Without an exact reproduction the finding is a hypothesis, not a result."
|
|
57823
57829
|
},
|
|
57824
57830
|
{
|
|
57825
57831
|
q: "In scope — the vulnerable asset is in the engagement scope?",
|
|
57826
|
-
pass: input.in_scope
|
|
57832
|
+
pass: input.in_scope === true,
|
|
57827
57833
|
reason: "Out-of-scope assets must not be submitted."
|
|
57828
57834
|
},
|
|
57829
57835
|
{
|
|
57830
57836
|
q: "Real impact — maps to an accepted-impact class, not informational?",
|
|
57831
|
-
pass: input.real_impact
|
|
57837
|
+
pass: input.real_impact === true,
|
|
57832
57838
|
reason: "Informational-only findings dilute the validity ratio."
|
|
57833
57839
|
},
|
|
57834
57840
|
{
|
|
57835
57841
|
q: "No privileged assumption — works without unrealistic attacker prerequisites?",
|
|
57836
|
-
pass: input.no_privileged_assumption
|
|
57842
|
+
pass: input.no_privileged_assumption === true,
|
|
57837
57843
|
reason: "'Admin can do X' is a centralization risk, not a vulnerability."
|
|
57838
57844
|
},
|
|
57839
57845
|
{
|
|
57840
57846
|
q: "Verified live — confirmed with a marker + negative control, not just a static hint?",
|
|
57841
|
-
pass: input.verified_live
|
|
57847
|
+
pass: input.verified_live === true,
|
|
57842
57848
|
reason: "A static hit is a hypothesis until verified live (strike_verify / browser_validate)."
|
|
57843
57849
|
},
|
|
57844
57850
|
{
|
|
57845
57851
|
q: "Evidence attached AND redacted — secrets/PII stripped, integrity-tagged?",
|
|
57846
|
-
pass: input.evidence_redacted
|
|
57852
|
+
pass: input.evidence_redacted === true,
|
|
57847
57853
|
reason: "Evidence must carry SHA-256-tagged, redacted records — no leaked secrets or victim PII."
|
|
57848
57854
|
},
|
|
57849
57855
|
{
|
|
57850
57856
|
q: "Severity derived — CVSS/confidence computed, not guessed?",
|
|
57851
|
-
pass: input.severity_derived
|
|
57857
|
+
pass: input.severity_derived === true,
|
|
57852
57858
|
reason: "Severity is not confidence; derive it, don't assert it."
|
|
57853
57859
|
}
|
|
57854
57860
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blitzstrike",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.67",
|
|
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": {
|