Skip to content

chore: #105 dependency and security upgrades (pnpm 11, Node 24) - #108

Open
th-huber wants to merge 12 commits into
mainfrom
chore/105-deps-security
Open

chore: #105 dependency and security upgrades (pnpm 11, Node 24)#108
th-huber wants to merge 12 commits into
mainfrom
chore/105-deps-security

Conversation

@th-huber

@th-huber th-huber commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Upgrades to pnpm 11 / Node 24 and applies security dependency overrides
  • Omits sensitive user fields from the JWT session payload
  • Fixes Docker install to copy pnpm-workspace.yaml for frozen installs

Closes #105

th-huber added 12 commits August 6, 2026 16:50
Fixes known CVEs/advisories in 7.0.13 (SMTP injection, CRLF header injection,
and related hardening). Types updated to @types/nodemailer@8.0.1.

(cherry picked from commit 8476ce9)
Fixes GHSA-6g55-p6wh-862q (arbitrary file read via sourceMappingURL) and
GHSA-qx2v-qp2m-jg93 (XSS via unescaped </style>) from next's pinned 8.4.31.
Resolved to postcss@8.5.22 via pnpm-workspace.yaml overrides.

(cherry picked from commit 27ec1ce)
Fixes GHSA-w5hq-g745-h8pq (missing buffer bounds check in v3/v5/v6) from
exceljs's pinned uuid@8.3.2. Resolved to uuid@14.0.1 via scoped
pnpm-workspace.yaml override (exceljs>uuid).

(cherry picked from commit 06c2f90)
Fixes CVE-2026-39244 (unbounded Buffer.alloc / OOM from crafted ZIP).
Dropped @types/adm-zip; 0.6 ships built-in TypeScript types.

(cherry picked from commit 3723ca0)
find-my-way is only a transitive dep of @prisma/dev (local Prisma
tooling), not our HTTP router. The advisory is a DoS only when
find-my-way is used with Node's HTTP/2 server, which we don't expose.

(cherry picked from commit 834f59a)
sharp is only a transitive dep of Next's image optimizer. We don't process
untrusted images through sharp (project logos use plain img; next/image is
mostly static assets), so the libvips CVEs are low risk for this app.

(cherry picked from commit 9dc4f03)
authorize() was spreading the full Prisma user into the credentials
result, so password hashes, invite/reset tokens, and relation data
ended up in token.user and the client-readable /api/auth/session
response. An attacker with XSS, malicious client script, or local
access to a logged-in browser could read the hash (for offline
cracking / password reuse) or a live reset/invite token (account
takeover). Return only explicit safe fields (id, name, email, image,
roles, managerOf, loanedToProjects, language), and allow
session.update to patch only name and language.

(cherry picked from commit d3d2e31)
Security upates needed pnpm overrides. Overrides live in pnpm-workspace.yaml; without it, frozen lockfile install fails with ERR_PNPM_LOCKFILE_CONFIG_MISMATCH.

(cherry picked from commit 6efc85a)
@th-huber
th-huber requested a review from soudis August 6, 2026 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

updated dependencies and fixed minor security issues

1 participant