-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
Description
Descripción del problema:
- En el proyecto
CodeQuestAPIse ha detectado una vulnerabilidad de alta gravedad relacionada con el paquete xlsx. Este problema fue identificado mediante Dependabot:
y el comando npm audit:
Las vulnerabilidades encontradas son las siguientes:
-
Prototype Pollution en sheetJS (GitHub Advisory)
-
Regular Expression Denial of Service (ReDoS) (GitHub Advisory)
Ambas vulnerabilidades están clasificadas como de alta gravedad.
Archivos afectados:
index.controllers.js:El paquete xlsx se utiliza para leer y escribir archivosExcel,específicamente en la funcióngetTemplateQuestions.
Impacto esperado:
- Después de recibir la notificación sobre el problema, se espera que se proponga una solución que elimine la vulnerabilidad y asegure la aplicación, manteniendo su funcionalidad intacta.
Impacto actual:
- El uso del paquete
xlsxrepresenta una amenaza a la seguridad de la aplicación, ya que estas vulnerabilidades pueden ser explotadas por atacantes para comprometer la integridad del sistema.
Posibles causas y soluciones:
- Actualizar xlsx a una versión segura:
-
Se recomienda actualizar el paquete xlsx a la versión
0.20.2o posterior, en la cual se han corregido las vulnerabilidades. Puede actualizar la dependencia en el archivopackage.jsonde la siguiente manera: -
Ir al fitchero
package.json -
Cambiar el codigo del campo "dependencies":
- Luego ejecute el siguiente comando para instalar la versión actualizada:
npm install
- Reemplazar xlsx por una biblioteca alternativa:
- Si la actualización no es posible, también se puede considerar reemplazar xlsx por una biblioteca alternativa como
exceljsonode-xlsx, que proporcionan funcionalidades similares sin las vulnerabilidades mencionadas. Por ejemplo,exceljsse puede instalar con el siguiente comando:
npm install exceljs
- Luego, actualice el código en index.controllers.js, reemplazando los métodos de
xlsxpor métodos equivalentes deexceljs.
- Monitorear actualizaciones:
- Recomiendo seguir monitoreando el repositorio de
xlsxpara obtener información sobre posibles correcciones. Una vez que esté disponible una actualización, se deberá actualizar la dependencia a una versión segura.
- Minimización de riesgos:
- Mientras la vulnerabilidad no se haya solucionado, es crucial asegurarse de que solo se procesen datos de confianza en las operaciones que utilizan
xlsx. Esto ayudará a minimizar los riesgos potenciales asociados con la explotación de las vulnerabilidades.
Pruebas de la solución:
- Actualice el paquete
xlsxa la versión0.20.2o superior con el siguiente comando:
npm install xlsx@>=0.20.2
- Realice una prueba completa de la funcionalidad de la aplicación para verificar que todo funcione correctamente después de la actualización. Preste especial atención a las operaciones de lectura y escritura de archivos
Excel.
Si se opta por reemplazarxlsxcon exceljs, realice pruebas adicionales para asegurar que los cambios no afecten la funcionalidad de la aplicación.
Como detectar la problema en github(video):
Como detectar la problema en VS Code(video):
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Todo




