Address npm audit vulnerabilities (nodemailer, multer, express deps)
I maintainer di solito rispondono entro 7 giorni
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- express, javascript, mysql, nodejs, sqlite
- Ambito
- backend, build-system, security
Direzione di ricerca
Start with app/package.json and run npm audit to see which advisories remain. The payload names app/uploader.js (multer limits) and app/emailer.js with app/endpoints/manage_event.js (nodemailer use) as the code that changes, and the sqlite3 and hugo-installer install paths are separate. Done means the audit count drops, the test suite passes, and image upload and the confirmation email work locally. Major-version bumps (nodemailer, sqlite3, faker) need changelog review, so expect to ask maintainers before merging.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
npm audit reports 34 vulnerabilities (4 critical, 24 high, 4 moderate, 2 low).
Most are in dev, build, or install-time dependencies, but a few affect the production backend.
Production exposure
- nodemailer
~7.0.11: the event confirmation email (app/endpoints/manage_event.js) sends to a user-supplied name and address, which is the input targeted by the addressparser DoS and recipient-domain bypass advisories.
Fixed in 10.x (major). - multer
~2.1.1: the public image upload endpoint is exposed to several DoS advisories via crafted field names.
app/uploader.jslimits file count and size, but notfields,parts, orfieldNameSize.
Fixed in 2.4.0. - qs / body-parser / express: query string DoS, reachable on every request.
Fixed bynpm audit fix. - proxy-addr (critical): low impact here since we set
trust proxytotrueand don't readreq.ip.
Fixed bynpm audit fix. - mysql2
~3.14.0: requires a malicious or impersonated database server.
Fixed in 3.24.6. - lodash
~4.17.21: we only usepickBy, so not affected, but cheap to bump to 4.18.1.
Install, dev, and build only
- tar / node-gyp / cacache (critical) via
sqlite3@5, used at install time only; production uses MySQL.
Fixed in sqlite3 6.x (major). - decompress / semver (critical) via
hugo-installer, which extracts the Hugo release archive duringpostinstall.
npm audit fixupdates decompress; ignore the--forcesuggestion, which downgrades hugo-installer. - @faker-js/faker in
tools/;helpers.fakeisn't used.
Fixed in 10.x (major). - @vue/server-renderer:
cal/is client-side only. - shell-quote, braces, micromatch, brace-expansion, nanoid, source-map-js, http-cache-semantics, ip-address: dev and build tooling only.
Proposed fix
- Run
npm audit fix(non-breaking). - Bump ranges in
app/package.json: multer~2.4.0, mysql2~3.24.6, lodash~4.18.1. - Upgrade nodemailer to 10.x and check
app/emailer.jsagainst the changelog. - Upgrade sqlite3 to 6.x and
@faker-js/fakerto 10.x. - Add
fields,parts, andfieldNameSizelimits to the multer config inapp/uploader.js. - Run the test suite and verify image upload and the confirmation email locally.
- Lingua principale
- JavaScript
- Stelle
- 30
- Fork
- 26
- Merge medio
- 6g 24m
- PR unite (30g)
- 6
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di shift-org/shift-docs
-
Export links and the webcal feed 404 under npm run devForse già presa @dduugg l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
shift-org/shift-docs#1121 ·
I maintainer di solito rispondono entro 7 giorni
-
Unknown --db values report a TypeError instead of the intended errorForse già presa @gangster l’ha presa 72 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
shift-org/shift-docs#1091 ·
I maintainer di solito rispondono entro 7 giorni
-
validateRideLength accepts any Object.prototype key as a ride lengthForse già presa @gangster l’ha presa 72 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
shift-org/shift-docs#1089 ·
I maintainer di solito rispondono entro 7 giorni
-
Favorites page fetches every favorite because getDaily's guard is invertedForse già presa @gangster l’ha presa 72 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
shift-org/shift-docs#1087 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
shift-org/shift-docs#1126 ·
I maintainer di solito rispondono entro 7 giorni
Tutte le issue di shift-org/shift-docs
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
keyxmakerx/Chronicle#1469 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
suradet-ps/codeframe#40 ·
I maintainer di solito rispondono entro 1 giorno
-
data
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
gaseous-project/hasheous#637 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
gramps-project/gramps-web#1549 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100