{"id":1478,"date":"2026-10-27T17:22:22","date_gmt":"2026-10-27T08:22:22","guid":{"rendered":"https:\/\/blog.sinabro-ai.com\/?p=1478"},"modified":"2026-10-27T17:22:22","modified_gmt":"2026-10-27T08:22:22","slug":"nodejs-vulnerability-version-check","status":"publish","type":"post","link":"https:\/\/sinabro-ai.com\/blog\/nodejs-vulnerability-version-check\/","title":{"rendered":"Node.js \ucde8\uc57d\uc810 \uc704\ud5d8 \ubc84\uc804, \uc11c\ubc84\uc640 Docker \uc810\uac80 \ubc29\ubc95"},"content":{"rendered":"<div class=\"sinabro-summary\">\n<p><strong>Node.js \ucde8\uc57d\uc810 CVE-2026-111497\uc758 \uc218\uc815\uc774 \ud3ec\ud568\ub41c \ucd5c\uc18c \ubc84\uc804\uc740 22.23.4\u00b724.22.1\u00b726.12.1\uc774\uc5d0\uc694.<\/strong> \uc5c5\ub370\uc774\ud2b8 \uc5ec\ubd80\ub97c \ud310\ub2e8\ud560 \ub54c\ub294 \uc2e4\uc81c \uc11c\ube44\uc2a4\ub97c \uc2e4\ud589\ud558\ub294 Node.js\ub97c \ud655\uc778\ud574\uc57c \ud574\uc694. \ud130\ubbf8\ub110\uc758 \ubc84\uc804, \uc11c\ubc84 \ud504\ub85c\uc138\uc2a4\uc758 \ubc84\uc804, \ucee8\ud14c\uc774\ub108 \uc548\uc758 \ubc84\uc804\uc774 \uc11c\ub85c \ub2e4\ub97c \uc218 \uc788\uc5b4\uc694.<\/p>\n<\/div>\n<p>2026\ub144 10\uc6d4 27\uc77c \ud655\uc778\ud55c \uacf5\uc2dd \uacf5\uc9c0\ub97c \uae30\uc900\uc73c\ub85c \uc704\ud5d8 \ubc84\uc804\uacfc \ud658\uacbd\ubcc4 \uc810\uac80 \ubc29\ubc95\uc744 \uc815\ub9ac\ud588\uc5b4\uc694. \u201cnpm \ud328\ud0a4\uc9c0\ub97c \uac31\uc2e0\ud588\ub294\ub370 \ub05d\ub09c \uac78\uae4c?\u201d, \u201cDocker \uc774\ubbf8\uc9c0\ub97c \ubc14\uafe8\ub294\ub370 \uc11c\ube44\uc2a4\ub3c4 \ubc14\ub00c\uc5c8\uc744\uae4c?\u201d\ub97c \ud655\uc778\ud560 \ub54c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc548\ub0b4\uc608\uc694.<\/p>\n<h2>Node.js \uc704\ud5d8 \ubc84\uc804\uacfc \uc218\uc815 \ubc84\uc804 \ube44\uad50<\/h2>\n<p>10\uc6d4 21\uc77c Node.js \ubcf4\uc548 \ub9b4\ub9ac\uc2a4\uc5d0 Brotli \uc555\ucd95 \ud574\uc81c \ucde8\uc57d\uc810 \uc218\uc815\uc774 \ud3ec\ud568\ub410\uc5b4\uc694. \uc544\ub798 \ud45c\ub294 \ub2f9\uc2dc \uacf5\uc2dd \uc9c0\uc6d0 \uc911\uc778 \uc138 \uacc4\uc5f4\uc758 \uae30\uc900\uc774\uc5d0\uc694. \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c\ub294 \uc774 \ucd5c\uc18c \ubc84\uc804\ubfd0 \uc544\ub2c8\ub77c \uc774\ud6c4\uc5d0 \ub098\uc628 \ubcf4\uc548 \uc5c5\ub370\uc774\ud2b8\ub3c4 \ud655\uc778\ud574\uc57c \ud574\uc694.<\/p>\n<p>\ud654\uba74\uc774 \uc881\uc73c\uba74 \ud45c\ub97c \uc88c\uc6b0\ub85c \ubc00\uc5b4 \ub098\uba38\uc9c0 \uc5f4\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc5b4\uc694.<\/p>\n<div class=\"sinabro-table-scroll sinabro-table-wide\">\n<table class=\"sinabro-table\">\n<caption>CVE-2026-111497 \uc218\uc815 \ud3ec\ud568 \ubc84\uc804 \u2014 2026\ub144 10\uc6d4 27\uc77c \ud655\uc778<\/caption>\n<thead>\n<tr>\n<th scope=\"col\">\uacc4\uc5f4<\/th>\n<th scope=\"col\">\ucd5c\uc18c \uc218\uc815 \ubc84\uc804<\/th>\n<th scope=\"col\">\uc218\uc815 \ub300\uc0c1<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th scope=\"row\">Node.js 22<\/th>\n<td>22.23.4<\/td>\n<td>22.23.4 \ubbf8\ub9cc\uc758 22.x<\/td>\n<\/tr>\n<tr>\n<th scope=\"row\">Node.js 24<\/th>\n<td>24.22.1<\/td>\n<td>24.22.1 \ubbf8\ub9cc\uc758 24.x<\/td>\n<\/tr>\n<tr>\n<th scope=\"row\">Node.js 26<\/th>\n<td>26.12.1<\/td>\n<td>26.12.1 \ubbf8\ub9cc\uc758 26.x<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\uac01 \uc218\uc815 \ub0b4\uc5ed\uc740 <a href=\"https:\/\/nodejs.org\/en\/blog\/release\/v22.23.4\" target=\"_blank\" rel=\"noopener\">22.23.4 \ub9b4\ub9ac\uc2a4<\/a>, <a href=\"https:\/\/nodejs.org\/en\/blog\/release\/v24.22.1\" target=\"_blank\" rel=\"noopener\">24.22.1 \ub9b4\ub9ac\uc2a4<\/a>, <a href=\"https:\/\/nodejs.org\/en\/blog\/release\/v26.12.1\" target=\"_blank\" rel=\"noopener\">26.12.1 \ub9b4\ub9ac\uc2a4<\/a>\uc5d0 \uba85\uc2dc\ub3fc \uc788\uc5b4\uc694. Linux \ubc30\ud3ec\ud310\uc774\ub098 \ubcc4\ub3c4 \uc9c0\uc6d0 \uc5c5\uccb4\uac00 \ubcf4\uc548 \uc218\uc815\uc744 \uc801\uc6a9\ud55c \ud328\ud0a4\uc9c0\ub294 \ud45c\uc758 \uc22b\uc790\ub9cc\uc73c\ub85c \ud310\uc815\ud558\uc9c0 \ub9d0\uace0 CVE \uc801\uc6a9 \ub0b4\uc5ed\uc744 \ud568\uaed8 \ud655\uc778\ud574\uc57c \ud574\uc694.<\/p>\n<p>20 \uc774\ud558\uc640 21\u00b723\u00b725\ub294 \uacf5\uc2dd \uc9c0\uc6d0\uc774 \ub05d\ub09c \uacc4\uc5f4\uc774\uc5d0\uc694. \uad6c\ubc84\uc804\uc740 \ucde8\uc57d\ud55c Brotli \ud3ec\ud568 \uc5ec\ubd80\uc640 \uacf5\uae09\uc0ac \ud328\uce58 \ub0b4\uc5ed\uc744 \ubcc4\ub3c4\ub85c \ud655\uc778\ud558\uace0, \uc9c0\uc6d0 \uacc4\uc5f4\ub85c \uc62e\uae38 \uacc4\ud68d\uc744 \uc138\uc6cc\uc57c \ud574\uc694.<\/p>\n<p>\ud655\uc778\uc77c \uae30\uc900 22\u00b724\ub294 LTS, 26\uc740 Current\ub85c \ud45c\uc2dc\ub3fc \uc788\uc5b4\uc694. Node.js\ub294 \uc6b4\uc601\uc6a9 \uc571\uc5d0 Active LTS \ub610\ub294 Maintenance LTS \uc0ac\uc6a9\uc744 \uad8c\uace0\ud574\uc694. \uc22b\uc790\uac00 \uac00\uc7a5 \ub192\uc740 \uacc4\uc5f4\ub85c \ubb34\uc870\uac74 \ubc14\uafb8\uae30\ubcf4\ub2e4 <a href=\"https:\/\/nodejs.org\/en\/about\/previous-releases\" target=\"_blank\" rel=\"noopener\">\uacf5\uc2dd \uc9c0\uc6d0 \uc0c1\ud0dc<\/a>\uc640 \uc571\uc758 \ud638\ud658\uc131\uc744 \ud568\uaed8 \ud655\uc778\ud558\uc138\uc694.<\/p>\n<figure class=\"sinabro-evidence\"><img alt=\"Node.js 22\u00b724\u00b726 \uacc4\uc5f4\uc758 CVE-2026-111497 \uc704\ud5d8 \ubc84\uc804\uacfc \uc218\uc815 \ubc84\uc804 \ube44\uad50\ud45c\" class=\"wp-image-1476 size-large\" decoding=\"async\" height=\"1024\" loading=\"lazy\" src=\"https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-version-comparison-683x1024.jpg\" width=\"683\" srcset=\"https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-version-comparison-683x1024.jpg 683w, https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-version-comparison-200x300.jpg 200w, https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-version-comparison-768x1152.jpg 768w, https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-version-comparison.jpg 1024w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><figcaption><em>\uac19\uc740 \uacc4\uc5f4\uc758 \ubc84\uc804\uc744 \ube44\uad50\ud558\uc138\uc694. \uacf5\uae09\uc0ac\uc758 \ubcc4\ub3c4 \ud328\uce58\ub294 CVE \uc801\uc6a9 \uae30\ub85d\uc744 \ucd94\uac00\ub85c \ud655\uc778\ud574\uc57c \ud574\uc694.<\/em><\/figcaption><\/figure>\n<h2>Node2Shell\uc740 \uc5b4\ub5a4 \ud658\uacbd\uc5d0\uc11c \ubb38\uc81c\uac00 \ub418\ub098\uc694?<\/h2>\n<p>Node2Shell\ub85c \ubd88\ub9ac\ub294 \uc774\ubc88 \ubb38\uc81c\uc758 CVE \ubc88\ud638\ub294 <strong>CVE-2026-111497<\/strong>\uc774\uc5d0\uc694. Node.js\uc5d0 \ud3ec\ud568\ub41c Brotli \ub514\ucf54\ub354\uac00 \uc798\ubabb\ub41c \uc555\ucd95 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\uba74\uc11c \uba54\ubaa8\ub9ac\ub97c \uc190\uc0c1\uc2dc\ud0ac \uc218 \uc788\uace0, \uadf8 \uacb0\uacfc \ud504\ub85c\uc138\uc2a4 \uc885\ub8cc\u00b7\uba54\ubaa8\ub9ac \uc815\ubcf4 \ub178\ucd9c\u00b7\uc6d0\uaca9 \ucf54\ub4dc \uc2e4\ud589\uc73c\ub85c \uc774\uc5b4\uc9c8 \uc218 \uc788\uc5b4\uc694. Node.js \uacf5\uc2dd \uc2ec\uac01\ub3c4\ub294 High\uc608\uc694.<\/p>\n<p>\uc6d0\uaca9 \uacf5\uaca9 \uac00\ub2a5\uc131\uc744 \ud310\ub2e8\ud558\ub824\uba74 <strong>\ud328\uce58\ub418\uc9c0 \uc54a\uc740 \ub514\ucf54\ub354\uc640 \uacf5\uaca9\uc790\uac00 \uc870\uc791\ud55c \uc555\ucd95 \ub370\uc774\ud130\uac00 \uadf8 \ub514\ucf54\ub354\uc5d0 \ub3c4\ub2ec\ud558\ub294 \uacbd\ub85c<\/strong>\ub97c \ud568\uaed8 \ud655\uc778\ud574\uc57c \ud574\uc694. Node.js \uc124\uce58 \uc0ac\uc2e4\ub9cc\uc73c\ub85c \uce68\ud574\uac00 \ubc1c\uc0dd\ud588\ub2e4\uace0 \ud310\ub2e8\ud560 \uc218\ub294 \uc5c6\uc5b4\uc694. \uc601\ud5a5\uacfc \uc6d0\uc778\uc740 <a href=\"https:\/\/nodejs.org\/en\/blog\/vulnerability\/october-2026-security-releases\" target=\"_blank\" rel=\"noopener\">Node.js 10\uc6d4 \uacf5\uc2dd \ubcf4\uc548 \uacf5\uc9c0<\/a>\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc5b4\uc694.<\/p>\n<p>\ub4e4\uc5b4\uc624\ub294 \uc6f9 \uc694\uccad\ubfd0 \uc544\ub2c8\ub77c \uc678\ubd80 \uc11c\ubc84\uc758 \uc751\ub2f5\uc744 \uc790\ub3d9\uc73c\ub85c \uc555\ucd95 \ud574\uc81c\ud558\ub294 HTTP \ud074\ub77c\uc774\uc5b8\ud2b8\ub3c4 \uc810\uac80 \ub300\uc0c1\uc774 \ub420 \uc218 \uc788\uc5b4\uc694. \uc2e4\uc81c \ubd84\uc11d\uc744 \uacf5\uac1c\ud55c <a href=\"https:\/\/xint.io\/ko\/blog\/node2shell-vulnerability-emergency-response\" target=\"_blank\" rel=\"noopener\">Theori\/Xint\uc758 \ub300\uc751 \uc548\ub0b4<\/a>\ub294 \uc774\ub7f0 \uacbd\ub85c\uc640 \ud658\uacbd\ubcc4 \uc608\uc678\ub97c \uc124\uba85\ud574\uc694. \uc694\uccad \ud55c \uc885\ub958\ub97c \ucc28\ub2e8\ud588\ub2e4\uace0 \ubaa8\ub4e0 \uacbd\ub85c\uac00 \ud574\uacb0\ub410\ub2e4\uace0 \ubcf4\uae30\ub294 \uc5b4\ub824\uc6cc\uc694.<\/p>\n<h2>\ud130\ubbf8\ub110\uacfc \uc2e4\uc81c \uc11c\ube44\uc2a4\uc758 \ubc84\uc804\uc744 \uad6c\ubd84\ud574\uc11c \ud655\uc778\ud574\uc694<\/h2>\n<p>\ud130\ubbf8\ub110\uc5d0\uc11c \ud604\uc7ac \uc120\ud0dd\ub41c Node.js \ubc84\uc804\uc740 \ub2e4\uc74c \uba85\ub839\uc73c\ub85c \ud655\uc778\ud560 \uc218 \uc788\uc5b4\uc694. <a href=\"https:\/\/nodejs.org\/api\/cli.html#-v---version\" target=\"_blank\" rel=\"noopener\">\uacf5\uc2dd CLI \ubb38\uc11c<\/a>\uc5d0 \uc815\uc758\ub41c \ubc84\uc804 \ucd9c\ub825 \uba85\ub839\uc774\uc5d0\uc694.<\/p>\n<pre><code>node --version<\/code><\/pre>\n<p>\uc774 \uacb0\uacfc\ub294 \ud574\ub2f9 \uba85\ub839\uc73c\ub85c \uc0c8\ub85c \uc2e4\ud589\ud55c Node.js\uc758 \ubc84\uc804\uc774\uc5d0\uc694. PM2\u00b7systemd\ub85c \uc774\ubbf8 \uc2e4\ud589 \uc911\uc778 \uc571\uc774\ub098 \ub2e4\ub978 \ucee8\ud14c\uc774\ub108\uae4c\uc9c0 \uac19\uc740 \ubc84\uc804\uc744 \uc4f4\ub2e4\ub294 \uc99d\uac70\ub294 \uc544\ub2c8\uc5d0\uc694. \uc11c\ube44\uc2a4 \uc124\uc815\uc758 \uc2e4\ud589 \ud30c\uc77c \uacbd\ub85c\uc640 \uc0c8\ub85c \uc2dc\uc791\ud55c \ud504\ub85c\uc138\uc2a4\uc758 \ubc84\uc804\uc744 \ud568\uaed8 \ud655\uc778\ud574\uc57c \ud574\uc694.<\/p>\n<p>\uac1c\ubc1c \ub2f4\ub2f9\uc790\ub294 \uc11c\ubc84 \uc571\uc758 \uc2dc\uc791 \ub85c\uadf8\uc5d0\uc11c \ub2e4\uc74c \ub450 \uac12\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc5b4\uc694. <code>process.version<\/code>\uc740 \uadf8 \ud504\ub85c\uc138\uc2a4\uc758 Node.js \ubc84\uc804, <code>process.execPath<\/code>\ub294 \uc0ac\uc6a9 \uc911\uc778 \uc2e4\ud589 \ud30c\uc77c \uacbd\ub85c\uc608\uc694.<\/p>\n<pre><code>console.info({\n  nodeVersion: process.version,\n  executable: process.execPath\n});<\/code><\/pre>\n<p>\uc774 \ucf54\ub4dc\ub294 \uc11c\ubc84\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 \uc571\uc5d0 \ub9de\ucdb0 \uc0ac\uc6a9\ud558\ub294 \ub0b4\ubd80 \ud655\uc778 \uc608\uc2dc\uc608\uc694. <a href=\"https:\/\/nodejs.org\/api\/process.html#processversion\" target=\"_blank\" rel=\"noopener\">Node.js process \ubb38\uc11c<\/a>\uc758 \uac12\uc744 \uc774\uc6a9\ud558\uba70, \uacb0\uacfc\ub294 \uad00\ub9ac\uc790\uac00 \ud655\uc778\ud560 \uc218 \uc788\ub294 \ub85c\uadf8\uc5d0 \ub0a8\uae30\uc138\uc694. \uc9c4\ub2e8\uc6a9 \uacf5\uac1c \ud398\uc774\uc9c0\ub97c \ub9cc\ub4e4 \ud544\uc694\ub294 \uc5c6\uc5b4\uc694.<\/p>\n<h2>\uc11c\ubc84\u00b7Docker\u00b7\uad00\ub9ac\ud615 \uc11c\ube44\uc2a4\ub294 \ud655\uc778 \uc704\uce58\uac00 \ub2ec\ub77c\uc694<\/h2>\n<div class=\"sinabro-table-scroll sinabro-table-wide\">\n<table class=\"sinabro-table\">\n<caption>\uc6b4\uc601 \ud658\uacbd\ubcc4 \uc5c5\ub370\uc774\ud2b8 \uc644\ub8cc \ud655\uc778 \ubc29\ubc95<\/caption>\n<thead>\n<tr>\n<th scope=\"col\">\ud658\uacbd<\/th>\n<th scope=\"col\">\ud655\uc778\ud560 \ub300\uc0c1<\/th>\n<th scope=\"col\">\uc870\uce58 \ud6c4 \ud655\uc778\ud560 \uadfc\uac70<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th scope=\"row\">\uc9c1\uc811 \uad00\ub9ac\ud558\ub294 \uc11c\ubc84<\/th>\n<td>\uc11c\ube44\uc2a4\uac00 \uc2e4\ud589\ud558\ub294 Node.js \uacbd\ub85c<\/td>\n<td>\ud328\uce58 \uc801\uc6a9 \ub4a4 \ub2e4\uc2dc \uc2dc\uc791\ud55c \uc571\uc758 \ubc84\uc804\uacfc \uc2e4\ud589 \ud30c\uc77c \uacbd\ub85c<\/td>\n<\/tr>\n<tr>\n<th scope=\"row\">Docker<\/th>\n<td>\ud604\uc7ac \uc694\uccad\uc744 \ucc98\ub9ac\ud558\ub294 \ucee8\ud14c\uc774\ub108<\/td>\n<td>\uc218\uc815\ub41c \uae30\ubc18 \uc774\ubbf8\uc9c0\ub85c \uc7ac\ube4c\ub4dc\u00b7\uc7ac\ubc30\ud3ec\ud55c \uae30\ub85d\uacfc \ucee8\ud14c\uc774\ub108 \ub0b4\ubd80 \ubc84\uc804<\/td>\n<\/tr>\n<tr>\n<th scope=\"row\">\uad00\ub9ac\ud615 \ubc30\ud3ec \uc11c\ube44\uc2a4<\/th>\n<td>\ubc30\ud3ec\uc5d0 \uc4f0\uc778 \ub7f0\ud0c0\uc784(\uc2e4\ud589 \ud658\uacbd)\uacfc \ud604\uc7ac \uc2e4\ud589 \uc911\uc778 \ubc84\uc804<\/td>\n<td>\uacf5\uae09\uc0ac CVE \uacf5\uc9c0, \uc0c8 \ubc30\ud3ec \uc2dd\ubcc4 \uc815\ubcf4, \uc2e4\uc81c \ub7f0\ud0c0\uc784 \ud655\uc778 \uacb0\uacfc<\/td>\n<\/tr>\n<tr>\n<th scope=\"row\">\ub85c\uceec \uac1c\ubc1c\u00b7\ube4c\ub4dc \ud658\uacbd<\/th>\n<td>\ud504\ub85c\uc81d\ud2b8\uc640 \uc790\ub3d9 \ube4c\ub4dc \uc791\uc5c5\uc758 Node.js<\/td>\n<td>\uac1c\ubc1c \ub3c4\uad6c\u00b7CI\uac00 \uc120\ud0dd\ud55c \ubc84\uc804\uacfc \ub2e4\uc74c \ube4c\ub4dc\uc758 \uc2e4\ud589 \uae30\ub85d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Docker \ud638\uc2a4\ud2b8\uc5d0 \uc124\uce58\ud55c Node.js\ub97c \ubc14\uafd4\ub3c4 \ucee8\ud14c\uc774\ub108 \uc548\uc758 Node.js\uac00 \ubc14\ub00c\ub294 \uac83\uc740 \uc544\ub2c8\uc5d0\uc694. <code>node:22-alpine<\/code>\ucc98\ub7fc \ud0dc\uadf8 \uc774\ub984\uc774 \uac19\ub354\ub77c\ub3c4 \uc2e4\uc81c \uc774\ubbf8\uc9c0\uac00 \ub2ec\ub77c\uc9c8 \uc218 \uc788\uc73c\ubbc0\ub85c, \uc218\uc815\ub41c \uae30\ubc18 \uc774\ubbf8\uc9c0\ub85c \ub2e4\uc2dc \ube4c\ub4dc\ud558\uace0 \uc0c8 \ucee8\ud14c\uc774\ub108\ub97c \ubc30\ud3ec\ud55c \ub4a4 \ub0b4\ubd80 \ubc84\uc804\uc744 \ud655\uc778\ud558\uc138\uc694. <a href=\"https:\/\/docs.docker.com\/build\/building\/best-practices\/\" target=\"_blank\" rel=\"noopener\">Docker\uc758 \uc774\ubbf8\uc9c0 \ube4c\ub4dc \uad8c\uc7a5 \uc0ac\ud56d<\/a>\ub3c4 \uc774\ubbf8\uc9c0 \uac31\uc2e0\uacfc \uc7ac\ube4c\ub4dc\ub97c \uad6c\ubd84\ud574 \uc124\uba85\ud574\uc694.<\/p>\n<p>\uac19\uc740 \uc571\uc744 \uc5ec\ub7ec \uc11c\ubc84\ub098 \ucee8\ud14c\uc774\ub108\uc5d0\uc11c \uc6b4\uc601\ud55c\ub2e4\uba74 \ud55c \uacf3\uc758 \uacb0\uacfc\ub85c \uc804\uccb4 \uc644\ub8cc\ub97c \ud310\ub2e8\ud558\uc9c0 \ub9c8\uc138\uc694. \ubc29\ubb38\uc790 \uc694\uccad\uc744 \ubc1b\ub294 \ubaa8\ub4e0 \uc11c\ubc84\u00b7\ucee8\ud14c\uc774\ub108\uc640 \ubcc4\ub3c4\ub85c \uc2e4\ud589\ub418\ub294 \uc791\uc5c5\uc6a9 \ud504\ub85c\uc138\uc2a4\ub3c4 \uac19\uc740 \uae30\uc900\uc73c\ub85c \ud655\uc778\ud574\uc57c \ud574\uc694.<\/p>\n<figure class=\"sinabro-evidence\"><img alt=\"\uc11c\ubc84\u00b7Docker\u00b7\ud638\uc2a4\ud305 \ud658\uacbd\uc5d0\uc11c Node.js \uc5c5\ub370\uc774\ud2b8 \uacb0\uacfc\ub97c \ud655\uc778\ud558\ub294 \uc21c\uc11c\ub3c4\" class=\"wp-image-1477 size-large\" decoding=\"async\" height=\"1024\" loading=\"lazy\" src=\"https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-environment-check-flow-683x1024.jpg\" width=\"683\" srcset=\"https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-environment-check-flow-683x1024.jpg 683w, https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-environment-check-flow-200x300.jpg 200w, https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-environment-check-flow-768x1152.jpg 768w, https:\/\/sinabro-ai.com\/blog\/wp-content\/uploads\/2026\/10\/nodejs-environment-check-flow.jpg 1024w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><figcaption><em>\uc124\uce58\ud55c \ubc84\uc804\uacfc \uc2e4\uc81c \uc11c\ube44\uc2a4\uc5d0\uc11c \uc2e4\ud589 \uc911\uc778 \ubc84\uc804\uc774 \uac19\uc740\uc9c0 \ud655\uc778\ud558\ub294 \uc21c\uc11c\uc608\uc694.<\/em><\/figcaption><\/figure>\n<h2>Brotli \ubc84\uc804 \ubb38\uc790\uc5f4\ub9cc \ubcf4\uace0 \ucde8\uc57d\ud558\ub2e4\uace0 \ub2e8\uc815\ud558\uc9c0 \ub9c8\uc138\uc694<\/h2>\n<p>Node.js \ubcf4\uc548 \ub9b4\ub9ac\uc2a4\ub294 Brotli \uc218\uc815 \ucf54\ub4dc\ub97c \ubc18\uc601\ud558\uba74\uc11c \uae30\uc874 \ub77c\uc774\ube0c\ub7ec\ub9ac \ubc84\uc804 \ubb38\uc790\uc5f4\uc744 \uc720\uc9c0\ud560 \uc218 \uc788\uc5b4\uc694. Theori\/Xint\uac00 \ud655\uc778\ud55c \uacf5\uc2dd \ubc30\ud3ec \uc608\uc2dc\uc5d0\uc11c\ub294 \uc218\uc815\ub41c Node.js 22.23.4\uc758 Brotli \uac12\uc774 1.1.0, 24.22.1\u00b726.12.1\uc758 \uac12\uc774 1.2.0\uc73c\ub85c \ub0a8\uc544 \uc788\uc5b4\uc694. \ub530\ub77c\uc11c <code>process.versions.brotli<\/code> \uc22b\uc790 \ud558\ub098\ub9cc\uc73c\ub85c \ud328\uce58 \uc2e4\ud328\ub97c \ud310\ub2e8\ud558\uba74 \uc548 \ub3fc\uc694.<\/p>\n<p>\ubc18\ub300\ub85c \uc6b4\uc601\uccb4\uc81c\uc758 \uacf5\uc720 Brotli \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc30\ud3ec\ud310 \ube4c\ub4dc\ub294 Node.js \uc2e4\ud589 \ud30c\uc77c\ub9cc \ud655\uc778\ud574\uc11c\ub294 \ubd80\uc871\ud574\uc694. \ub2f4\ub2f9\uc790\ub294 \uc2e4\uc81c\ub85c \ubd88\ub7ec\uc624\ub294 \ub514\ucf54\ub354 \ud328\ud0a4\uc9c0\uc640 \uacf5\uae09\uc0ac\uc758 \ubcf4\uc548 \uc218\uc815 \uae30\ub85d\uae4c\uc9c0 \ud655\uc778\ud574\uc57c \ud574\uc694. \uc774\ub7f0 \uacbd\uc6b0\uc5d0\ub294 \u201cNode.js \ubc84\uc804\uc774 \ub192\ub2e4\u201d\ubcf4\ub2e4 \u201c\uc774 \uc2e4\ud589 \ud658\uacbd\uc5d0 CVE-2026-111497 \uc218\uc815\uc774 \ud3ec\ud568\ub410\ub2e4\u201d\ub294 \uadfc\uac70\uac00 \ud544\uc694\ud574\uc694.<\/p>\n<h2>\uc5c5\ub370\uc774\ud2b8 \uc644\ub8cc \uae30\ub85d\uc5d0\ub294 \ubb34\uc5c7\uc744 \ub0a8\uae30\uba74 \uc88b\uc744\uae4c\uc694?<\/h2>\n<p>\uc124\uce58 \uba85\ub839\uc774 \uc131\uacf5\ud55c \uae30\ub85d\uacfc \uc2e4\uc81c \uc11c\ube44\uc2a4\uc5d0 \ubc18\uc601\ub41c \uae30\ub85d\uc744 \ud568\uaed8 \ub0a8\uae30\uba74, \ube60\ub728\ub9b0 \ud658\uacbd\uc744 \ucc3e\uae30 \uc26c\uc6cc\uc694. \ub2e4\uc74c \ud56d\ubaa9\uc740 \uacf5\uc2dd \ubc84\uc804 \uc815\ubcf4\uc640 \uc6b4\uc601 \uc0c1\ud0dc\ub97c \uc5f0\uacb0\ud558\uae30 \uc704\ud55c \uc810\uac80\uc6a9 \ubaa9\ub85d\uc774\uc5d0\uc694.<\/p>\n<ol>\n<li><strong>\uc601\ud5a5 \ubc94\uc704:<\/strong> \ud574\ub2f9 Node.js\ub97c \uc0ac\uc6a9\ud558\ub294 \uc11c\ube44\uc2a4\u00b7\uc11c\ubc84\u00b7\ucee8\ud14c\uc774\ub108\u00b7\uc791\uc5c5 \ud504\ub85c\uc138\uc2a4 \ubaa9\ub85d<\/li>\n<li><strong>\uc218\uc815 \uadfc\uac70:<\/strong> Node.js \ub9b4\ub9ac\uc2a4 \ub610\ub294 \uacf5\uae09\uc0ac \ud328\ud0a4\uc9c0\uc758 CVE \uc801\uc6a9 \ub0b4\uc5ed<\/li>\n<li><strong>\ubc30\ud3ec \uadfc\uac70:<\/strong> \ubcc0\uacbd \uc2dc\uac01\uacfc \uc2e4\ud589 \ud30c\uc77c\u00b7\uc774\ubbf8\uc9c0\u00b7\ubc30\ud3ec \uc2dd\ubcc4 \uc815\ubcf4<\/li>\n<li><strong>\uc2e4\ud589 \ud655\uc778:<\/strong> \ub2e4\uc2dc \uc2dc\uc791\ud55c \uac01 \uc571\uc758 Node.js \ubc84\uc804\uacfc \uc2e4\ud589 \uacbd\ub85c<\/li>\n<li><strong>\uae30\ub2a5 \ud655\uc778:<\/strong> \ub85c\uadf8\uc778, API, \uc678\ubd80 HTTP \uc5f0\ub3d9, \uc608\uc57d \uc791\uc5c5 \ub4f1 \uc2e4\uc81c \uc11c\ube44\uc2a4 \uae30\ub2a5\uc758 \uacb0\uacfc<\/li>\n<\/ol>\n<p>\ubc31\uc5c5\uacfc \ud14c\uc2a4\ud2b8\ub97c \uc900\ube44\ud558\uace0 \uc11c\ube44\uc2a4\uc758 \ubc30\ud3ec \uc808\ucc28\uc5d0 \ub9de\ucdb0 \uc5c5\ub370\uc774\ud2b8\ud558\uc138\uc694. \uce68\ud574 \ud754\uc801\uc774 \uc758\uc2ec\ub41c\ub2e4\uba74 \uc77c\ubc18\uc801\uc778 \uc7ac\uc2dc\uc791 \uc21c\uc11c\uc640 \uad6c\ubd84\ud574 \ubcf4\uc548 \ub2f4\ub2f9\uc790\uc640 \uaca9\ub9ac\u00b7\uc99d\uac70 \ubcf4\uc874\uc744 \uba3c\uc800 \ud611\uc758\ud574\uc57c \ud574\uc694.<\/p>\n<h2>\uc5c5\ub370\uc774\ud2b8\ud560 \ub54c \uc790\uc8fc \ud5f7\uac08\ub9ac\ub294 \uc9c8\ubb38<\/h2>\n<h3>npm update\ub97c \uc2e4\ud589\ud558\uba74 Node.js\ub3c4 \ubc14\ub00c\ub098\uc694?<\/h3>\n<p><code>npm update<\/code>\ub294 \ud504\ub85c\uc81d\ud2b8\uc758 \ud328\ud0a4\uc9c0\ub97c \uac31\uc2e0\ud558\ub294 \uba85\ub839\uc774\uc5d0\uc694. Node.js \ub7f0\ud0c0\uc784\uc758 \ubcf4\uc548 \uc5c5\ub370\uc774\ud2b8\ub294 \uc0ac\uc6a9\ud558\ub294 \uc124\uce58\u00b7\ubc30\ud3ec \ubc29\uc2dd\uc5d0 \ub530\ub77c \ubcc4\ub3c4\ub85c \uc9c4\ud589\ud574\uc57c \ud574\uc694. \ud328\ud0a4\uc9c0 \ub3d9\uc791 \ubc94\uc704\ub294 <a href=\"https:\/\/docs.npmjs.com\/cli\/v11\/commands\/npm-update\/\" target=\"_blank\" rel=\"noopener\">npm \uacf5\uc2dd \ubb38\uc11c<\/a>\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc5b4\uc694.<\/p>\n<h3>\uc9c1\uc811 Brotli \uc555\ucd95 \ud574\uc81c \ucf54\ub4dc\ub97c \uc4f0\uc9c0 \uc54a\uc73c\uba74 \uad1c\ucc2e\ub098\uc694?<\/h3>\n<p>\uc571\uc5d0 \ud3ec\ud568\ub41c \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uc790\ub3d9\uc73c\ub85c \uc555\ucd95\uc744 \ud574\uc81c\ud560 \uc218 \uc788\uc5b4\uc694. \ucf54\ub4dc\uc5d0\uc11c Brotli\ub77c\ub294 \ub2e8\uc5b4\uac00 \ubcf4\uc774\uc9c0 \uc54a\ub354\ub77c\ub3c4 \uc2e4\uc81c \uc694\uccad\u00b7\uc751\ub2f5 \ucc98\ub9ac \uacbd\ub85c\uc640 \ub514\ucf54\ub354\uc758 \ud328\uce58 \uc5ec\ubd80\ub97c \ud568\uaed8 \ud655\uc778\ud558\uc138\uc694.<\/p>\n<h3>\ud45c\uc758 \ubc84\uc804\uc73c\ub85c \uc62c\ub9ac\uba74 \uc774\ubc88 \ubcf4\uc548 \uc810\uac80\uc740 \ub05d\uc778\uac00\uc694?<\/h3>\n<p>\ud574\ub2f9 \ucde8\uc57d\uc810\uc758 \uc218\uc815 \ud3ec\ud568 \uc5ec\ubd80\uc640 \uc11c\ube44\uc2a4 \ubc18\uc601\uae4c\uc9c0 \ud655\uc778\ud574\uc57c \ud574\uc694. \uac19\uc740 10\uc6d4 \ubcf4\uc548 \ub9b4\ub9ac\uc2a4\uc5d0\ub294 DNS\u00b7TLS \ub4f1 \ub2e4\ub978 \ubb38\uc81c\uc758 \uc218\uc815\ub3c4 \ud3ec\ud568\ub3fc \uc788\uc73c\ubbc0\ub85c \uc804\uccb4 \ub9b4\ub9ac\uc2a4 \ub0b4\uc6a9\uc744 \ud655\uc778\ud558\uace0, \uc774\ud6c4 \ubcf4\uc548 \uacf5\uc9c0\ub3c4 \uc774\uc5b4\uc11c \uc810\uac80\ud558\uc138\uc694.<\/p>\n<h2>\ucd9c\ucc98\uc640 \ud655\uc778\uc77c<\/h2>\n<p><strong>\uc6d0\ubb38 \ud655\uc778\uc77c: 2026\ub144 10\uc6d4 27\uc77c.<\/strong> \uc704\ud5d8 \ubc84\uc804\uacfc \uc9c0\uc6d0 \uc0c1\ud0dc\ub294 \ubcf8\ubb38\uc5d0 \uc5f0\uacb0\ud55c \uacf5\uc2dd \uc790\ub8cc\ub97c \uae30\uc900\uc73c\ub85c \uc815\ub9ac\ud588\uc73c\uba70, \uc2e4\uc81c \ubc30\ud3ec \uc804\uc5d0\ub294 \ud6c4\uc18d \uc218\uc815\uc774 \ub098\uc654\ub294\uc9c0 \ub2e4\uc2dc \ud655\uc778\ud574\uc57c \ud574\uc694.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js \ucde8\uc57d\uc810 CVE-2026-111497\uc758 \uc704\ud5d8 \ubc84\uc804\uacfc \uc218\uc815 \ubc84\uc804\uc744 \ube44\uad50\ud574\uc694. \uc11c\ubc84\u00b7Docker\uc5d0\uc11c \uc2e4\uc81c \uc2e4\ud589 \ubc84\uc804\uc744 \ud655\uc778\ud558\ub294 \ubc29\ubc95\uacfc Brotli \ubc84\uc804 \ubb38\uc790\uc5f4\ub9cc\uc73c\ub85c \ud310\ub2e8\ud558\uba74 \uc548 \ub418\ub294 \uc774\uc720\ub97c \uc815\ub9ac\ud588\uc5b4\uc694.<\/p>\n","protected":false},"author":1,"featured_media":1476,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[192],"tags":[],"class_list":["post-1478","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-security-recovery"],"_links":{"self":[{"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/posts\/1478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/comments?post=1478"}],"version-history":[{"count":2,"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/posts\/1478\/revisions"}],"predecessor-version":[{"id":1482,"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/posts\/1478\/revisions\/1482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/media\/1476"}],"wp:attachment":[{"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/media?parent=1478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/categories?post=1478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sinabro-ai.com\/blog\/wp-json\/wp\/v2\/tags?post=1478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}