Decide whether path checks should follow symlinks
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, node.js
Línea de trabajo
Read pathSecurity.js first, then compare removeInsideProject in themeUpdateService.js with uploadSourcePath in exportController.js. Decide whether these paths should reject symlinks or whether the project storage assumption should be documented. Done means recording that decision and implementing it with a test, or documenting the assumption.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Refuse shortcut folders inside a project, or document that they're not supported.
The containment checks that keep file-sourced paths inside their folder compare resolved path strings and do not follow symlinks: the theme-update recovery plan (themeUpdateService.js removeInsideProject) and export's media copy (exportController.js uploadSourcePath). A symlink already inside uploads/images that points outside would still be copied on export, and a plan entry through a symlinked folder would still be removed. Neither import nor theme upload can create one (utils/zipSafety.js writes every entry as a plain file), so this needs a local actor or an embedding app whose storage preserves symlinks. Options: lstat/realpath these paths and refuse symlinks, or document the assumption that project folders hold no symlinks.
Done when: The decision is made and either implemented with a test or documented.
Start: themeUpdateService.js, exportController.js, pathSecurity.js. Source: 2026-10-06 reviews of the BACKUP-TRUST fixes.
- Lenguaje dominante
- JavaScript
- Estrellas
- 162
- Forks
- 6
- Merge medio
- 12 h 55 min
- PR fusionados (30 d)
- 2
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 tsiger/widgetizer
-
question
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
tsiger/widgetizer#194 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
tsiger/widgetizer#181 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
tsiger/widgetizer#175 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
tsiger/widgetizer#174 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
tsiger/widgetizer#173 ·
Todos los issues de tsiger/widgetizer
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 91/100
Los mantenedores suelen responder en 1 día
-
enhancement ui-dashboard
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
security
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
remotestorage/remotestorage.js#1405 ·
-
ai_context (Express): `express.raw()` / `bodyParser.raw()` body parser reported as an XSS sinkAbierto🐞 bug 🧩 ai-context
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
owasp-noir/noir#3295 ·
Los mantenedores suelen responder en 1 día