eBPF ํ์ ์์คํ ์์ ๋ ๊ฐ์ง ์๋ก์ด ์ทจ์ฝ์ ์ด ์๋ณ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด JIT๋ฅผ ์ฌ์ฉํ๋ ํน์ ๊ฐ์ ๋จธ์ ์ Linux ์ปค๋ ๋ด์์ ํธ๋ค๋ฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๋ ๊ฐ์ง ์ทจ์ฝ์ ๋ชจ๋ ๊ฒฉ๋ฆฌ๋ eBPF ๊ฐ์ ๋จธ์ ์ธ๋ถ์์ ์ปค๋ ๊ถํ์ผ๋ก ์ฝ๋๋ฅผ ์คํํ ์ ์๊ฒ ํด์ค๋๋ค. ๋ฌธ์ ์ ๋ํ ์ ๋ณด๋ Pwn2Own ๋ํ๋ฅผ ์ด์ํ๋ Zero Day Initiative ํ์ ์ํด ๊ฒ์๋์์ผ๋ฉฐ, ์ฌํด์๋ ์ด์ ์ ์๋ ค์ง์ง ์์ ์ทจ์ฝ์ ์ ์ฌ์ฉํ Ubuntu Linux์ ๋ํ XNUMX๊ฑด์ ๊ณต๊ฒฉ์ด ์ ์ฆ๋์์ต๋๋ค(eBPF์ ์ทจ์ฝ์ ์ด ์ด๋ฌํ ๊ณต๊ฒฉ๊ณผ ๊ด๋ จ์ด ์๋์ง ์ฌ๋ถ๋ ๋ณด๊ณ ๋์ง ์์). .
- CVE-2021-3490 - ์ด ์ทจ์ฝ์ ์ eBPF ALU32์์ ๋นํธ AND, OR ๋ฐ XOR ์ฐ์ฐ์ ์ํํ ๋ 32๋นํธ ๋ฒ์ ์ธ ๊ฒ์ฌ๊ฐ ๋ถ์กฑํ์ฌ ๋ฐ์ํฉ๋๋ค. ๊ณต๊ฒฉ์๋ ์ด ๋ฒ๊ทธ๋ฅผ ์ด์ฉํ์ฌ ํ ๋น๋ ๋ฒํผ ๋ฒ์ ์ธ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. XOR ์ฐ์ฐ ๋ฌธ์ ๋ ์ปค๋ ๋ฒ์ 5.7-rc1๋ถํฐ ๋ํ๋๊ณ AND ๋ฐ OR - 5.10-rc1๋ถํฐ ๋ํ๋ฉ๋๋ค.
- CVE-2021-3489 - ํด๋น ์ทจ์ฝ์ ์ ๋ง ๋ฒํผ ๊ตฌํ ์ค๋ฅ๋ก ์ธํด ๋ฐ์ํ๋ฉฐ, bpf_ringbuf_reserve ํจ์๊ฐ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํฌ๊ธฐ๊ฐ ์ค์ ํฌ๊ธฐ๋ณด๋ค ์์ ๊ฐ๋ฅ์ฑ์ ํ์ธํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค. ๋ง๋ฒํ์. ์ด ๋ฌธ์ ๋ ๋ฆด๋ฆฌ์ค 5.8-rc1๋ถํฐ ๋ํ๋ฉ๋๋ค.
๋ฐฐํฌํ์ ์ทจ์ฝ์ ํจ์น ์ํ๋ Ubuntu, Debian, RHEL, Fedora, SUSE, Arch ํ์ด์ง์์ ์ถ์ ํ ์ ์์ต๋๋ค. ์์ ์ฌํญ์ ํจ์น(CVE-2021-3489, CVE-2021-3490)๋ก๋ ์ ๊ณต๋ฉ๋๋ค. ๋ฌธ์ ๊ฐ ์ ์ฉ๋ ์ ์๋์ง ์ฌ๋ถ๋ ์ฌ์ฉ์๊ฐ eBPF ์์คํ ํธ์ถ์ ์ก์ธ์คํ ์ ์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์๋ฅผ ๋ค์ด, RHEL์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ ์ทจ์ฝ์ ์ ์ ์ฉํ๋ ค๋ฉด ์ฌ์ฉ์์๊ฒ CAP_SYS_ADMIN ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค.
์ด์ ๋ณ๋๋ก, ๋ก์ปฌ ์ฌ์ฉ์๊ฐ ์์ ์ ๊ถํ์ ๋ฃจํธ ์์ค์ผ๋ก ๋์ผ ์ ์๋ Linux ์ปค๋์ ๋ ๋ค๋ฅธ ์ทจ์ฝ์ ์ธ CVE-2021-32606์ ์ฃผ๋ชฉํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ Linux ์ปค๋ 5.11๋ถํฐ ๋ถ๋ช ํด์ก์ผ๋ฉฐ CAN ISOTP ํ๋กํ ์ฝ ๊ตฌํ์ ๊ฒฝ์ ์กฐ๊ฑด์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ด๋ก ์ธํด isotp_setsockopt() ํจ์์์ ์ ์ ํ ์ ๊ธ์ ์ค์ ํ์ง ์์ ์์ผ ๋ฐ์ธ๋ฉ ๋งค๊ฐ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. CAN_ISOTP_SF_BROADCAST ํ๋๊ทธ๋ฅผ ์ฒ๋ฆฌํ ๋.
ISOTP ์์ผ์ด ๋ซํ ํ์๋ ์์ ์ ์์ผ์ ๋ํ ๋ฐ์ธ๋ฉ์ ๊ทธ๋๋ก ์ ์ง๋๋ฉฐ, ์ฐ๊ฒฐ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์ ๋ ํ์๋ ์์ผ๊ณผ ์ฐ๊ฒฐ๋ ๊ตฌ์กฐ๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค(isotp_sock ๊ตฌ์กฐ์ ๋ํ ํธ์ถ๋ก ์ธํด use-after-free). isotp_rcv()๊ฐ ํธ์ถ๋ ๋ ์ด๋ฏธ ํด์ ๋์์ต๋๋ค). ๋ฐ์ดํฐ ์กฐ์์ ํตํด sk_error_report() ํจ์์ ๋ํ ํฌ์ธํฐ๋ฅผ ์ฌ์ ์ํ๊ณ ์ปค๋ ์์ค์์ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru