Исправление уязвимости - «Критическое загрязнение прототипа при погружении». Исправлено> = 9.0.6.

Вот исправление следующей уязвимости:

      Critical        Prototype Pollution in immer                                  

Package         immer                                                         

Patched in      >=9.0.6                                                       

Dependency of   react-scripts                                                 

Path            react-scripts > react-dev-utils > immer                       

More info       https://github.com/advisories/GHSA-33f9-j839-rf8h

Исправить:

  1. Установите исправленную версию иммера, в этом случае 9.0.6, используя следующую команду:

             npm install --save immer@9.0.6
    
  2. Обновите файл package.json с помощью npm update.

    ВАЖНОЕ ПРИМЕЧАНИЕ: если на этом этапе уязвимость все еще присутствует, вы можете сделать следующее, ТОЛЬКО если вы знаете, что это не нарушит ваш код или не испортит зависимости для предыдущих версий или других пакетов вашего проекта. Я единственный, кто работает над моим проектом, так что это исправление работает в моем сценарии.

  3. В вашей package-lock.json файл, найдите устаревший пакет, в моем случае:

                     "immer": {
                 "version": "8.0.1",
                 "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz",
                 "integrity": "sha512-aqXhGP7//Gui2+UrHtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaH9RZ1j1xlIYqaaaipBoqcqeibkc17PNvF=="
             },
    

    и сразу удалите его.

Это исправление кажется не очень устойчивым для всех пакетов / зависимостей, но кто знает? Если есть способы получше, сообщите об этом сообществу.

1 ответ

Ваше исправление должно быть достаточно хорошим, чтобы исправить эту критическую уязвимость, хотя, как вы определили, оно имеет тенденцию быть хрупким и его легко отменить.

Если возможно, обновите до [email protected] ^5.0.0 или более поздней версии. Он уже был транзитивно обновлен через react-dev-utils до [email protected] ^9.0.7.

Если по какой-либо причине (например , удалены полифилы или иным образом) вы не можете обновить сценарии реагирования, я бы предложил после просмотра критических изменений immer :

  1. npm-force-resolutions, добавьте следующее в , затем npm install:
            "resolutions": {
        "immer": "9.0.12"
      },
      "scripts": {
        "preinstall": "npx npm-force-resolutions"
      },
  1. ИЛИ разрешения пряжи добавляют следующее к package.json, тогда yarn install:
            "resolutions": {
        "immer": "9.0.12"
      },

Конечно, если кто-то в будущем обнаружит другую уязвимость в immer, вам нужно будет повторить это с более поздней версией.

PS Извините за ответ, который, я уверен, является дублирующим вопросом, хотя ни один очевидный вопрос, на который можно было бы сослаться, не бросается в глаза прямо сейчас.

Другие вопросы по тегам