Polkit ๊ตฌ์ฑ ์์์์ ์ทจ์ฝ์ (CVE-2021-3560)์ด ํ์ธ๋์์ต๋๋ค. ์ด ๊ตฌ์ฑ ์์๋ ๊ถํ ์๋ ์ฌ์ฉ์๊ฐ ๋์ ์ก์ธ์ค ๊ถํ์ด ํ์ํ ์์ (์: USB ๋๋ผ์ด๋ธ ๋ง์ดํธ)์ ์ํํ์ฌ ๋ก์ปฌ ์ฌ์ฉ์๊ฐ ๋ค์ ๊ถํ์ ์ป์ ์ ์๋๋ก ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์์คํ ์ ๋ฃจํธ ๊ถํ. ์ด ์ทจ์ฝ์ ์ Polkit ๋ฒ์ 0.119์์ ์์ ๋์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ๋ฆด๋ฆฌ์ค 0.113๋ถํฐ ์กด์ฌํ์ง๋ง RHEL, Ubuntu, Debian ๋ฐ SUSE๋ฅผ ํฌํจํ ๋ง์ ๋ฐฐํฌํ์์๋ ์ํฅ์ ๋ฐ๋ ๊ธฐ๋ฅ์ ์ด์ Polkit ๋ฆด๋ฆฌ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํจํค์ง๋ก ๋ฐฑํฌํธํ์ต๋๋ค(ํจํค์ง ์์ ์ฌํญ์ ๋ฐฐํฌํ์์ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅ).
๋ฌธ์ ๋ ๊ถํ ์์น์ ์์ฒญํ๋ ํ๋ก์ธ์ค์ ์๋ณ์(uid ๋ฐ pid)๋ฅผ ๊ฐ์ ธ์ค๋ polkit_system_bus_name_get_creds_sync() ํจ์์์ ๋ํ๋ฉ๋๋ค. ํ๋ก์ธ์ค๋ DBus์ ๊ณ ์ ํ ์ด๋ฆ์ ํ ๋นํ์ฌ Polkit์ผ๋ก ์๋ณ๋๋ฉฐ, ์ด ์ด๋ฆ์ ๊ถํ์ ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. polkit_system_bus_name_get_creds_sync ํธ๋ค๋ฌ๊ฐ ์์๋๊ธฐ ์ง์ ์ ํ๋ก์ธ์ค๊ฐ dbus-daemon๊ณผ์ ์ฐ๊ฒฐ์ ๋์ผ๋ฉด ํธ๋ค๋ฌ๋ ๊ณ ์ ์ด๋ฆ ๋์ ์ค๋ฅ ์ฝ๋๋ฅผ ์์ ํฉ๋๋ค.
ํด๋น ์ทจ์ฝ์ ์ ํ๋ก์ธ์ค๋ฅผ uid/pid์ ์ผ์น์ํค๊ณ ํ๋ก์ธ์ค์ ์์ฒญ๋ ๊ถํ์ ํ์ธํ์ง ๋ชปํจ์๋ ๋ถ๊ตฌํ๊ณ ๋ฐํ๋ ์ค๋ฅ ์ฝ๋๊ฐ ์ ๋๋ก ์ฒ๋ฆฌ๋์ง ์๊ณ polkit_system_bus_name_get_creds_sync() ํจ์๊ฐ FALSE ๋์ TRUE๋ฅผ ๋ฐํํ๋ค๋ ์ฌ์ค๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. polkit_system_bus_name_get_creds_sync() ํจ์๊ฐ ํธ์ถ๋ ์ฝ๋๋ ๊ฒ์ฌ๊ฐ ์ฑ๊ณตํ๊ณ ๊ถํ ์์ค์ปฌ๋ ์ด์
์์ฒญ์ด ๊ถํ์ด ์๋ ์ฌ์ฉ์๊ฐ ์๋ ๋ฃจํธ์์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ถ๊ฐ ์ธ์ฆ ๋ฐ ์๊ฒฉ ์ฆ๋ช
ํ์ธ ์์ด ๊ถํ ์๋ ์์
์ ์ํํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru