source: Klonkt/package.json@ 1ff801d

main
Last change on this file since 1ff801d was 718eaeb, checked in by Robin <roboburr@…>, 5 weeks ago

nodemailer 6 -> 9: acht adviezen weg, waaronder SMTP-injectie

De enige die npm niet binnen semver kon repareren en die wel gevaarlijk was.
Drie majors, dus met de hand en niet met --force -- die had uuid meegesleept
en dat blijft bewust staan (shaer-45y).

Wat het afsluit: SMTP-commando-injectie via envelope.size en via CRLF in de
transport-naam, bezorging op een onbedoeld domein door een interpretatie-
conflict, CRLF-injectie in List-*-headers, jsonTransport dat disableFileAccess
en disableUrlAccess omzeilt, de raw-optie die willekeurig bestandslezen en SSRF
toeliet, gebrekkige TLS-certificaatvalidatie bij het ophalen van een OAuth2-
token, en DoS in addressparser.

Het raakvlak is een bestand: src/config/mailer.js roept createTransport aan met
host/port/secure/auth en sendMail met from/to/subject/text/html. Geen enkele
test komt daar langs, dus de suite zou een breuk hier niet zien. Apart
gerookt tegen nodemailer 9: de default-import werkt nog (v9 is nog steeds CJS,
geen exports-map), de transport bouwt, en sendMail levert via jsonTransport een
bericht met text, html en het geadresseerde to-veld. Engines eist >=6.0.0, de
server draait 20.20.2.

576 tests groen. Resteert: uuid, moderate, v4 zonder buf wordt niet geraakt.

Co-Authored-By: Claude Opus 5 <noreply@…>

  • Property mode set to 100644
File size: 1.2 KB
Line 
1{
2 "name": "klonkt",
3 "version": "1.6.0",
4 "description": "Klonkt — self-hosted multi-site music & blog platform (solo, hub or circles). Node + SQLite + htmx.",
5 "license": "AGPL-3.0-or-later",
6 "type": "module",
7 "main": "src/server.js",
8 "scripts": {
9 "start": "node src/server.js",
10 "dev": "node --watch src/server.js",
11 "test": "node --test",
12 "migrate": "node src/db/migrate.js",
13 "reset-admin": "node scripts/reset-admin.mjs",
14 "backfill:durations": "node scripts/backfill-durations.mjs"
15 },
16 "dependencies": {
17 "@resvg/resvg-js": "^2.6.2",
18 "@simplewebauthn/browser": "^13.3.0",
19 "@simplewebauthn/server": "^13.3.2",
20 "bcryptjs": "^2.4.3",
21 "better-sqlite3": "^11.3.0",
22 "body-parser": "^1.20.2",
23 "dotenv": "^16.3.1",
24 "ejs": "^3.1.9",
25 "express": "^4.18.2",
26 "express-rate-limit": "^7.4.1",
27 "express-session": "^1.17.3",
28 "ffmpeg-static": "^5.2.0",
29 "fluent-ffmpeg": "^2.1.3",
30 "helmet": "^7.1.0",
31 "htmx.org": "1.9.12",
32 "marked": "^11.1.1",
33 "multer": "^1.4.5-lts.1",
34 "node-webpmux": "^3.2.1",
35 "nodemailer": "^9.0.5",
36 "qrcode": "^1.5.4",
37 "sanitize-html": "^2.17.3",
38 "uuid": "^9.0.1",
39 "web-push": "^3.6.7"
40 },
41 "engines": {
42 "node": ">=20"
43 }
44}
Note: See TracBrowser for help on using the repository browser.