เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™ swhkd, เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบ—เบฒเบ‡เบฅเบฑเบ”เบชเปเบฒเบฅเบฑเบš Wayland

เบŠเบธเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ swhkd (Simple Wayland HotKey Daemon) เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบšเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบง, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบŠเบฑเบญเบเป€เบเบฑเบ” Unix. เป‚เบ›เบฃเปเบเบฃเบกเบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Rust เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบเบปเบ” hotkey เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป‚เบ›เป‚เบ•เบ„เบญเบ™ Wayland (เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ sxhkd เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ X11).

เบŠเบธเบ”เบ›เบฐเบเบญเบšเบกเบตเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ swkhks เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ hotkey, เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ swhkd เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบฎเบฒเบเปเบฅเบฐเป‚เบ•เป‰เบ•เบญเบšเบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบš uinput API. เป€เบ•เบปเป‰เบฒเบฎเบฑเบš Unix เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡ swhks เปเบฅเบฐ swhkd. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡ Polkit, เบœเบนเป‰เปƒเบŠเป‰เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ /usr/bin/swhkd process เป€เบ›เบฑเบ™ root เปเบฅเบฐเบœเปˆเบฒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบ•เบปเบ™เป€เบญเบ‡เบกเบฑเบ.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰:

  • CVE-2022-27815 โ€“ เบšเบฑเบ™เบ—เบถเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ PID เปƒเบชเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰ เปเบฅเบฐเบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบญเบทเปˆเบ™ (/tmp/swhkd.pid). เบœเบนเป‰เปƒเบŠเป‰เปƒเบ”เบเปเปˆเบ•เบฒเบกเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ /tmp/swhkd.pid เปเบฅเบฐเบงเบฒเบ‡ pid เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปƒเบ™เบกเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ swhkd เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ”เป‰. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบดเป‰เบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเปƒเบ™ /tmp, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบซเบผเบทเบ‚เบฝเบ™เบ—เบฑเบšเป„เบŸเบฅเปŒเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฅเบฐเบšเบปเบšเปƒเบ”เป† (PID เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ) เบซเบผเบทเบเปเบฒเบ™เบปเบ”เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเปƒเบ”เป†เปƒเบ™เบฅเบฐเบšเบปเบš (swhkd เบžเบดเบก. เป€เบ™เบทเป‰เบญโ€‹เปƒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒ PID เบเบฑเบš stdoutโ€‹)โ€‹. เป€เบ›เบฑเบ™เบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เป„เบŸเบฅเปŒ 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 spurious, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบญเบธเบ›เบฐเบเบญเบ™เบ•เบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ ("pkexec /usr/bin/swhkd -d -c /dev/sda") เบซเบผเบท. เบญเบธเบ›เบฐเบเบญเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบœเบฐเบฅเบดเบ”เบเบฐเปเบชเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ” . เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เบทเบ™เบชเบดเบ”เบ—เบดเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เป„เบŸเบฅเปŒ, เปเบ•เปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆ ID เบœเบนเป‰เปƒเบŠเป‰ (UID) เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เปƒเบซเบกเปˆ, เปเบ•เปˆ ID เบเบธเปˆเบก (GID) เบเบฑเบ‡เบ„เบปเบ‡เบ„เบทเบเบฑเบ™.
  • CVE-2022-27818 โ€“ เป€เบ•เบปเป‰เบฒเบฎเบฑเบš Unix เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰เป„เบŸเบฅเปŒ /tmp/swhkd.sock เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡เบ™เปเบฒเป„เบ›เบชเบนเปˆเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เป€เบ›เบฑเบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เปเบฒเบญเบดเบ” (เบœเบนเป‰เปƒเบŠเป‰เปƒเบ”เบเปเปˆเบ•เบฒเบกเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡ /tmp/swhkd.sock เปเบฅเบฐเบชเป‰เบฒเบ‡เบซเบผเบทเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡. เป€เบซเบ”เบเบฒเบ™เบเบปเบ”เบ›เบธเปˆเบก).
  • CVE-2022-27817 - เป€เบซเบ”เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบเบญเบกเบฎเบฑเบšเบˆเบฒเบเบ—เบธเบเบญเบธเบ›เบฐเบเบญเบ™ เปเบฅเบฐเปƒเบ™เบ—เบธเบเป€เบŠเบ”เบŠเบฑเบ™, i.e. เบœเบนเป‰เปƒเบŠเป‰เบˆเบฒเบเบเบญเบ‡เบ›เบฐเบŠเบธเบก Wayland เบญเบทเปˆเบ™เบซเบผเบทเบˆเบฒเบ console เบชเบฒเบกเบฒเบ”เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป€เบซเบ”เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ hotkeys เบ–เบทเบเบเบปเบ”เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบญเบทเปˆเบ™เป†.
  • CVE-2022-27816 เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ swhks, เป€เบŠเบฑเปˆเบ™: swhkd, เปƒเบŠเป‰เป„เบŸเบฅเปŒ PID /tmp/swhks.pid เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต /tmp เบ—เบตเปˆเบ‚เบฝเบ™เป„เบ”เป‰. เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เปเบฒเบญเบดเบ”, เปเบ•เปˆเบšเปเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเป€เบžเบฒเบฐเบงเปˆเบฒ swhks เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ•เป‰เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™