์์ ํ์ผ, ๋ช ๋ น์ค ๋งค๊ฐ๋ณ์ ๋ฐ Unix ์์ผ์ ์๋ชป๋ ์์ ์ผ๋ก ์ธํด ๋ฐ์ํ๋ swhkd(Simple Wayland HotKey Daemon)์์ ์ผ๋ จ์ ์ทจ์ฝ์ ์ด ํ์ธ๋์์ต๋๋ค. ์ด ํ๋ก๊ทธ๋จ์ Rust๋ก ์์ฑ๋์์ผ๋ฉฐ Wayland ํ๋กํ ์ฝ(X11 ๊ธฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ sxhkd ํ๋ก์ธ์ค์ ๊ตฌ์ฑ ํ์ผ ํธํ ์๋ ๋ก๊ทธ) ๊ธฐ๋ฐ ํ๊ฒฝ์์ ํซํค ๋๋ฅด๊ธฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
ํจํค์ง์๋ ํซํค ์์ ์ ์ํํ๋ ๊ถํ ์๋ swhks ํ๋ก์ธ์ค์ ๋ฃจํธ๋ก ์คํ๋๊ณ uinput API ์์ค์์ ์ ๋ ฅ ์ฅ์น์ ์ํธ ์์ฉํ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ swhkd ํ๋ก์ธ์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. Unix ์์ผ์ swhk์ swhkd ๊ฐ์ ์ํธ ์์ฉ์ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. Polkit ๊ท์น์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๋ก์ปฌ ์ฌ์ฉ์๊ฐ /usr/bin/swhkd ํ๋ก์ธ์ค๋ฅผ ๋ฃจํธ๋ก ์คํํ๊ณ ์์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
ํ์ธ๋ ์ทจ์ฝ์ :
- CVE-2022-27815 โ ํ๋ก์ธ์ค PID๋ฅผ ์์ธก ๊ฐ๋ฅํ ์ด๋ฆ์ ํ์ผ๊ณผ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ธ ์ ์๋ ๋๋ ํฐ๋ฆฌ(/tmp/swhkd.pid)์ ์ ์ฅํฉ๋๋ค. ๋ชจ๋ ์ฌ์ฉ์๋ /tmp/swhkd.pid ํ์ผ์ ์์ฑํ๊ณ ๊ทธ ์์ ๊ธฐ์กด ํ๋ก์ธ์ค์ pid๋ฅผ ๋ฃ์ ์ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด swhkd๊ฐ ์์๋์ง ์์ต๋๋ค. /tmp์ ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ์ ๋ํ ๋ณดํธ ์ฅ์น๊ฐ ์๋ ๊ฒฝ์ฐ ์ทจ์ฝ์ ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์์คํ ๋๋ ํฐ๋ฆฌ์์ ํ์ผ์ ์์ฑํ๊ฑฐ๋ ๋ฎ์ด์ฐ๊ฑฐ๋(PID๊ฐ ํ์ผ์ ๊ธฐ๋ก๋จ) ์์คํ ์ ์๋ ๋ชจ๋ ํ์ผ์ ๋ด์ฉ์ ํ์ธํ ์ ์์ต๋๋ค(swhkd๋ PID ํ์ผ์ ์ ์ฒด ๋ด์ฉ์ ํ์ค ์ถ๋ ฅ์ผ๋ก ์ถ๋ ฅ). ๋ฆด๋ฆฌ์ค๋ ์์ ์ฌํญ์์๋ PID ํ์ผ์ด /run ๋๋ ํฐ๋ฆฌ๊ฐ ์๋ /etc ๋๋ ํฐ๋ฆฌ(/etc/swhkd/runtime/swhkd_{uid}.pid)๋ก ์ด๋๋์์ผ๋ฉฐ ์ด ๋๋ ํฐ๋ฆฌ์๋ ์ํ์ง ์๋๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๋งํฉ๋๋ค.
- CVE-2022-27814 - ๊ตฌ์ฑ ํ์ผ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ "-c" ๋ช ๋ น์ค ์ต์ ์ ์กฐ์ํ๋ฉด ์์คํ ์ ํ์ผ์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด /root/.somefile์ ํ์ธํ๋ ค๋ฉด "pkexec /usr/bin/swhkd -d -c /root/.somefile"์ ์คํํ ์ ์์ผ๋ฉฐ ํ์ผ์ด ์์ผ๋ฉด "/root/.somefile์ด ์กด์ฌํ์ง ์์ต๋๋ค"๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. "๊ฐ ํ์๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ทจ์ฝ์ ์ ๊ฒฝ์ฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์์๊ป๋ผ์ ๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์ธ๋ถ ์ ํธ๋ฆฌํฐ โcatโ ('Command::new(โ/bin/catโ)).arg(path)๋ผ๋ ์ฌ์ค๋ก ๊ท๊ฒฐ๋ฉ๋๋ค. ์ด์ ๊ตฌ์ฑ ํ์ผ์ ์ฝ๊ธฐ ์ํด ์์๋ฉ๋๋ค.output()').
- CVE-2022-27819 โ ์ด ๋ฌธ์ ๋ ํ์ผ์ ํฌ๊ธฐ์ ์ ํ์ ํ์ธํ์ง ์๊ณ ์ ์ฒด ๊ตฌ์ฑ ํ์ผ์ ๋ก๋ํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ํ๋ "-c" ์ต์ ์ฌ์ฉ๊ณผ๋ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๊ณ ์๋ชป๋ I/O๋ฅผ ์์ฑํ์ฌ ์๋น์ค ๊ฑฐ๋ถ๋ฅผ ๋ฐ์์ํค๋ ค๋ฉด ์์ ์ ๋ธ๋ก ์ฅ์น๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค("pkexec /usr/bin/swhkd -d -c /dev/sda"). ๋ฌดํํ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์์ฑํ๋ ๋ฌธ์ ์ฅ์น์ ๋๋ค. ํ์ผ์ ์ด๊ธฐ ์ ๊ถํ์ ์ฌ์ค์ ํ์ฌ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ผ๋, ์ฌ์ฉ์ ID(UID)๋ง ์ฌ์ค์ ๋๊ณ ๊ทธ๋ฃน ID(GID)๋ ๊ทธ๋๋ก ์ ์ง๋์ด ์์ ์ด ์๋ฃ๋์ง ์์์ต๋๋ค.
- CVE-2022-27818 โ ์ฐ๊ธฐ ๊ฐ๋ฅํ ๋๋ ํฐ๋ฆฌ์ ์์ฑ๋ /tmp/swhkd.sock ํ์ผ์ ์ฌ์ฉํ์ฌ Unix ์์ผ์ด ์์ฑ๋์ด ์ฒซ ๋ฒ์งธ ์ทจ์ฝ์ ๊ณผ ์ ์ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค(๋ชจ๋ ์ฌ์ฉ์๊ฐ /tmp/swhkd.sock์ ์์ฑํ๊ณ ์์ฑํ๊ฑฐ๋ ๊ฐ๋ก์ฑ ์ ์์). ํค ๋๋ฅด๊ธฐ ์ด๋ฒคํธ).
- CVE-2022-27817 - ์ ๋ ฅ ์ด๋ฒคํธ๋ ๋ชจ๋ ์ฅ์น ๋ฐ ๋ชจ๋ ์ธ์ ์์ ํ์ฉ๋ฉ๋๋ค. ๋ค๋ฅธ Wayland ์ธ์ ์ด๋ ์ฝ์์ ์ฌ์ฉ์๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋จ์ถํค๋ฅผ ๋๋ฅผ ๋ ์ด๋ฒคํธ๋ฅผ ๊ฐ๋ก์ฑ ์ ์์ต๋๋ค.
- CVE-2022-27816 swhkd์ ๋ง์ฐฌ๊ฐ์ง๋ก swhks ํ๋ก์ธ์ค๋ ์ฐ๊ธฐ ๊ฐ๋ฅํ /tmp ๋๋ ํฐ๋ฆฌ์ ์๋ PID ํ์ผ /tmp/swhks.pid๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฌธ์ ๋ ์ฒซ ๋ฒ์งธ ์ทจ์ฝ์ ๊ณผ ์ ์ฌํ์ง๋ง swhks๊ฐ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ ์ํํ์ง๋ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru