|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [2.3.0] - 2026-04-12 |
| 4 | + |
| 5 | +### Added |
| 6 | +- **CryptoMisuse category (PA022)**: New weak point category detecting cryptographic primitive |
| 7 | + misuse across five languages. Context-window heuristic (±200 chars) restricts MD5/SHA-1 |
| 8 | + findings to security-sensitive usage — MD5 for file checksums is not flagged. |
| 9 | + - **Rust**: `md5::compute`/`Md5::new` and `sha1::Sha1`/`Sha1::new` in security context (High); |
| 10 | + `==` comparison on `secret`/`password`/`token`/`key` variables (Critical — timing attack). |
| 11 | + - **Python**: `hashlib.md5()`/`hashlib.sha1()` in security context (High); |
| 12 | + `==` on secret-named variables — use `hmac.compare_digest()` instead (Critical). |
| 13 | + - **JavaScript**: `crypto.createHash('md5')` and `crypto.createHash('sha1')` (High); |
| 14 | + `crypto.createHash('sha256')` is fine and not flagged. |
| 15 | + - **Go**: `md5.New()`/`md5.Sum()` and `sha1.New()`/`sha1.Sum()` in security context (High). |
| 16 | + - **Elixir**: `:crypto.hash(:md5, ...)` and `:crypto.hash(:sha, ...)` (High); |
| 17 | + `:crypto.mac(:hmac, :sha, ...)` is acceptable (HMAC-SHA1 is not broken) and not flagged. |
| 18 | + - Key-reuse and nonce-reuse deferred — not reliably detectable statically. |
| 19 | +- **has_security_context() helper**: Module-level helper function checks ±200 char window |
| 20 | + around a pattern match for security vocabulary (password, secret, token, auth, key, |
| 21 | + credential, hash, sign, verify, encrypt) to reduce false positives on benign MD5/SHA-1 use. |
| 22 | +- **PA022 → panicbot**: CryptoMisuse mapped to fleet category `static-analysis/crypto-misuse` |
| 23 | + with 0.75 confidence, Eliminate tier, Partial fixability. Confidence is honest — the context |
| 24 | + window has a modest false-positive rate when security vocabulary appears for unrelated reasons. |
| 25 | +- **Idris2 ABI completeness**: `PatternCompleteness.idr` updated — CryptoMisuse added to |
| 26 | + `WPCategory` with `detectorsFor` covering Rust, Python, JavaScript, Go, Elixir. |
| 27 | + |
3 | 28 | ## [2.2.0] - 2026-04-12 |
4 | 29 |
|
5 | 30 | ### Added |
|
13 | 38 | with 0.85 confidence, Eliminate tier, fixable (adding pins resolves the finding). |
14 | 39 | - **Idris2 ABI completeness**: `PatternCompleteness.idr` updated — SupplyChain added to |
15 | 40 | `WPCategory` with `detectorsFor` covering Rust, Julia, Nix, JavaScript. |
16 | | -- **CryptoMisuse wiring completed**: CryptoMisuse (PA022) now fully wired into |
17 | | - `readiness.rs` expected categories and `translator.rs` category mapping. |
18 | 41 |
|
19 | 42 | ### Changed |
20 | 43 | - **Category count**: 22 → 23 (added SupplyChain) |
|
0 commit comments