Difyにおける、React2Shell脆弱性修正バージョンへのバージョンアップ作業録になります。
環境
OS:Ubuntu 24.04.2 LTS
Dify:1.10.0 Community -> 1.11.1 Community
Ract:19.1.1 -> 19.2.3
確認方法
OS側の確認
$ node -v
$ npm -v
$ npm list react
-bash: node: command not foundと表示されれば一旦OK。
(OS側にnode.jsすら入っておらず、Reactが動かない環境ということ)
docker側の確認
sudo docker ps -q | xargs -I{} sudo docker exec {} ~~~は、docker psで表示されるコンテナ1つ1つに~~~にあたるコマンドを実行しています。
$ cd ./dify/docker
$ sudo docker ps
$ sudo docker ps -q | xargs -I{} sudo docker exec {} node -v
$ sudo docker ps -q | xargs -I{} sudo docker exec {} npm -v
$ sudo docker ps -q | xargs -I{} sudo docker exec {} npm list react
nodeやnpmコマンドが実行できないようであればOK。
OCI runtime exec failed: exec failed: unable to start container process: exec: "npm": executable file not found in $PATH: unknown
ただ、docker-web-1コンテナにてReact 19.1.1 が使用されていることが出力され、脆弱性に該当していることを確認。
dify-web@1.10.0 /app/web
+-- next@15.5.6 -> ./node_modules/.pnpm/next@15.5.6_@babel+core@7.28.4_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.93.2/node_modules/next
| +-- react-dom@19.1.1 -> ./node_modules/.pnpm/react-dom@19.1.1_react@19.1.1/node_modules/react-dom
| | `-- react@19.1.1 -> ./node_modules/.pnpm/react@19.1.1/node_modules/react
| +-- react@19.1.1 -> ./node_modules/.pnpm/react@19.1.1/node_modules/react
| +-- styled-jsx@5.1.6 -> ./node_modules/.pnpm/styled-jsx@5.1.6_@babel+core@7.28.4_react@19.1.1/node_modules/styled-jsx
| | `-- react@19.1.1 invalid: "17.0.1" from node_modules/.pnpm/styled-jsx@5.1.6_@babel+core@7.28.4_react@19.1.1/node_modules/styled-jsx -> ./node_modules/.pnpm/react@19.1.1/node_modules/react
| `-- webpack@5.102.1 invalid: "5.98.0" from node_modules/.pnpm/next@15.5.6_@babel+core@7.28.4_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.93.2/node_modules/next -> ./node_modules/.pnpm/webpack@5.102.1_esbuild@0.25.0_uglify-js@3.19.3/node_modules/webpack
| +-- react@19.1.1 deduped -> ./node_modules/.pnpm/react@19.1.1/node_modules/react
| `-- schema-utils@4.3.3 -> ./node_modules/.pnpm/schema-utils@4.3.3/node_modules/schema-utils
| +-- ajv-keywords@5.1.0 -> ./node_modules/.pnpm/ajv-keywords@5.1.0_ajv@8.17.1/node_modules/ajv-keywords
| | `-- fast-deep-equal@3.1.3 -> ./node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal
| | `-- react@19.1.1 deduped invalid: "^16.12.0" from node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal -> ./node_modules/.pnpm/react@19.1.1/node_modules/react
| `-- ajv@8.17.1 -> ./node_modules/.pnpm/ajv@8.17.1/node_modules/ajv
| `-- fast-deep-equal@3.1.3 -> ./node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal
| `-- react@19.1.1 deduped invalid: "^16.12.0" from node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal, "^16.12.0" from node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal -> ./node_modules/.pnpm/react@19.1.1/node_modules/react
`-- react@19.1.1 -> ./node_modules/.pnpm/react@19.1.1/node_modules/react
対処
Dify最新バージョンにて脆弱性対応がなされているので、公式手順に則りバージョンアップをします。
Dify 1.10.1に含まれる、./volumes/app/storageのユーザ権限修正(UID:1001)に関する内容もまとめて実施します。
git pull
$ git checkout main
$ git pull origin main
docker compose down
$ sudo docker ps
$ sudo docker compose down
$ sudo docker ps
change mod
./volumes/app/storageのユーザ権限修正(UID:1001)について、ユーザ:difyを明示的に作成し、そのユーザで権限付与を行います。
$ ll ./volumes/app
$ sudo groupadd -g 1001 dify
$ sudo useradd dify -u 1001 -g 1001 -s /sbin/nologin
$ sudo chown -R dify:dify ./volumes/app/storage
$ ll ./volumes/app
docker compose up -d
$ sudo docker ps
$ sudo docker compose up -d
$ sudo docker ps
Webアクセス確認
reactバージョン確認
$ sudo docker ps -q | xargs -I{} sudo docker exec {} npm list react
dify-web@1.11.1 /app/web
+-- next@15.5.9 -> ./node_modules/.pnpm/next@15.5.9_@babel+core@7.28.5_@playwright+test@1.57.0_react-dom@19.2.3_react@19.2.3__react@19.2.3_sass@1.95.0/node_modules/next
| +-- react-dom@19.2.3 -> ./node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom
| | `-- react@19.2.3 -> ./node_modules/.pnpm/react@19.2.3/node_modules/react
| +-- react@19.2.3 -> ./node_modules/.pnpm/react@19.2.3/node_modules/react
| +-- styled-jsx@5.1.6 -> ./node_modules/.pnpm/styled-jsx@5.1.6_@babel+core@7.28.5_react@19.2.3/node_modules/styled-jsx
| | `-- react@19.2.3 invalid: "17.0.1" from node_modules/.pnpm/styled-jsx@5.1.6_@babel+core@7.28.5_react@19.2.3/node_modules/styled-jsx -> ./node_modules/.pnpm/react@19.2.3/node_modules/react
| `-- webpack@5.103.0 invalid: "5.98.0" from node_modules/.pnpm/next@15.5.9_@babel+core@7.28.5_@playwright+test@1.57.0_react-dom@19.2.3_react@19.2.3__react@19.2.3_sass@1.95.0/node_modules/next -> ./node_modules/.pnpm/webpack@5.103.0_esbuild@0.25.0_uglify-js@3.19.3/node_modules/webpack
| +-- react@19.2.3 deduped -> ./node_modules/.pnpm/react@19.2.3/node_modules/react
| `-- schema-utils@4.3.3 -> ./node_modules/.pnpm/schema-utils@4.3.3/node_modules/schema-utils
| +-- ajv-keywords@5.1.0 -> ./node_modules/.pnpm/ajv-keywords@5.1.0_ajv@8.17.1/node_modules/ajv-keywords
| | `-- fast-deep-equal@3.1.3 -> ./node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal
| | `-- react@19.2.3 deduped invalid: "^16.12.0" from node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal -> ./node_modules/.pnpm/react@19.2.3/node_modules/react
| `-- ajv@8.17.1 -> ./node_modules/.pnpm/ajv@8.17.1/node_modules/ajv
| `-- fast-deep-equal@3.1.3 -> ./node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal
| `-- react@19.2.3 deduped invalid: "^16.12.0" from node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal, "^16.12.0" from node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal -> ./node_modules/.pnpm/react@19.2.3/node_modules/react
`-- react@19.2.3 -> ./node_modules/.pnpm/react@19.2.3/node_modules/react
Difyバージョンアップにて、React脆弱性修正バージョンの利用となっていることが確認できました。
参考
