2024-04-26.md
๐กDIL: ๋ชจ๋ ๋ฆฌ์กํธ ๋ฅ ๋ค์ด๋ธ, 8์ฃผ์ฐจ-
์คํฐ๋: ์๊ฐ CS, https://github.com/monthly-cs/2024-03-modern-react-deep-dive
์ค๋ ์งํ: ๊ฐ์ธ๊ณต๋ถ
DIL-week6-_2024-04-26
| DIL ์ฃผ์ฐจ | ๋ฒ์ | ๋ด์ฉ | ์ค๋์ฐจ ์ง๋ | | -------- | ---------- | -------------------------------------------------------- | ----------- | | 8์ฃผ์ฐจ | 14์ฅ, 15์ฅ | ์น์ฌ์ดํธ ๋ณด์์ ์ํ ๋ฆฌ์กํธ์ ์นํ์ด์ง ๋ณด์ ์ด์, ๋ง์น๋ฉฐ | 884~902p |
์ค๋ ์ฝ์ ๋ด์ฉ์ markdown์ผ๋ก ๊ฐ๋จํ ๋ฉ๋ชจ
<a>
ํ๊ทธ์ ๊ฐ ์ ํ
-
a ํ๊ทธ href์
javascript:
๋ก ์์ํ๋ ์ฝ๋๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ => ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ง๊ณ , onClick๊ฐ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ง ์๋์ํค๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋จfunction App() { function handleClick() { console.log("hello"); } return ( <> {/* a์ href๊ฐ ์๋ํ์ง ์์ ํ์ด์ง ์ด๋์ด ์ผ์ด๋์ง ์๊ณ , onClick ํธ๋ค๋ฌ๋ง ์คํ */} {/* ๋งํฌ์ ์ํฐํจํด, button์ ์ฌ์ฉํ์ */} <a href="javascript:;" onClick={handlerClick}> ๋งํฌ </a> </> ); }
-
javascript:์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ ฅ ์
<a href="javascript:alert('hello')">๋งํฌ</a> // dangerouslySetInnerHTML์ ๊ถ์ฅํ๋ ๊ฒฝ๊ณ ๋ฌธ๊ณผ ํจ๊ป ์ ์์ ์ผ๋ก ๋๋๋ง๋จ
-
a ํ๊ทธ์ ๊ฐ์ด ๋ฐฉ์ง๋์ด ์์ง ์์ ์ฌ์ดํธ์
<a href="javascript:alert(origin)">๋งํฌC</a>
๊ฐ์ DOM ์์๋ฅผ ์ถ๊ฐํด ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๋ค- inblog.ai, ๋ผ์ด๋ธ ์๋ฒ์์ ์คํ๋จ
-
๊ตฌ๊ธ์ ์ถ๊ฐํด๋ณธ ๊ฒฐ๊ณผ: ๋งํ์์
function isSafeHref(href: string) {
let isSafe = false;
try {
const url = new URL(href)
if(['http:', 'https:'].includes(url.protocol){
isSafe = true
})
} catch (e) {
...
}
return isSafe
}
function App(){
const unsafeHref ="javascript:alert('hello๐')"
const safeHref = "https://www.naver.com"
return (
<>
{/* ์ํํ href๋ก ๋ถ๋ฅ๋์ด #์ด ๋ฐํ*/}
<a href={isSafeHref()?}></a>
</>
)
}
<a >
- href๋ก ๋ค์ด๊ฐ ์ ์๋ ๊ฐ์ ์ ํํด์ผ ํ๋ค
- โ ์ด๋ป๊ฒ? (๊ตฌ๊ธ์ ์ด๋ป๊ฒ ํ๋)
- a ํ๊ทธ๋ฅผ ๊ณต์ฉ ์ปดํฌ๋ํธ๋ก ๋ง๋ค์ด์ ๊ด๋ฆฌํด์ผ ํ๋?
- ๊ฐ๋ฐ ์ค์ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ aํ๊ทธ๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์์ ๊ฒ
- ์ฌ์ฉ์๊ฐ DOM ์์๋ฅผ ์ง์ ์ฝ์ ํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ง์ง ๋ชปํจ
- a ํ๊ทธ๋ฅผ ๊ณต์ฉ ์ปดํฌ๋ํธ๋ก ๋ง๋ค์ด์ ๊ด๋ฆฌํด์ผ ํ๋?
- โ ์ด๋ป๊ฒ? (๊ตฌ๊ธ์ ์ด๋ป๊ฒ ํ๋)
HTTP ๋ณด์ ํค๋ ์ค์ ํ๊ธฐ
- HTTP ๋ณด์ ํค๋๋?
- ๋ธ๋ผ์ฐ์ ๊ฐ ๋๋๋งํ๋ ๋ด์ฉ๊ณผ ๊ด๋ จ๋ ๋ณด์ ์ทจ์ฝ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์ ํจ๊ป ์๋ํ๋ ํค๋
- ์น์ฌ์ดํธ ๋ณด์์ ๊ธฐ์ด
Strict-Transport-Security
- ๋ชจ๋ ์ฌ์ดํธ๊ฐ HTTPS๋ฅผ ํตํด ์ ๊ทผํด์ผ ํ๋ค.
- HTTP๋ก ์ ๊ทผํ๋ ๊ฒฝ์ฐ, ๋ชจ๋ ์๋๋ HTTPS๋ก ๋ณ๊ฒฝ๋๊ฒ ํจ
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
max-age=<expire-time>
: ๋ธ๋ผ์ฐ์ ๊ฐ ์ค์ ์ ๊ธฐ์ตํด์ผ ํ๋ ์๊ฐ, ์ด- ์ผ๋ฐ์ ์ผ๋ก ์ต์ 1๋ (31536000), https://hstspreload.org์ ๋ฐ๋ฅด๋ฉด 2๋ ๊ถ์ฅ
- includeSubDomains: ๊ท์น์ ํ์ ๋๋ฉ์ธ์ ์ ์ฉ
X-XSS-Protection
-
๋นํ์ค ๊ธฐ์ / ์ฌํ๋ฆฌ์ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ | ๊ฐ | ๋ด์ฉ | | --- | --- | | X-XSS-Protection: 0 | XSS ํํฐ๋ง์ ๋๋ค | | X-XSS-Protection: 1 | ๊ธฐ๋ณธ๊ฐ, XSS ํํฐ๋ง์ ์ผ๊ฒ ๋๋ค. ํ์ด์ง ๋ด๋ถ์์ ๊ณต๊ฒฉ ๊ฐ์ง ์, XSS ์ฝ๋๋ฅผ ์ ๊ฑฐํ ์์ ํ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค๋ค | | X-XSS-Protection: 1; mode=block | ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ์๋๋ผ ์ ๊ทผ ์์ฒด๋ฅผ ๋ง์๋ฒ๋ฆฐ๋ค | | X-XSS-Protection: 1; report= | ํฌ๋ก๋ฏธ์ ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์ , ๋ณด๊ณ ์๋ฅผ uri๋ก ์ ์ก |
-
ํฌ๋ก๋ฏธ์ ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์
- ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ๋ ์คํ์์ค ์น ๋ธ๋ผ์ฐ์
- chrome(์์กฐ ๋ง์ง), edge, brave, arc, ์จ์ผ, ์ผ์ฑ ์ธํฐ๋ท ๋ฑ
- Chromium ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์ ๋ค์ ํฌ๋กฌ ์น์คํ ์ด์ ์๋ ํ์ฅ๊ธฐ๋ฅ ์ค ๋ช ๊ฐ์ง๋ฅผ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ ๋ด์ฅ ๊ธฐ๋ฅ์ผ๋ก ํฌํจ์ํจ ์ ํ๋ค์ด๋ค
X-Frame-Options
- frame, iframe, embed, object ๋ด๋ถ์์ ๋๋๋ง์ ํ์ฉํ ๊ฒ์ด๋
- ์ธ๋ถ์์ ์์ ์ ํ์ด์ง๋ฅผ iframe์ผ๋ก ์ฝ์ ํด ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ํ์ทจํ๋ ๊ฒ์ ๋ง์
X-Frame-Options: deny
,X-Frame-Options: SAMEORIGIN
Permissions-Policy
-
์น์ฌ์ดํธ์์ ์ฌ์ฉํ ์ ์๋ / ์๋ ๊ธฐ๋ฅ์ ๋ช ์์ ์ผ๋ก ์ ์ธ
- ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ: ์นด๋ฉ๋ผ, GPS
-
XSS ๊ณต๊ฒฉ์ ์ ํํ๊ธฐ ์ํ ํค๋
Permissions-Policy: geolocation=() // ๋ชจ๋ geolocation ์ฌ์ฉ ๋ง๊ธฐ Permissions-Policy: geolocation=(self "https://a.mysite.com" "https://b.mysite.com") // ์์ ๊ณผ ๋ช ๊ฐ์ง ํ์ด์ง ํ์ฉ Permissions-Policy: camera=*; Permissions-Policy: pricture-in-picture=(), geolocation=(self "https://a.mysite.com" "https://b.mysite.com"), camera=*;
X-Content-Type-Options
-
Content-Type:
: text/html, text/css => MIME -
์น์๋ฒ๊ฐ ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ ๋ก ์ด ํ์ผ์ ์ฝ๋ ๋ฐฉ์์ ์ง์ ํ๋ ํค๋
X-Content-Type-Options: nosniff
Referrer-Policy
-
์คํ๋? RFC ์ฒซ๋ฒ์งธ ๋ฒ์ ์์ ์๊ธด ์คํ์, (r 2๊ฐ๊ฐ ์ง์ง)
- rfc1945 - rfc? Request For Comments, 1969์ ARPANet์ ๊ณต๋ถํ๋ ๋ฏธ๊ตญ์ ๋ํ์์๋ค์ด ๊ธฐ๋กํ๊ธฐ ์์ํ ๋ฌธ์ - Request for Comments: 1 - 04/26/2024 ํ์ฌ, 9565๊ฐ ๋ฌธ์
The correct spelling is
referrer
. In the RFC's first version of the Hypertext Transfer Protocol (rfc1945), however, the wrong spelling, 'referer', crept in and was never corrected. Thus, in the official version, the spelling 'referer' is found. For this reason, the 'referer' spelling is still used by browsers today.
- rfc1945 - rfc? Request For Comments, 1969์ ARPANet์ ๊ณต๋ถํ๋ ๋ฏธ๊ตญ์ ๋ํ์์๋ค์ด ๊ธฐ๋กํ๊ธฐ ์์ํ ๋ฌธ์ - Request for Comments: 1 - 04/26/2024 ํ์ฌ, 9565๊ฐ ๋ฌธ์
-
origin: scheme, hostname, port์ ์กฐํฉ
- scheme: HTTPS ํ๋กํ ์ฝ
- hostname: ํธ์คํธ๋ช
- port: 443 ํฌํธ
mysite.com
๋๋ฉ์ธ๊ณผ ์ถ์ฒ ๋น๊ต
| ์ถ์ฒ | ๋น๊ต ๊ฒฐ๊ณผ | ์ฐจ์ด์ | | --------------------------- | ------------ | --------------------------------- | | https://fake.kr:443 | cross-origin | ๋๋ฉ์ธ | | https://www.mysite.com:443 | cross-origin | ์๋ธ ๋๋ฉ์ธ | | https://blog.mysite.com:443 | cross-origin | ์๋ธ ๋๋ฉ์ธ | | http://mysite.com:443 | cross-origin | scheme | | https://mysite.com:80 | cross-origin | port | | https://mysite.com:443 | same-origin | - | | https://mysite.com | same-origin | -, HTTPS ๊ธฐ๋ณธ ํฌํธ์ธ 443์ผ๋ก ๊ฐ์ฃผ |
- Referrer-Policy ๊ฐ
- Referrer Policy
strict-origin-when-cross-origin (default): 2020๋ ์ดํ, ํฌ๋กฌ, ํํญ, ์ฌํ๋ฆฌ์์ ๊ธฐ๋ณธ๊ฐ Send the origin, path, and querystring when performing a same-origin request. For cross-origin requests send the origin (only) when the protocol security level stays same (HTTPSโHTTPS). Don't send the Referer header to less secure destinations (HTTPSโHTTP).
- Referrer Policy
- ์๋ต ํค๋ ๋ฟ๋ง ์๋๋ผ meta ํ๊ทธ๋ก๋ ์ค์ ํ ์ ์์
<meta name="referrer" content="origin" />
- ํ์ด์ง ์ด๋์๋ ์ด๋ฏธ์ง ์์ฒญ, link ํ๊ทธ ๋ฑ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ
<a href="http://mysite.com" referrerpolicy="origin">
...
</a>
Send only the origin in the Referer header. For example, a document at https://example.com/page.html will send the referrer https://example.com/.
- ๋ช
์์ ์ผ๋ก ์ ์ธ ๊ถ๊ณ => ๋ง์ฝ Referrer-Policy ๊ฐ์ด ์๋ค๋ฉด?
- ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฅธ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋ => ํ๊ฒฝ๋ณ ๋ค๋ฅธ ๊ฒฐ๊ณผ
- ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋? referer ์ ๋ณด๊ฐ ์ ์ถ๋ ์ ๋ ์๋ค.
CSP, Content-Security-Policy
- CSP๋ XSS ๊ณต๊ฒฉ์ด๋, SQL Injection(๋ฐ์ดํฐ ์ฝ์ ๊ณต๊ฒฉ)๊ณผ ๊ฐ์ ๋ค์ํ ๋ณด์ ์ํ์ ๋ง๊ธฐ ์ํด ์ค๊ณ
-src
- src ์ ์ด
Content-Security-Policy: font-src <source>
Content-Security-Policy: font-src <source> <source>
Content-Security-Policy: font-src http://fonts.google.com/
- ์ฌ์ฉํ ์ ์๋ ์ง์๋ฌธ ๋ง์, www.w3.org/TR/CSP2/#directives
- connect-src: ์คํฌ๋ฆฝํธ๋ก ์ ๊ทผํ ์ ์๋ URL ์ ํ >> ์ด๊ฑธ๋ก URL ์ ํ
- default-src๋ก ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ ์์
- *-src์ ํด๋ฐฑ ์ญํ
- form-action
- ํผ์ผ๋ก ์ ์ถํ ์ ์๋ URL์ ์ ํํ๊ฑฐ๋ ๋ง์
<meta http-equiv="Content-Sercurity-Policy" content="form-action 'none'">
๋ณด์ ํค๋ ์ค์ ํ๊ธฐ
Next.js
- ๊ฒฝ๋ก๋ณ๋ก ๋ณด์ ํค๋๋ฅผ ์ ์ฉํ ์ ์๋ค.
- next.config.js
const securityHeaders = [
{
key: "Content-Sercurity-Policy",
value: ContentSercurityPolices.map((item) => `${item.key} ${item.value};`),join(' '),
},
];
NGINX
- ๊ฒฝ๋ก๋ณ๋ก add_header ์ง์์๋ฅผ ์ฌ์ฉํด, ์๋ต ํค๋๋ฅผ ์ถ๊ฐํ ์ ์์
๋ณด์ ํค๋ ํ์ธํ๊ธฐ
- https://securityheaders.com/
OWASP Top 10
- Open Worldwide (Web) Application Sercurity Project
- ์คํ์์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ๋ก์ ํธ
- ์น์์ ๋ฐ์ํ ์ ์๋ ์ ๋ณด ๋ ธ์ถ, ์ ์ฑ ์คํฌ๋ฆฝํธ, ๋ณด์ ์ทจ์ฝ์ ์ ์ฐ๊ตฌ / ์ฃผ๊ธฐ์ ์ผ๋ก 10๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ทจ์ฝ์ ์ ๊ณต๊ฐ
2021 - OWASP Top 10
- Broken Access Control (โฒ4, Top 10์์ ์ด์ ๋๋น 4๋จ๊ณ ์์น)
- todo: ์ ๊ทผ ์ ์ด ์ ์ฑ (MAC, DAC, RBAC)๊ณผ ์ธ๊ฐ Authorization์ ๋ง๋ ์ก์ธ์ค ์ปจํธ๋กค
- Cryptographic Failure (โฒ1)
- todo: HSTS๋ฅผ ์ฌ์ฉํ๊ณ , ์ํธ๋ฌธ์ด ๊ณ ์ ๋์ง ์๋๋ก ํ๊ณ , ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์ ์ฌ์ฉ
- HSTS๋? HTTP Strict Transport Security, HTTP๋ฅผ HTTPS๋ก ๊ฐ์ ๋ก ๋ฆฌ๋๋ ์
- Injection
- XSS, SQL, ORM // ์ฌ์ฉ์๊ฐ ์ ๊ณตํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ๊ณต๊ฒฉ
- Insecure Design
- ๊ธฐํ ์ค๊ณ ๋จ๊ณ์์ ๋ฐ์ํ ๋ณด์ ์ทจ์ฝ์
- Security Misconfiguration (โฒ1)
- ๋ณด์ ์ค์ ์ค๋ฅ, ๋ง์คํฐ ๊ณ์ ์ ๋น๋ฒ ์ฌ์ค์ ์ํ๋ ๋ฑ
- Vulnerable and Outdated Components (โฒ3)
- ์ทจ์ฝ์ or ์ง์ ์ข
๋ฃ๋ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋ฐ์
- npm ํจํค์ง, OS, NGINX, ์ํ์น, ํ๋ ์์ํฌ ๋ฑ
- ๋ถํ์ ์ํํธ์จ์ด๋ ์ฌ์ ์ ์ ๊ฑฐ, ๋ณด์ ์ทจ์ฝ์ ์ ์ ๊ฒํ์ฌ ์ฃผ๊ธฐ์ ํจ์น ์ ๋ฐ์ดํธ
- Identification and Authentication Failures
- (์ด์ )Broke Authentication + Identification Failures
- ์ธ์ฆ ๊ด๋ จ ๋ณด์ ์ทจ์ฝ์ : ์ฌ์ฉ์์ ์ ์ ํ์ธ์ ์คํจ, ์ํธ ์์ฑ ์ ์ฑ ์ด ์๋ ๊ฒฝ์ฐ, ๋ฌด์์ ๋์ , ์ธ์ฆ ๋ฐ ์ธ์ ๊ด๋ฆฌ๊ฐ ์๋ชป๋์ด ์ ์ถ
- Software and Data Integrity Failures
- ์ํํธ์จ์ด์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ค๋ฅ
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๋ขฐํ ์ ์๋ ์์ค, ์ ์ฅ์, CDN, ํ๋ฌ๊ทธ์ธ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กด
- ์๋ชป๋ CI/CD ํ์ดํ๋ผ์ธ์ ์ฌ์ฉ
- Security Logging and Monitoring Failures
- ์ ์ ํ ๋ก๊น x, ๋ก๊น ์ ๋ณด ๋ถ์กฑ => ์ฌ์ ์ ๊ณต๊ฒฉ์ ๊ฐ์งํ์ง ๋ชปํ๋ ์ทจ์ฝ์
- ์ ์ ํ ํ์๊ณผ ๋ณด๊ด ์ฃผ๊ธฐ๋ก ๋ก๊น
์ ์ํ
- ์์ฌ์ค๋ฌ์ด ํ๋์ ์ฌ์ ์ ๊ฐ์
- ์ ์ํ๊ฒ ๋์ํ ์ ์๋๋ก ์ค๋น
- Server-Side Request Forgery (new!)
- ์๋ฒ์ธก ์์ฒญ ๋ณ์กฐ, ๊ณต๊ฒฉ์๊ฐ ์๋ํ ์๋ฒ๋ก ์์ฒญ์ด ๊ฐ๊ฒ ํ๊ฑฐ๋ ์์กฐ๋ ์์ฒญ์ ๋ณด๋ด๋ ์ทจ์ฝ์ ์ ์๋ฏธ
- ํ๋ก ํธ์๋ ์ฝ๋์์ ์๋ฒ์ฌ์ด๋์ ๋ํ ์ ์ ํ ๋ณด์ ๋์ฑ ์ ๋ง๋ จํด์ผ ํ๋ค
์ ๋ฆฌ
- ๋ฒ๊ทธ๊ฐ ๋ณด์ ์ทจ์ฝ์ ์ผ๋ก ์ด์ด์ง
์ฌ๋กA. log4js
- 2021๋ 12์, Log4Shell
- CVE, Common Vulnerability Exposure
https://www.balbix.com/insights/what-is-a-cve/
- ์งง๋ง ์์
- vulnerability: ์ธ๊ฐ๋ฐ์ง ์์ ์ฌ์ฉ์(๊ณต๊ฒฉ์)๊ฐ ์นจํฌํด ๋ฐ์ดํฐ๋ฅผ ํ์ทจ, ์ญ์ , ์กฐ์ํ๊ฑฐ๋ ์์คํ ์ ์ ๊ทผํ ์ ์์
- expose: ์ค์๋ก ๋ฐ์ดํฐ ์ ์ถ ํน์ ์ธ๊ฐ๋ฐ์ง ์์ ์ฌ์ฉ์์ ์ ๊ทผ์ ํ์ฉ
- log4j ๋ณด์ ์ด์๋ 0-๋ฐ์ด ์ทจ์ฝ์ (0 Day Vulnerability)์ ํด๋น
- ํด์ปค๊ฐ ๊ฐ๋ฐ์๋ณด๋ค ๋จผ์ ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌ (์ธ์ ๋นํ๋ ์ง ๋ชจ๋ฆ)
- ๊ณต๊ฒฉ์ ์๋ฒ์์ ์ฝ๋๋ฅผ ๋ฐ๊ฒ ํด์ ์คํํ๋ ๊ฒ => RCE(Remote Code Execution)
์ฌ๋กB. ํํธ๋ธ๋ฆฌ๋
- 2014๋ , OpenSSL
- Buffer Overflow, ๊ฐ๋ณ ๊ธธ์ด ์ฒดํฌ
์ฌ๋กC. ImageMagick
- 2023๋
2์ 6์ผ
- Denial of Service, ์๋น์ค ๊ฑฐ๋ถ์ ์ทจ์ฝ
- https://nvd.nist.gov/vuln/detail/CVE-2022-44267
- PNG ์ด๋ฏธ์ง๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ๋(์: ํฌ๊ธฐ ์กฐ์ ์ ์ํด) ๋ณํ ํ๋ก์ธ์ค๋ stdin ์ ๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋จ๊ฒจ์ง ์ ์์ต๋๋ค
- Information Disclosure, ์ ๋ณด ๊ณต๊ฐ์ ์ทจ์ฝ
- https://nvd.nist.gov/vuln/detail/CVE-2022-44268
- PNG ์ด๋ฏธ์ง๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ๋(์: ํฌ๊ธฐ ์กฐ์ ์ ์ํด) ๊ฒฐ๊ณผ ์ด๋ฏธ์ง์ ์์์ ์ฝํ ์ธ ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ํ์ผ(magick ๋ฐ์ด๋๋ฆฌ์ ์ฝ๊ธฐ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ)
- Denial of Service, ์๋น์ค ๊ฑฐ๋ถ์ ์ทจ์ฝ
๋ณด์ ๋ด์ค ์ฌ์ดํธ
- https://m.boannews.com/html/news.html?mtype=1&tab_type=1