blitzstrike 2.4.86 → 2.4.87
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 +9 -0
- package/dist/index.js +4 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,15 @@ 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.87] — 2026-09-17
|
|
9
|
+
|
|
10
|
+
### Fixed — web3 class naming consistency + jwt grounding
|
|
11
|
+
|
|
12
|
+
- Renamed the web3 class `encodePacked_collision` → `encode_packed_collision`
|
|
13
|
+
(snake_case, matching the other classes; fixes resolution through canonical id).
|
|
14
|
+
- Added the `jwt` → `jwt_alg_confusion` synonym so the `jwt` attack-vector resolves
|
|
15
|
+
to its pattern grounding + payout (previously returned no bounty signal).
|
|
16
|
+
|
|
8
17
|
## [2.4.86] — 2026-09-17
|
|
9
18
|
|
|
10
19
|
### Added — Web3 audit extended to 13 bug classes
|
package/dist/index.js
CHANGED
|
@@ -34491,6 +34491,7 @@ var ALIASES = {
|
|
|
34491
34491
|
"rust format string": "rust_format_string",
|
|
34492
34492
|
"format string": "rust_format_string",
|
|
34493
34493
|
"format string injection": "rust_format_string",
|
|
34494
|
+
jwt: "jwt_alg_confusion",
|
|
34494
34495
|
"jwt algorithm confusion": "jwt_alg_confusion",
|
|
34495
34496
|
"jwt alg confusion": "jwt_alg_confusion",
|
|
34496
34497
|
"alg confusion": "jwt_alg_confusion",
|
|
@@ -60489,7 +60490,7 @@ var SEVERITY = {
|
|
|
60489
60490
|
timestamp_dependence: { severity: "medium", cwe: "CWE-1164", category: "block.timestamp / block.number dependence" },
|
|
60490
60491
|
oracle_manipulation: { severity: "high", cwe: "CWE-1235", category: "Spot-price oracle (DEX pair) manipulation" },
|
|
60491
60492
|
unbounded_loop: { severity: "medium", cwe: "CWE-834", category: "Unbounded loop over user-controlled length" },
|
|
60492
|
-
|
|
60493
|
+
encode_packed_collision: { severity: "high", cwe: "CWE-701", category: "abi.encodePacked hash collision (dynamic types)" },
|
|
60493
60494
|
address_zero_check: { severity: "low", cwe: "CWE-20", category: "Missing address(0) validation on privileged assignment" }
|
|
60494
60495
|
};
|
|
60495
60496
|
function lines3(code) {
|
|
@@ -60649,7 +60650,7 @@ function web3Audit(code, file) {
|
|
|
60649
60650
|
}
|
|
60650
60651
|
const packedRe = /keccak256\s*\(\s*abi\.encodePacked\s*\(/g;
|
|
60651
60652
|
while ((m = packedRe.exec(clean)) !== null) {
|
|
60652
|
-
push(out, file, code, m.index, "
|
|
60653
|
+
push(out, file, code, m.index, "encode_packed_collision", (ls[lineNo4(code, m.index) - 1] ?? "").trim(), "`keccak256(abi.encodePacked(...))` over dynamic types (string/bytes/array) is ambiguous — ['a','bc'] and ['ab','c'] pack identically, enabling hash collisions and signature forgery (CWE-701). Use `abi.encode` (which pads + length-prefixes each argument) for any hash or signature digest.");
|
|
60653
60654
|
}
|
|
60654
60655
|
const zeroCheckRe = /\b(constructor|initialize|setOwner|transferOwnership|setAdmin|setFeeRecipient|setPendingOwner)\s*\(/g;
|
|
60655
60656
|
const cleanLines = lines3(clean);
|
|
@@ -60790,7 +60791,7 @@ contract Evil {
|
|
|
60790
60791
|
vm.expectRevert(); // or assert gas consumption
|
|
60791
60792
|
target.processAll();
|
|
60792
60793
|
}`,
|
|
60793
|
-
|
|
60794
|
+
encode_packed_collision: ` function testEncodePackedCollision() public {
|
|
60794
60795
|
// two distinct inputs pack to the same hash
|
|
60795
60796
|
bytes32 a = target.hashFor("a", "bc");
|
|
60796
60797
|
bytes32 b = target.hashFor("ab", "c");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blitzstrike",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.87",
|
|
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": {
|