fad-checker 2.1.0 → 2.1.2

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/README.md CHANGED
@@ -37,7 +37,7 @@ Because it doesn't need anything you don't already have on disk:
37
37
  | `snyk` binary | Built-in CVE matching via CVEProject + OSV + NVD (merged), prioritised with EPSS + CISA KEV (see below). Snyk is *optional* (`--snyk`). |
38
38
  | A network connection | First run downloads CVE / OSV / EOL data; subsequent runs use cached copies (`--offline` to force). |
39
39
 
40
- Exactly **two** runtime dependencies must be on PATH (or installed automatically through npm): Node ≥ 20 and `retire` (the npm package, installed by `npm install`). Everything else is bundled or fetched lazily.
40
+ Exactly **one** runtime dependencies must be on PATH (or installed automatically through npm): Node ≥ 20. Everything else is bundled or fetched lazily.
41
41
 
42
42
  ---
43
43
 
@@ -356,7 +356,7 @@ of thing a security consultant or an ANSSI-PASSI engagement needs.
356
356
  | | **fad-checker** | OSV-Scanner | Trivy | Grype + Syft | OWASP DC | Snyk OSS |
357
357
  | --- | --- | --- | --- | --- | --- | --- |
358
358
  | Ecosystems it targets¹ | Maven, npm, Yarn, **pnpm**, Composer, PyPI, NuGet, Go, Ruby + vendored JS | 11+ langs / 19+ lockfiles | 20+ | 20+ | Java/.NET (others exp.) | many |
359
- | Reads lockfiles without `install`/build² | ✅ | ✅ | ✅ | ✅ | ⚠️ Java needs Maven Central/build | ❌ build required |
359
+ | Reads lockfiles without `install`/build | ✅ | ✅ | ✅ | ✅ | ⚠️ Java needs Maven Central/build | ❌ build required |
360
360
  | Best-effort when **no lockfile** (pinned versions) | ✅ | ❌ | ❌ | ❌ | ⚠️ | ⚠️ |
361
361
  | Vulnerability sources | CVEProject + OSV + NVD + EPSS + KEV + retire.js (+ Snyk), merged | OSV.dev | Aqua DB | Anchore DB | NVD / CPE | Snyk DB |
362
362
  | False-positive control | CPE/version cross-check | ecosystem-aware | ecosystem-aware | ecosystem-aware | ⚠️ CPE → noisy | ecosystem-aware |
@@ -369,26 +369,21 @@ of thing a security consultant or an ANSSI-PASSI engagement needs.
369
369
  | CI gating (`--fail-on`) + triage | ✅ severity/KEV + ignore/VEX | ✅ | ✅ | ✅ | ⚠️ | ✅ |
370
370
  | Auto-remediation / PRs | ❌ (fix recipes only) | ✅ `fix` | ❌ | ❌ | ❌ | ✅ |
371
371
  | Offline | ✅ cache | ✅ local DB | ✅ | ✅ | ✅ feed | ❌ mostly online |
372
- | **Scan without exposing the codebase**³ | ✅ anonymized descriptor | ❌ | ❌ | ❌ | ❌ | ❌ |
372
+ | **Scan without exposing the codebase**² | ✅ anonymized descriptor | ❌ | ❌ | ❌ | ❌ | ❌ |
373
373
  | **Maven private-dep cleanup** (→ Snyk) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
374
374
  | Output | **HTML + Word `.doc`** + JSON / SARIF / CycloneDX / CSAF | table/JSON/SARIF | table/JSON/SARIF | table/JSON/SARIF | HTML/XML/JSON | JSON / cloud UI |
375
375
 
376
376
  ¹ Narrower language coverage — no Rust/Dart/Swift (Go and Ruby are now covered).
377
- ² Reading **lockfiles** without a build is the norm today: OSV-Scanner, Trivy and Grype/Syft
378
- do it too. For **Maven `pom.xml`** specifically, *every* tool `fad-checker` included must
379
- reach Maven Central (or rely on a real build / CycloneDX SBOM) to resolve transitive versions;
380
- Trivy can resolve wrong transitive versions in that mode, while `fad-checker` flags what it
381
- can't resolve in chapter 0. The genuine "no build" win is **vs Snyk** (requires building the
382
- project) and **OWASP DC** (needs Maven Central access for Java accuracy).
383
- ³ Phase 1 exports only public coordinates; the online scan never sees your source tree —
377
+
378
+ ² Phase 1 exports only public coordinates; the online scan never sees your source tree
384
379
  see [Air-gapped / PASSI](#air-gapped--passi-audits-anonymized-dependency-descriptor). OSV-Scanner
385
380
  has an offline mode, but it still needs the **source on the scanning machine**.
386
381
 
387
382
  **Where it fits:** a one-shot audit of a polyglot checkout you may not be able to build, a
388
383
  presentable HTML/Word deliverable, and confidential / air-gapped engagements.
389
- **Where it doesn't:** continuous CI supply-chain security, container/OS scanning,
390
- reachability analysis, auto-fix PRs — reach for **Trivy** or **Grype + Syft**. (It now
391
- *does* emit CycloneDX/CSAF and flag licenses + EPSS/KEV, but it isn't a gating CI daemon.)
384
+
385
+ **Where it doesn't:** container/OS scanning,
386
+ reachability analysis, auto-fix PRs reach for **Trivy** or **Grype + Syft**.
392
387
 
393
388
  You don't have to choose — `fad-checker` takes Snyk's results as input (`--snyk`) and merges them.
394
389