mirror of
https://github.com/ether/etherpad-lite.git
synced 2026-07-18 00:57:55 +00:00
* chore(docker): clear most CVEs in published image — npm/pnpm/uuid + drop curl Cuts published-image vulnerabilities from 18 (4H/13M/1L) across 8 packages to 12 (2H/9M/1L) across 3 packages. The remaining three (curl/libcurl, git, busybox) are all upstream Alpine 3.23 packages with "not fixed" status — libcurl is pulled in transitively by git and cannot be removed independently. Changes: - Provision pnpm via corepack instead of `npm install -g pnpm`, then remove the bundled npm. The base image's npm@10.9.7 ships old transitives (picomatch 4.0.3 → CVE-2026-33671/33672, brace-expansion 2.0.2 → CVE-2026-33750) that we don't otherwise need at runtime; corepack handles pnpm directly without npm. Fixes 1H + 1M. - Bump PnpmVersion 10.28.2 → 10.33.2 to align with the rest of the workflow and pull in pnpm's patched bundled brace-expansion (5.0.5 vs 5.0.4). Fixes 1M. - Add `uuid@<14.0.0` → `>=14.0.0` to pnpm.overrides (GHSA-w5hq-g745-h8pq). Fixes 1M. - Drop `curl` from the runtime apk add list and switch HEALTHCHECK to wget (busybox built-in). curl was only invoked by the healthcheck and by dev/CI scripts that don't run in the container. Removes the curl CLI binary; libcurl remains as a git transitive dep, so the `apk/alpine/curl` advisories scout reports against libcurl persist but aren't reachable from any code we ship. As a side-effect this also clears nghttp2 (CVE-2026-27135) which was a curl-CLI dep. - Switch HEALTHCHECK URL from `localhost` to `127.0.0.1` — alpine/musl resolves localhost to ::1 first and Etherpad only binds IPv4. Verified locally: docker build → docker run → healthy → docker scout cves shows 12 CVEs / 3 packages. * fix(docker): refresh corepack before preparing pnpm (Qodo) Node 22's bundled corepack ships a stale signing-key list and can reject newer pnpm releases (nodejs/corepack#612), which would fail the image build at `corepack prepare`. Mirror the snap/snapcraft.yaml workaround: `npm install -g corepack@latest` before activating pnpm, in both adminbuild and build stages. npm is still removed afterwards. * docs(changelog): note docker image dropping curl/npm/npx (Qodo) Address Qodo's "backwards-incompatible change without mitigation" rule violations by documenting the removal in the 2.7.3 breaking-changes section. Operators who exec into the container can apk add curl on demand or use the busybox wget / pnpm already present. * chore: pnpm * chore: pnpm * chore: pnpm * chore: pnpm * chore: pnpm * chore: pnpm * chore: pnpm * chore: pnpm * chore: pnpm --------- Co-authored-by: SamTV12345 <40429738+samtv12345@users.noreply.github.com>
63 lines
2 KiB
JSON
63 lines
2 KiB
JSON
{
|
|
"name": "etherpad",
|
|
"description": "A free and open source realtime collaborative editor",
|
|
"homepage": "https://etherpad.org",
|
|
"type": "module",
|
|
"keywords": [
|
|
"etherpad",
|
|
"realtime",
|
|
"collaborative",
|
|
"editor"
|
|
],
|
|
"bin": {
|
|
"etherpad-healthcheck": "bin/etherpad-healthcheck"
|
|
},
|
|
"scripts": {
|
|
"lint": "pnpm --filter ep_etherpad-lite run lint",
|
|
"test": "pnpm --filter ep_etherpad-lite run test",
|
|
"test-utils": "pnpm --filter ep_etherpad-lite run test-utils",
|
|
"test-container": "pnpm --filter ep_etherpad-lite run test-container",
|
|
"dev": "pnpm --filter ep_etherpad-lite run dev",
|
|
"prod": "pnpm --filter ep_etherpad-lite run prod",
|
|
"ts-check": "pnpm --filter ep_etherpad-lite run ts-check",
|
|
"ts-check:watch": "pnpm --filter ep_etherpad-lite run ts-check:watch",
|
|
"test-ui": "pnpm --filter ep_etherpad-lite run test-ui",
|
|
"test-ui:ui": "pnpm --filter ep_etherpad-lite run test-ui:ui",
|
|
"test-admin": "pnpm --filter ep_etherpad-lite run test-admin",
|
|
"test-admin:ui": "pnpm --filter ep_etherpad-lite run test-admin:ui",
|
|
"plugins": "pnpm --filter bin run plugins",
|
|
"install-plugins": "pnpm --filter bin run plugins i",
|
|
"remove-plugins": "pnpm --filter bin run remove-plugins",
|
|
"list-plugins": "pnpm --filter bin run list-plugins",
|
|
"build:etherpad": "pnpm --filter admin run build-copy && pnpm --filter ui run build-copy",
|
|
"build:ui": "pnpm --filter ui run build-copy && pnpm --filter admin run build-copy",
|
|
"makeDocs": "pnpm --filter bin run makeDocs"
|
|
},
|
|
"dependencies": {
|
|
"ep_etherpad-lite": "link:src"
|
|
},
|
|
"devDependencies": {
|
|
"admin": "link:admin",
|
|
"docs": "link:doc",
|
|
"ui": "link:ui"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.13.0"
|
|
},
|
|
"packageManager": "pnpm@11.0.6",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/ether/etherpad.git"
|
|
},
|
|
"engineStrict": true,
|
|
"version": "2.7.2",
|
|
"license": "Apache-2.0",
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"esbuild"
|
|
],
|
|
"ignoredBuiltDependencies": [
|
|
"@scarf/scarf"
|
|
]
|
|
}
|
|
}
|