Skip to content

Commit a451471

Browse files
committed
docs: add Strapi case study with verified Yarn Berry lockfile scan
Document strapi/strapi at e666ee2 (2,887 packages, 29 findings) with CMS parallel to Ghost on html-minifier, direct lodash/qs fixes, and six fix groups. Closes #373
1 parent 6a4b19d commit a451471

9 files changed

Lines changed: 2435 additions & 2353 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ All notable changes to CVE Lite CLI will be documented in this file.
44

55
## [Unreleased]
66

7+
### Docs
8+
- Strapi case study added with verified baseline scan of a Yarn Berry lockfile snapshot (`examples/strapi/`, 2,887 packages, 29 findings at revision `e666ee2`), including CMS parallel with Ghost on `html-minifier`, direct vs transitive remediation split, and CVE Lite CLI vs `yarn npm audit` comparison.
9+
710
## [1.22.0] - 2026-06-11
811

912
### Added

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,9 @@ CVE Lite CLI has been evaluated against real open-source projects to verify that
226226
- [n8n](https://owasp.org/cve-lite-cli/docs/case-studies/n8n) — verified baseline scan of a workflow automation pnpm monorepo (3,746 packages, 32 findings at revision `e2e0394`) with one direct `turbo` fix, four command groups, and email/editor transitive clusters
227227
- [CamoFox Browser](https://owasp.org/cve-lite-cli/docs/case-studies/camofox-browser) — verified baseline scan of an AI agent browser automation npm graph (435 packages, 2 findings at revision `ce3a3b0`) with dual `qs` fix strategies — within-range `npm update qs` and parent `npm install express@4.22.2`
228228
- [Storybook](https://owasp.org/cve-lite-cli/docs/case-studies/storybook) — verified baseline scan of a Yarn Berry monorepo (3,008 packages, 92 findings at revision `cc19ae1`) spanning cross-framework sandbox templates, five critical transitive chains, and one direct vite fix command
229+
- [Strapi](https://owasp.org/cve-lite-cli/docs/case-studies/strapi) — verified baseline scan of a Yarn Berry headless CMS monorepo (2,887 packages, 29 findings at revision `e666ee2`) with direct lodash/qs fixes, critical handlebars chain, and html-minifier no-fix parallel with Ghost
229230

230-
In-repo lockfile fixtures for Astro, Turborepo, Visual Studio Code, Gatsby, Vercel AI SDK, Mastra, Lit, LangChain.js, OpenAI Agents JS, n8n, CamoFox Browser, and Storybook live under [`examples/`](examples/readme.md) — clone the repo and scan immediately without downloading full upstream checkouts.
231+
In-repo lockfile fixtures for Astro, Turborepo, Visual Studio Code, Gatsby, Vercel AI SDK, Mastra, Lit, LangChain.js, OpenAI Agents JS, n8n, CamoFox Browser, Storybook, and Strapi live under [`examples/`](examples/readme.md) — clone the repo and scan immediately without downloading full upstream checkouts.
231232

232233
These are not demos. They are documented scans against real codebases with real findings, recorded before and after applying fix commands.
233234

examples/readme.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,14 @@ Lockfile-only snapshot from [storybookjs/storybook](https://github.com/storybook
135135
|---|---|---|---|
136136
| `storybook` | Yarn Berry | https://github.com/storybookjs/storybook | Cross-framework UI tooling monorepo — 3,008 packages, 92 findings. |
137137

138+
## In-repo snapshot: Strapi
139+
140+
Lockfile-only snapshot from [strapi/strapi](https://github.com/strapi/strapi) at revision `e666ee26ae8e8c1758a048d6385afe1a62790a84`. Commits `package.json` and `yarn.lock` only — no application source. [Case study](../website/docs/case-studies/strapi.md).
141+
142+
| Folder | Package Manager | Source | Purpose |
143+
|---|---|---|---|
144+
| `strapi` | Yarn Berry | https://github.com/strapi/strapi | Headless CMS monorepo — 2,887 packages, 29 findings (2 direct). |
145+
138146
## Local-only examples
139147

140148
Full project clones used for real-world testing. Not committed to this repo — clone each separately into `examples/` for local use.
@@ -147,7 +155,6 @@ Full project clones used for real-world testing. Not committed to this repo —
147155
| `juice-shop` | npm | https://github.com/juice-shop/juice-shop | Large real-world project (OWASP Juice Shop) with broad vulnerability surface. |
148156
| `ghost` | pnpm | https://github.com/TryGhost/Ghost | Professional publishing platform — 26 transitive vulnerabilities in 4,447 packages including critical XSS in sanitize-html. |
149157
| `prisma` | pnpm | https://github.com/prisma/prisma | TypeScript ORM — real-world pnpm monorepo scan. |
150-
| `strapi` | yarn | https://github.com/strapi/strapi | Headless CMS — real-world Yarn lockfile scan. |
151158

152159
## Usage
153160

@@ -213,6 +220,9 @@ node dist/index.js examples/camofox-browser --verbose --all
213220
# In-repo snapshot: Storybook
214221
node dist/index.js examples/storybook --verbose --all
215222

223+
# In-repo snapshot: Strapi
224+
node dist/index.js examples/strapi --verbose --all
225+
216226
# Local-only (clone first)
217227
node dist/index.js examples/analog --verbose
218228
node dist/index.js examples/nest --verbose

examples/strapi/package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,14 @@
9494
"test:unit:vitest:watch": "vitest --watch"
9595
},
9696
"resolutions": {
97+
"ajv@^8.0.0": "8.20.0",
98+
"ajv@^8.6.3": "8.20.0",
99+
"ajv@^8.9.0": "8.20.0",
100+
"ajv@^8.11.0": "8.20.0",
101+
"ajv@^8.17.1": "8.20.0",
102+
"ajv@~8.13.0": "8.20.0",
103+
"ajv@~8.18.0": "8.20.0",
104+
"webpack": "5.106.2",
97105
"@types/koa": "2.13.4",
98106
"@babel/core": "7.29.0",
99107
"@babel/runtime": "7.29.2",
@@ -171,7 +179,7 @@
171179
"plop": "4.0.5",
172180
"prettier": "3.3.3",
173181
"prettier-2": "npm:prettier@^2",
174-
"qs": "6.15.0",
182+
"qs": "6.15.2",
175183
"rimraf": "6.1.3",
176184
"rollup": "4.59.0",
177185
"rollup-plugin-html": "0.2.1",

0 commit comments

Comments
 (0)