mrkeyoor.com_
Thu 17 Sept 18:29 UTC
Open Source6 min read

Blitz Strike Hits 634 Stars While Its Scope Check Never Blocks

The five-day-old MCP security server can probe live sites in one call. Its code records out-of-scope targets, then proceeds anyway.

Five days after its repository appeared, Blitz Strike had 634 GitHub stars and 23,403 npm downloads. The MCP server can move from a target URL to active security probes in one tool call. Its current source also says scope classification does not gate that run. A developer can hand an agent a domain outside the declared scope and the pipeline will record the mismatch, then proceed, according to the repository metadata, npm's download counter, and the live engagement code.

That boundary deserves attention because the project's own usage guide says scope_check runs before active testing in every mode. The implementation makes a different promise: scope is recorded for the report, while responsibility rests with the operator. For a scanner that can send SQL injection, server-side request forgery, and command-injection probes, this is more than wording in a manual. It determines whether a mistaken agent call stops at the door.

A pentest pipeline behind one tool call

Blitz Strike is an MIT-licensed TypeScript and Bun project exposed as a Model Context Protocol server. Its run_engagement tool accepts either a local source path or a URL. A source path goes through static analysis. A URL starts reconnaissance, reflected-input checks, deeper HTTP probes, finding creation, and report generation. The README says the package contains 57 attack chains, a 130-tool catalog, 317 manuals, and 17 playbooks.

The repository is partly an engine and partly a packed reference shelf. Its third-party notices list about 11,900 Nuclei detection templates, 66 PayloadsAllTheThings categories, OWASP taxonomies, and hundreds of manuals imported under their respective licenses. The original code connects those resources to MCP tools that an agent can call, including scanners, report generators, live verifiers, and a command that can install catalogued utilities.

MCP standardizes the connection between an AI host and a tool server. The protocol's current architecture document assigns the host responsibility for user authorization decisions, consent, and security policy. Permission to test a third-party domain remains a separate question. A working MCP connection proves that the agent can reach Blitz Strike. It says nothing about whether Blitz Strike may probe the URL supplied in a prompt.

The scope check classifies and continues

The relevant function is unusually direct. In the current scope-check implementation, the comments call scope intelligence rather than a gate. The function parses included and excluded host patterns, labels the result in_scope, not_in_scope, or out_of_scope, then returns allowed: true and enforcement: off. The project's test suite asserts that an unrelated domain and an explicitly excluded subdomain both remain allowed.

The standalone active_scan route removes any remaining ambiguity. Its server registration runs the classifier, sets allowed = true, and passes that value into the scanner. The tool description says there is no authorization gate because the repository disclaimer covers responsibility. This is an intentional policy in the current source, not an overlooked edge case inferred from a failed test.

A full URL engagement also records the scope result and continues into network activity. It runs reconnaissance, then sends marker and control requests across nine common parameter names. The advanced-check path can probe cloud metadata targets for SSRF, trigger database error signatures, test command injection strings, attempt reflected XSS, alter host headers, and try a JWT with its signature removed. Several checks are designed to avoid destructive effects, but they still send attack-shaped input to a live service.

OWASP's Web Security Testing Guide separates passive exploration from active testing. Once a tool starts exercising input-validation and authorization paths, the engagement has crossed that line. Blitz Strike's security policy clearly tells users to test only systems they own or have written permission to assess. The warning is responsible documentation. It does not prevent an agent from acting on a typo, an overbroad wildcard, or a prompt that names the wrong host.

Its verification model is the strongest part

Blitz Strike does tackle a real weakness in automated security review: a suspicious function or reflected string is often reported as a vulnerability before anyone proves reachability or impact. The project's STRIKE verifier compares three responses. It records a baseline, injects a unique marker, and sends a separate control. A marker that appears while the control stays absent can confirm a reflection. If both appear, the code labels the result a false positive.

That evidence model is more disciplined than asking a language model to judge raw scanner output. Responses are hashed, previews are redacted, and findings move through named states. The same verifier also tries encoding, case changes, comment insertion, separators, and a null byte after a WAF block. Those bypass attempts make the authorization gap more consequential, since a target's refusal can cause the tool to send additional variants rather than stop.

The project reports perfect detection and precision on its labelled enterprise corpus, plus 56 of 60 language and sink-class combinations covered. Its CI workflow runs type checks, the test suite, a build, and an npm pack dry run on pushes and pull requests. These are project-authored fixtures and regression checks. They help maintain behavior, but they do not establish performance on an independent corpus or a production application with unfamiliar frameworks and controls.

Release speed has outrun the review trail

The npm package moved from version 1.0.0 to 2.4.80 between September 12 and September 17. Registry metadata contains 189 published versions over those five days. At the time of writing, GitHub showed one formal release, version 1.0.0, and the public branch's commit history contained two large commits. That makes it difficult to map each installed package version to a small, reviewable change in the repository.

The changelog is detailed, and recent entries describe fixes for false positives, missed Python taint paths, JWT confusion detection, and cache-deception checks. Still, 189 registry versions in five days leave little time for outside users to inspect each release. The package had 23,403 downloads during the same window, so this is already a supply-chain question for more than a handful of repository visitors.

The quick start compounds that concern. The README recommends npx -y blitzstrike doctor followed by npx -y blitzstrike install. The installer then updates detected MCP client configuration files. Running the registry's latest version may be convenient for a new project, but a security tool with network probes and local configuration access warrants an exact version, a reviewed source commit, and a controlled test environment.

A safer boundary is small enough to implement

Teams evaluating Blitz Strike can start with a local source tree or a disposable lab whose network access is restricted to owned targets. A wrapper can reject an empty scope and refuse a host that fails the existing classifier before the request reaches live_recon. That recommendation follows directly from the current split: the project already knows how to identify excluded targets, and the live pipeline already has one point before its network work begins.

Upstream, the clearest change would make scopeCheck return allowed: false for missing, mismatched, and excluded live targets, then exit before reconnaissance. An explicit override could remain for local capture-the-flag labs or a red-team engagement, with the authorization decision recorded in the audit log. The existing security policy would then describe a control that the program enforces.

Watch for a release that makes that gate fail closed and ties npm versions to reviewable tags or commits. Independent results on an outside benchmark would also tell users how much weight to give the project's perfect fixture score. The 634-star count measures interest. The next meaningful signal is whether every live path stops when its declared scope says no.

We reviewed this

  1. pipeline — our honest review
  2. Files — our honest review
  3. Python — our honest review

Sources

  1. Blitz Strike GitHub repository
  2. GitHub repository metadata for Blitz Strike
  3. Blitz Strike usage guide
  4. Blitz Strike scope and live engagement source
  5. Blitz Strike MCP server registration source
  6. Blitz Strike live verifier source
  7. Blitz Strike tests
  8. Blitz Strike security policy