Skip to main content

CodeQL ๋ถ„์„์„ ์œ„ํ•œ JavaScript ๋ฐ TypeScript ์ฟผ๋ฆฌ

default ๋˜๋Š” security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ์„ ํƒํ•  ๋•Œ CodeQL์—์„œ JavaScript ๋˜๋Š” TypeScript๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

CodeQL์€(๋Š”) ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitHub.com์˜ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, GitHub CodeQL ์‚ฌ์šฉ ์•ฝ๊ด€ ์ฐธ์กฐ
  • GitHub Code Security๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋œ GitHub Team์˜ ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

CodeQL์—๋Š” JavaScript ๋ฐ TypeScript ์ฝ”๋“œ ๋ถ„์„์„ ์œ„ํ•œ ๋งŽ์€ ์ฟผ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. default ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์˜ ๋ชจ๋“  ์ฟผ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. security-extended ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ ํƒํ•˜๋ฉด ์ถ”๊ฐ€ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL ์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

JavaScript ๋ฐ TypeScript ๋ถ„์„์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์ œ๊ณต ์ฟผ๋ฆฌ

์ด ํ‘œ์—๋Š” CodeQL ์ž‘์—…๊ณผ CodeQL CLI์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL ์„ค๋ช…์„œ ์‚ฌ์ดํŠธ์—์„œ CodeQL ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฟผ๋ฆฌ ์ด๋ฆ„๊ด€๋ จ CWE๊ธฐ๋ณธ๊ฐ’ํ™•์žฅCopilot Autofix
๋ณด๊ด€ ํŒŒ์ผ์˜ ์••์ถ•์„ ํ‘ธ๋Š” ์ค‘ ์ž„์˜ ํŒŒ์ผ ์•ก์„ธ์Šค("Zip Slip")022
์ž˜๋ชป๋œ HTML ํ•„ํ„ฐ๋ง regexp020, 080, 116, 184, 185, 186
๋Œ€/์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด ๊ฒฝ๋กœ178
์ค‘์š”ํ•œ ์ •๋ณด์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ €์žฅ312, 315, 359
์ค‘์š”ํ•œ ์ฟ ํ‚ค์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ „์†ก614, 311, 312, 319
์ค‘์š”ํ•œ ์ •๋ณด์˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋กœ๊น…312, 359, 532
ํด๋ผ์ด์–ธํŠธ ์ชฝ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…079, 116
ํด๋ผ์ด์–ธํŠธ ์ชฝ URL ๋ฆฌ๋””๋ ‰์…˜079, 116, 601
์ฝ”๋“œ ์‚ฝ์ž…094, 095, 079, 116
์ž๊ฒฉ ์ฆ๋ช… ์ „์†ก์— ๋Œ€ํ•œ CORS ์ž˜๋ชป๋œ ๊ตฌ์„ฑ346, 639, 942
์•”ํ˜ธํ™”์ ์œผ๋กœ ์•ˆ์ „ํ•œ ์›๋ณธ์—์„œ ํŽธํ–ฅ๋œ ๋‚œ์ˆ˜ ๋งŒ๋“ค๊ธฐ327
๋ฌด์ œํ•œ ๋Œ€์ƒ ์›๋ณธ๊ณผ ์ฐฝ ๊ฐ„ ํ†ต์‹ 201, 359
์‚ฌ์šฉ์ž ์ œ์–ด ์›๋ณธ์—์„œ ๋นŒ๋“œ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ089, 090, 943
์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ํ†ต์‹  ์ฑ„๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ ๋‹ค์šด๋กœ๋“œ300, 319, 494, 829
์‚ฌ์šฉ์ž ์ œ์–ด ๋ฐ์ดํ„ฐ์˜ ์—ญ์ง๋ ฌํ™”502
SSL ์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์‚ฌ์šฉ ์ค‘์ง€295, 297
Electron webSecurity ์‚ฌ์šฉ ์ค‘์ง€079
SCE ์‚ฌ์šฉ ์ค‘์ง€116
HTML๋กœ ์žฌํ•ด์„๋œ DOM ํ…์ŠคํŠธ079, 116
๋‘ ๋ฒˆ ์ปดํŒŒ์ผ1176
๋‘ ๋ฒˆ ์ด์Šค์ผ€์ดํ”„ ๋˜๋Š” ์ด์Šค์ผ€์ดํ”„ ์ทจ์†Œ116, 020
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ค‘์š”ํ•œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ829
Electron allowRunningInsecureContent ์‚ฌ์šฉ494
HTML๋กœ ์žฌํ•ด์„๋œ ์˜ˆ์™ธ ํ…์ŠคํŠธ079, 116
๋น„๊ณต๊ฐœ ํŒŒ์ผ ๋…ธ์ถœ200, 219, 548
์ „์ž ๋ฉ”์ผ ์ƒ์„ฑ์˜ ํ˜ธ์ŠคํŠธ ํ—ค๋” ์ค‘๋…640
๋ถ€์ ์ ˆํ•œ ์ฝ”๋“œ ์‚ญ์ œ094, 079, 116
์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์›๋ณธ์˜ ๊ธฐ๋Šฅ ํฌํ•จ830
๋ถˆ์™„์ „ํ•œ HTML ํŠน์„ฑ ์‚ญ์ œ079, 116, 020
๋ถˆ์™„์ „ํ•œ ๋‹ค์ค‘ ๋ฌธ์ž ์‚ญ์ œ020, 080, 116
ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ๋ถˆ์™„์ „ํ•œ ์ •๊ทœ์‹020
๋ถˆ์™„์ „ํ•œ ๋ฌธ์ž์—ด ์ด์Šค์ผ€์ดํ”„ ๋˜๋Š” ์ธ์ฝ”๋“œ020, 080, 116
๋ถˆ์™„์ „ํ•œ URL ์ฒด๊ณ„ ๊ฒ€์‚ฌ020, 184
๋ถˆ์™„์ „ํ•œ URL ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์‚ญ์ œ020
์ž˜๋ชป๋œ ์ ‘๋ฏธ์‚ฌ ๊ฒ€์‚ฌ020
๋น„ํšจ์œจ์ ์ธ ์ •๊ทœ์‹1333, 730, 400
์Šคํƒ ์ถ”์ ์„ ํ†ตํ•œ ์ •๋ณด ๋…ธ์ถœ209, 497
ํ—ฌ๋ฉง ๋ณด์•ˆ ๋ฏธ๋“ค์›จ์–ด์˜ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๊ตฌ์„ฑ693, 1021
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ์ž„์˜์„ฑ338
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ URL ํ—ˆ์šฉ ๋ชฉ๋ก183, 625
๋น„๋ฐ€ ๋˜๋Š” ๊ณต๊ฐœ ํ‚ค ๊ฒ€์ฆ์ด ๋ˆ„๋ฝ๋œ JWT347
๋ฃจํ”„ ๊ฒฝ๊ณ„ ์‚ฝ์ž…834, 730
CSRF ๋ฏธ๋“ค์›จ์–ด ๋ˆ„๋ฝ352
ํŠธ๋ž˜ํ”ฝ๋ฅ  ์ œํ•œ ๋ˆ„๋ฝ770, 307, 400
์ง€๋‚˜์น˜๊ฒŒ ํ—ˆ์šฉ์ ์ธ ์ •๊ทœ์‹ ๋ฒ”์œ„020
์ œ์–ด๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋‹คํ•ญ์‹ ์ •๊ทœ์‹1333, 730, 400
ํ”„๋กœํ† ํƒ€์ž… ์˜ค์—ผ ํ• ๋‹น078, 079, 094, 400, 471, 915
ํ”„๋กœํ† ํƒ€์ž… ์˜ค์—ผ ํ•จ์ˆ˜078, 079, 094, 400, 471, 915
ํ”„๋กœํ† ํƒ€์ž… ์˜ค์—ผ ํ†ตํ™” ํ†ตํ•ฉ078, 079, 094, 400, 471, 915
๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ… ๋ฐ˜์˜079, 116
์ •๊ทœ์‹ ์‚ฝ์ž…730, 400
๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ž์ฒด๋กœ ๋Œ€์ฒด116
๋ฆฌ์†Œ์Šค ์†Œ์ง„400, 770
์ „์ฒด ๊ฐœ์ฒด ํ†ต๊ณผ๋กœ ์ธํ•œ ๋ฆฌ์†Œ์Šค ์†Œ์ง„400
๋‘ ๋ฒˆ์งธ ์ˆœ์„œ ๋ช…๋ น ์‚ฝ์ž…078, 088
GET ์š”์ฒญ์—์„œ ์ฝ์€ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ598
ํด๋ผ์ด์–ธํŠธ์— ๋…ธ์ถœ๋˜๋Š” ์ค‘์š”ํ•œ ์„œ๋ฒ„ ์ฟ ํ‚ค1004
์„œ๋ฒ„ ์ถฉ๋Œ248, 730
์„œ๋ฒ„ ์ชฝ ์š”์ฒญ ์œ„์กฐ918
์„œ๋ฒ„ ์ชฝ URL ๋ฆฌ๋””๋ ‰์…˜601
ํ™˜๊ฒฝ ๊ฐ’์—์„œ ๋นŒ๋“œ๋œ ์…ธ ๋ช…๋ น078, 088
๋นŒ๋“œ ์•„ํ‹ฐํŒฉํŠธ์— ์ค‘์š”ํ•œ ์ •๋ณด ์ €์žฅ312, 315, 359
์ €์žฅ๋œ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…079, 116
ํ…œํ”Œ๋ฆฟ ๊ฐœ์ฒด ์‚ฝ์ž…073, 094
๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ณ€์กฐ๋ฅผ ํ†ตํ•œ ์œ ํ˜• ํ˜ผ๋™8:43
์ œ์–ด๋˜์ง€ ์•Š์€ ๋ช…๋ น์ค„078, 088
๊ฒฝ๋กœ ์‹์— ์ œ์–ด๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋จ022, 023, 036, 073, 099
cat ํ”„๋กœ์„ธ์Šค์˜ ๋ถˆํ•„์š”ํ•œ ์‚ฌ์šฉ078
์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋™์  ๋ฉ”์„œ๋“œ ์•ก์„ธ์Šค094
์ž์ฒด ๋‹ซ๋Š” HTML ํƒœ๊ทธ์˜ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ํ™•์žฅ079, 116
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋ ฅ์—์„œ ์ƒ์„ฑ๋œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ HTML079, 116
์•ˆ์ „ํ•˜์ง€ ์•Š์€ jQuery ํ”Œ๋Ÿฌ๊ทธ ์ธ079, 116
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋ ฅ์—์„œ ์ƒ์„ฑ๋œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์…ธ ๋ช…๋ น078, 088
์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ๊ธฐํƒ€ ์ฝ˜ํ…์ธ ์— ์‚ฌ์šฉ๋˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„๋ฉ”์ธ830
์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๋™์  ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ754
์†์ƒ๋˜์—ˆ๊ฑฐ๋‚˜ ์•ฝํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ327, 328
์•ฝํ•œ ์•”ํ˜ธํ™” ํ‚ค ์‚ฌ์šฉ326
์™ธ๋ถ€์—์„œ ์ œ์–ด๋˜๋Š” ํ˜•์‹ ๋ฌธ์ž์—ด ์‚ฌ์šฉ134
๊ณ„์‚ฐ ์ž‘์—…์ด ๋ถ€์กฑํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ ์‚ฌ์šฉ916
์“ธ๋ชจ์—†๋Š” ์ •๊ทœ์‹ ๋ฌธ์ž ์ด์Šค์ผ€์ดํ”„020
XML ์™ธ๋ถ€ ์—”ํ„ฐํ‹ฐ ํ™•์žฅ611, 827
XML ๋‚ด๋ถ€ ์—”ํ„ฐํ‹ฐ ํ™•์žฅ776, 400
XPath ์‚ฝ์ž…643
์„œ๋ฒ„ ์ชฝ ์š”์ฒญ ์œ„์กฐ918
๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๋นˆ ๋น„๋ฐ€๋ฒˆํ˜ธ258, 862
์„ธ์…˜ ์ค‘๋‹จ ์‹คํŒจ384
์•„์›ƒ๋ฐ”์šด๋“œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์˜ ํŒŒ์ผ ๋ฐ์ดํ„ฐ200
์ฝ”๋“œ๋กœ ํ•ด์„๋˜๋Š” ํ•˜๋“œ ์ฝ”๋“œ๋œ ๋ฐ์ดํ„ฐ506
๊ฐ„์ ‘ ์ œ์–ด๋˜์ง€ ์•Š์€ ๋ช…๋ น์ค„078, 088
๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ์ž„์‹œ ํŒŒ์ผ377, 378
๋กœ๊ทธ ์‚ฝ์ž…117
postMessage ์ฒ˜๋ฆฌ๊ธฐ์—์„œ ์›๋ณธ ๊ฒ€์ฆ ๋ˆ„๋ฝ020, 940
์ •๊ทœ์‹ ์•ต์ปค ๋ˆ„๋ฝ020
ํŒŒ์ผ์— ๊ธฐ๋ก๋œ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ912, 434
์ž ์žฌ์ ์ธ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝํ•ฉ ์ƒํƒœ367
์›๊ฒฉ ์†์„ฑ ์‚ฝ์ž…250, 400
SameSite ์ œํ•œ์ด ์—†๋Š” ์ค‘์š”ํ•œ ์ฟ ํ‚ค1275
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋ ฅ์—์„œ ์ƒ์„ฑ๋œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ094, 079, 116
๋ณด์•ˆ ํ™•์ธ์˜ ์‚ฌ์šฉ์ž ์ œ์–ด ์šฐํšŒ807, 290