En mi proyecto, tengo algunas dependencias obsoletas que Checkmarx ha marcado.
Sin embargo, las dependencias marcadas están en react-scripts versión 4.0.3 . Por ejemplo, hay paquetes marcados dentro react-scripts , es decir, ejs , immer , url-parse , debug y algunos más.
¿Cuál sería la mejor manera de actualizar estos paquetes, individualmente o actualizar a la última versión react-scripts , eso lo resolvería?
Soy Ravid, un investigador de seguridad en Checkmarx. Por favor, permítame abordar su pregunta.
La mejor manera de solucionar este problema es actualizar la "raíz" (react-scripts en este caso) a la última versión.
Una vez que actualice este paquete a su última versión (5.0.1), las dependencias transitivas (también conocidas como los niños) se actualizarán en consecuencia. Por ejemplo, react-scripts usa react-dev-utils que usa immer, una vez que actualice react-scripts a la última, notará que usa la última versión de immer. 
Tenga en cuenta que un proyecto puede usar algunas versiones diferentes del mismo paquete. Por ejemplo, react-scripts (último) usa debug en las versiones 4.3.4 (último) así como en 2.69 y 3.27.
Es importante recordar que, incluso después de actualizar el paquete "raíz", es posible que todavía haya paquetes "secundarios" desactualizados, ya que algunos paquetes todavía usan versiones de paquetes vulnerables/desactualizadas.
Un ejemplo de eso sería:
Como puede ver, react-scripts (más reciente) usa webpack-dev-server (más reciente) que usa portfinder (más reciente) que usa la depuración 3.2.7 (NO la más reciente) El "problema" se basa en portfinder, que no usa la última versión de depuración.
Con respecto a romper el código después de actualizar las dependencias, Checkmarx tiene un motor que alertará sobre el método, la línea y el archivo que se rompieron. Por el momento, esta función es solo interna, pero debería estar lista para producción lo suficientemente pronto. 