๋ฌธ์์ด๋ก ์ง์ ๋ ๋ ์ง๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ค์ ์ ๊ท์์ ReDoS์ ์ทจ์ฝํฉ๋๋ค.
/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i
์๋ ์ ํ๋ ๋ณดํต ๋ฎ์ต๋๋ค : 50.000 ์ ๋์ ์ฝ 2 ์ด์ ์ผ์น ์๊ฐ. ๊ทธ๋ฌ๋ ์ฌ์ ํ ๋ค์ ์ค ํ๋๋ฅผ ์ ์ํฉ๋๋ค.
ํ์ํ ๊ฒฝ์ฐ ๊ฐ์์ ๋ณด์ฌ์ฃผ๋ ์ค์ ์๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค.
์ค๋ช
์ ์ํด matchWord
์ ๊ท์, /src/lib/parse/regex.js
์ฌ๊ธฐ์ ์์ต๋๋ค .
๋ค์์ ์ ๊ท์์ ์ฒ ๋ ๋ค์ด์ด๊ทธ๋จ์ ๋๋ค . ์ด๊ฒ์ผ๋ก๋ถํฐ ์ฐ๋ฆฌ๋ ๋ฐ๋ณต์ด์๋ ๊ทธ๋ฃนํ๊ฐ ์๋์ด ๋ฌธ์ ๊ตฌ๋ฌธ ๋ถ์๊ณผ ๊ด๋ จ์ด ์์์ ์ ์ ์์ต๋๋ค. ์ ๊ท ํํ์๊ณผ ์๋์ด๋ฅผ ๋ชจ๋ ์ดํดํ๋ ์ฌ๋์ด์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๋ฉด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
ReDoS ๊ฐ์ ๋ ๋์์ด๋ฉ๋๋ค.
์ด๊ฑด ์๋ฌด๋ ์ด๋ฏธ ์์ํ์ง ์์์ด
@hamiltondanielb ๋น์ ์ ๋ชจ๋ ๊ฒ :)
์๋ ํ์ธ์.
ํ์ํ ๊ฒฝ์ฐ ๊ฐ์์ ๋ณด์ฌ์ฃผ๋ ์ค์ ์๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค.
๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์ ๋ฅผ๋ณด๊ณ ์ถ์ต๋๋ค. :)
@ Drag0s ๊ฐ ๊ฐ์ธ ์ด๋ฉ์ผ๋ก ๋ณด๋์ต๋๋ค.
์ฐธ๊ณ ๋ก, ์ด๊ฒ์ NSP ( ์ฌ๊ธฐ ์ฐธ์กฐ)์ ์ถ๊ฐ๋์์ผ๋ฏ๋ก ๊ณง ์ฌ๋๋ค์ ๋น๋๋ฅผ ๊นจ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค.
@hamiltondanielb-์ด๊ฑธ ์กฐ์ฌํ๋ ๊ณณ์ด ์๋์?
๋ฐฉ๊ธ ๋น๋๊ฐ ์ค๋จ๋์์ต๋๋ค ๐ฏ
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๊ธฐ ์ ์ ๊ณต๊ฐ๋์ด์ผํด์ ์ํ๊น์ต๋๋ค. 9 ์ 8 ์ผ์ ๋ฐํ ๋ ๋ฌธ์ , ์ค๋ NSP ๊ถ๊ณ ๊ฐ ๊ฒ์๋์์ต๋๋ค. @cristianstaicu ์๋ง๋ ๋น์ ์ ์ด๊ฒ์ด ์ฝ๊ฐ์ ์ถ์ง๋ ฅ์์ฃผ๊ธฐ ์ํด ๊ณต๊ฐ ๊ธฐํ์ ๋ํด ์ ์ง ๊ด๋ฆฌ์์๊ฒ ์๊ธฐ
@mattgrande ์ ๋ํ ๋ฉํ ์ฑ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ณ ์ ๋ nsp ๋ฒ์ (2.8.1)์ ์๊ฐ (joi๋ฅผ ํตํด)์ ๋ฐ๋ผ ๋ฌ๋ผ ์ง๋ฏ๋ก ์์ฒด ์ข ์์ฑ์ ๋ํ ์ทจ์ฝ์ ์๋ณด๊ณ ํ์ต๋๋ค.
nsp 3.1.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ฉด ์ข ์์ฑ์ด ๋ ์ด์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋ฐ๋ผ์ ์๊ฐ์ ์ง์ ์์กดํ์ง ์๋ ๊ฒฝ์ฐ์ฃผ์ํด์ผํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ์์ ์ด ์์ง ์์ต๋๊น?
์ฌ์ฉ ๊ฐ๋ฅํ ์์ ์ฌํญ์ ์๋ ค์ฃผ์ญ์์ค.
์์ง ์์ ์ฌํญ์ด ๊ฒ์๋์ง ์์์ต๋๋ค.
๊ด๋ฆฌ์๋ก๋ถํฐ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ณ ์ถ๋ค๋ฉด ์ค๋ฅธ์ชฝ ์ด์ "๊ตฌ๋ "์ ํด๋ฆญํ์ฌ์ด ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ ์๋ฆผ์ ๊ตฌ๋ ํ์ญ์์ค.
์ด์ ๋ํด nsp
์์ธ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด .nsprc
ํ์ผ์ ์ถ๊ฐํ์ญ์์ค.
{
"exceptions": [
"https://nodesecurity.io/advisories/532"
]
}
๊ฐ์ฌํฉ๋๋ค @ westy92 ! ๋ด ๋น๋๋ฅผ ์ ์ฅํ์ต๋๋ค.
@ westy92 ๋ฐ @ jacob-go ์๋
ํ์ธ์. ๋ค์ ์ฝ๋๊ฐ ์์ต๋๋ค.
var tasksMethods = require ( 'gulpfile-ninecms');
gulp.task ( 'nsp', tasksMethods.nsp);
.nsprc ํ์ผ ์์ธ๋ฅผ ์ ํํ์ง ์์ต๋๋ค. ์ ์ ๋์ ๋์๊ฒ ์ทจ์ฝ์ฑ ์ค๋ฅ๋ฅผ ๊ณ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก์ ํธ์ ๋ฃจํธ์ ํ์ผ์ ์ถ๊ฐํ์ต๋๋ค. ๋ด๊ฐํด์ผ ํ ์ผ์ด ์์ต๋๊น?
@Dexterslab ์ฐ๋ฆฌ๋ gulp-nsp
ํ๊ณ ์๋๋ฐ, .nsprc
์ด ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์์ ๋ ์ ์๋ํฉ๋๋ค ( package.json
์ ๊ฐ์ ์์ค). gulp-nsp
์ง์ ์ฌ์ฉํด ๋ณด์๊ฒ ์ต๋๊น?
@cristianstaicu @mattgrande ๋ฃฉ์จ ์์๋ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๊ณ ์์ต๋๊น?
์ด ๋ฌธ์ ์ ๋ํ ์์ ์ด ์ ์ํ๊ฒ ์ฒ๋ฆฌ ๋ ์ ์๋ค๋ ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. nsp์ ๋ก๊ทธ์ธ๋์์ผ๋ฏ๋ก ๋น๋๊ฐ ์คํจํฉ๋๋ค.
๊ด๋ฆฌ์์๊ฒ์ด ๋ํ๋ฅผ ์ ๊ทธ๋๋ก ์ ์ ํ ์ ์์ต๋๊น?
์์ ์ ๊ธฐ๋ค๋ฆฌ๋ ๋ชจ๋ ์ฌ๋์ ๊ตฌ๋
๋ฒํผ์ ๋๋ฅด๊ธฐ ๋งํ๋ฉด ์๋ฆผ์ด ์ ์ก๋ฉ๋๋ค.
๋๊ตฌ๋ ์ง ์์ ์ ์ํํ๊ณ ์ถ๋ค๋ฉด PR์ ์ด์ด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
์ด๋ฏธ ์ด๊ฒ์ ๋ํ PR์ด ์์ต๋๋ค https://github.com/moment/moment/pull/4326
๋๊ตฐ๊ฐ๊ฐ nsp
์ ํจ์น๊ฐ ์ ์ฉ๋์์์ ์๋ ค์ผํฉ๋๊น? https://nodesecurity.io/advisories/532
์ด ๋ฌธ์ ๋ ๋ฒ์ 2.19.3์์ ์์ ๋์์ต๋๋ค. ๊ทธ์ ๋ฐ๋ผ ์ ๋ฐ์ดํธํ์ญ์์ค.
NSP์ ์๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค- @cristianstaicu ๋น์ ์ด๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฌ๊ธฐ์ ๋์ ์ค ์ ์์ต๋๊น?
[email protected]๋ก ์ด๋ฉ์ผ์ ๋ณด๋
์๋ ํ์ธ์,
ํ์ฌ ๋์ ๋๋ moment.js ์ทจ์ฝ์ (https://nodesecurity.io/advisories/532)์ด ์ต๊ทผ ํจ์น ๋์์ผ๋ฉฐ v.2.19.3์์ ์์ ์ฌํญ์ด ๋ฆด๋ฆฌ์ค ๋์์ต๋๋ค.
๊ถ๊ณ ์ ๋ํ ์ํ ์ ๋ฐ์ดํธ๋ฅผ๋ณด๊ณ ํ๋ ํ๋ก์ธ์ค๋ ๋ฌด์์ ๋๊น? ์ด ์ด๋ฉ์ผ ์ฃผ์๋ ์ ๊ฐ ์ฐพ์ ์์๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ฐ์ฌ!
NSP DB๋ฅผ 2.19.3 ์์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํด์ผํ๋ค๋ ๋ต์ฅ์ ๋ฐ์์ต๋๋ค.
2.19.3์ด ๋ ์ด์ ๊ฒฝ๊ณ ํ์ง ์์์ ํ์ธํ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฌธ์ ์ ๋ํ ์์ ์ด ์ ์ํ๊ฒ ์ฒ๋ฆฌ ๋ ์ ์๋ค๋ ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. nsp์ ๋ก๊ทธ์ธ๋์์ผ๋ฏ๋ก ๋น๋๊ฐ ์คํจํฉ๋๋ค.