Linux ์ปค๋์์ ์์ ํ์ผ์ ๋ฎ์ด์ธ ์ ์๋ ์ทจ์ฝ์ ์ ์ธ๋ถ ์ ๋ณด๊ฐ ๊ณต๊ฐ๋์์ต๋๋ค. ํด๋น ์ทจ์ฝ์ ์ CVE-2016-5195(Dirty Cow)์ ์ ์ฌํ๋ค๋ ์ ์์ Dirty Pipe๋ก ๋ช ๋ช ๋์์ต๋๋ค.
์ทจ์ฝ์ ์ ์๋ชป๋ Unix ํ์ดํ ์ฒ๋ฆฌ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์์ ๋ ์๋์ ๊ฐ์ต๋๋ค.
writer๋ ํ์ผ์ AAAAA๋ฅผ ์ฐ๊ณ , splicer๋ spliceํจ์๋ฅผ ์ฌ์ฉํด ํด๋น ํ์ผ์์ ํ์ดํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ค ํ์ดํ์ BBBBB ๋ฅผ ์๋๋ค. ์ด๋ ์ปค๋์ ํ์ดํ ๋ฒํผ๋ ๊ฐ๊ฐ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ๋ struct pipe_buffer ๋ง์ผ๋ก ๊ตฌํ๋๋๋ฐ, ํ์ดํ์ ๋ํ ์ฒซ ๋ฒ์งธ ์ฐ๊ธฐ๋ 4KB์ ํ์ด์ง๋ฅผ ํ ๋นํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ฐ๊ธฐ์์ ํ์ด์ง๋ฅผ ์์ ํ ์ฑ์ฐ์ง ์์๋ค๋ฉด ๋ค์ ์ฐ๊ธฐ๊ฐ ์ ํ์ด์ง๋ฅผ ํ ๋นํ๋ ๋์ ๊ธฐ์กด ํ์ด์ง์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ์์ ์์ ํ์ผ์๋ ์ฐ์ธ ์ ์๋ BBBBB ๋ฌธ์์ด์ด ํ์ดํ๋ฅผ ํตํด ์ฐ์ฌ์ง๊ณ ์ด๋ ํ๋ก์ธ์ค ๊ถํ๊ณผ ๊ด๊ณ์์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ทจ์ฝ์ ์ ์ ์ฉํ๋ฉด ๋ฎ์ ๊ถํ์ ํ๋ก์ธ์ค๊ฐ root ๊ถํ์ ํ์ผ๋ํ ์์ ํ ์ ์์ต๋๋ค.
๋ํ ํ์ด์ง ์บ์๋ ํญ์ ์ปค๋์์ ์ฐ๊ธฐ ๊ฐ๋ฅํ๊ณ ํ์ดํ์ ์ฐ๋ ๊ฒ์ ์ด๋ ํ ๊ถํ๋ ํ์ธํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ ํ์ผ, ์ฝ๊ธฐ ์ ์ฉ btrfs ์ค๋ ์ท ๋ฐ ์ฝ๊ธฐ ์ ์ฉ ๋ง์ดํธ(CD-ROM ๋ง์ดํธ ํฌํจ)์์๋ ์ทจ์ฝ์ ์ด ์ ์ฉ๋ ์ ์์ต๋๋ค.
PoC๋ ๋งํฌ ์์ ํ์ธํ ์ ์์ต๋๋ค.