Address npm audit vulnerabilities (nodemailer, multer, express deps)
Los mantenedores suelen responder en 7 días
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- express, javascript, mysql, nodejs, sqlite
- Área
- backend, build-system, security
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 30
- Forks
- 26
- Merge medio
- 6 d 24 min
- PR fusionados (30 d)
- 6
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de shift-org/shift-docs
-
Unknown --db values report a TypeError instead of the intended errorPosiblemente ocupada @gangster la tomó hace 71 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
shift-org/shift-docs#1091 ·
Los mantenedores suelen responder en 7 días
-
validateRideLength accepts any Object.prototype key as a ride lengthPosiblemente ocupada @gangster la tomó hace 71 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
shift-org/shift-docs#1089 ·
Los mantenedores suelen responder en 7 días
-
Favorites page fetches every favorite because getDaily's guard is invertedPosiblemente ocupada @gangster la tomó hace 71 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
shift-org/shift-docs#1087 ·
Los mantenedores suelen responder en 7 días
-
Add an endpoint for Biiikes to check whether an email address organizes an eventQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
shift-org/shift-docs#1106 · 1 comentario ·
Los mantenedores suelen responder en 7 días
-
sitemap.xml emits relative <loc> values, so search engines reject itPosiblemente ocupada @dduugg la tomó hace 97 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
shift-org/shift-docs#1082 ·
Los mantenedores suelen responder en 7 días
Todos los issues de shift-org/shift-docs
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 2 días
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
saayam-for-all/webapp#1919 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Uuriko/project-room#3728 ·
Los mantenedores suelen responder en 1 día
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
vercel/ai#23435 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
docs(site): Mermaid edge-label contrast on Architecture and a table header on How it comparesAbiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
devops-thiago/ThrillhouseBot#1132 ·
Los mantenedores suelen responder en 1 día