Snap เชชเซ‡เช•เซ‡เชœ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชŸเซ‚เชฒเช•เซ€เชŸเชฎเชพเช‚ เชฐเซเชŸ เชจเชฌเชณเชพเชˆ

Qualys เช เช† เชตเชฐเซเชทเซ‡ เชคเซเชฐเซ€เชœเซ€ เช–เชคเชฐเชจเชพเช• เชจเชฌเชณเชพเชˆ เช“เชณเช–เซ€ เช›เซ‡ (CVE-2022-3328) snap-confine เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€, เชœเซ‡ SUID เชฐเซเชŸ เชซเซเชฒเซ‡เช— เชธเชพเชฅเซ‡ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชธเซเชต-เชธเชฎเชพเชฏเซ‡เชฒ เชชเซ‡เช•เซ‡เชœเซ‹เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธ เชฎเชพเชŸเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชตเชพเชคเชพเชตเชฐเชฃ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ snapd เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเซเชตเชพเชฐเชพ เชฌเซ‹เชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชธเซเชจเซ‡เชช เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚. เชจเชฌเชณเชพเชˆ เชธเซเชฅเชพเชจเชฟเช• เช…เชจเชชเซเชฐเชฟเชตเชฟเชฒเซ‡เชœเซเชก เชฏเซเชเชฐเชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เช‰เชฌเซเชจเซเชŸเซ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชฐเซ‚เชŸ เชคเชฐเซ€เช•เซ‡ เช•เซ‹เชก เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชธเชฎเชธเซเชฏเชพ snapd 2.57.6 เชฐเชฟเชฒเซ€เชเชฎเชพเช‚ เช เซ€เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เช‰เชฌเซเชจเซเชŸเซเชจเซ€ เชคเชฎเชพเชฎ เชธเชฎเชฐเซเชฅเชฟเชค เชถเชพเช–เชพเช“ เชฎเชพเชŸเซ‡ เชชเซ‡เช•เซ‡เชœ เช…เชชเชกเซ‡เชŸเซเชธ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡.

เชฐเชธเชชเซเชฐเชฆ เชตเชพเชค เช เช›เซ‡ เช•เซ‡, เชชเซเชฐเชถเซเชจเชฎเชพเช‚ เชฐเชนเซ‡เชฒเซ€ เชจเชฌเชณเชพเชˆ เชธเซเชจเซ‡เชช-เช•เชจเซเชซเชพเชˆเชจเชฎเชพเช‚ เชซเซ‡เชฌเซเชฐเซเช†เชฐเซ€เชจเซ€ เชธเชฎเชพเชจ เชจเชฌเชณเชพเชˆเชจเซ‡ เช เซ€เช• เช•เชฐเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เชธเช‚เชถเซ‹เชงเช•เซ‹ เชเช• เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชถเซ‹เชทเชฃ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเชพ เชœเซ‡ เช‰เชฌเซเชจเซเชŸเซ เชธเชฐเซเชตเชฐ 22.04 เชจเซ‡ เชฐเซ‚เชŸ เชเช•เซเชธเซ‡เชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชธเซเชจเซ‡เชช-เช•เชจเซเชซเชพเช‡เชจเชฎเชพเช‚ เชจเชฌเชณเชพเชˆ เช‰เชชเชฐเชพเช‚เชค, เชฎเชฒเซเชŸเชฟเชชเชพเชฅเชก เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชฌเซ‡ เชจเชฌเชณเชพเชˆเช“ เชชเชฃ เชธเชฎเชพเชตเซ‡ เช›เซ‡ (CVE-2022-41974, CVE-2022-41973) , เชตเชฟเชถเซ‡เชทเชพเชงเชฟเช•เซƒเชค เช†เชฆเซ‡เชถเซ‹เชจเชพ เชชเซเชฐเชธเชพเชฐเชฃ เช…เชจเซ‡ เชธเชพเช‚เช•เซ‡เชคเชฟเช• เชฒเชฟเช‚เช•เซเชธ เชธเชพเชฅเซ‡ เช…เชธเซเชฐเช•เซเชทเชฟเชค เช•เชพเชฐเซเชฏ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชธเชคเซเชคเชพเชจเซ€ เชคเชชเชพเชธเชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเชตเชพ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เช›เซ‡.

snap-confine เชฎเชพเช‚ เชจเชฌเชณเชพเชˆ must_mkdir_and_open_with_perms() เชซเช‚เช•เซเชถเชจเชฎเชพเช‚ เชฐเซ‡เชธเชจเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชฅเชพเชฏ เช›เซ‡, เชœเซ‡ /tmp/snap เชจเชพ เช…เชตเซ‡เชœเซ€ เชธเชพเชฎเซ‡ เชฐเช•เซเชทเชฃ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. $SNAP_NAME เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชฎเชพเชฒเชฟเช•เชจเซ‡ เชคเชชเชพเชธเซเชฏเชพ เชชเช›เซ€ เชชเซเชฐเชคเซ€เช•เชพเชคเซเชฎเช• เชฒเชฟเช‚เช• เชธเชพเชฅเซ‡, เชชเชฐเช‚เชคเซ เชฎเชพเช‰เชจเซเชŸ เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชธเซเชจเซ‡เชช เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชชเซ‡เช•เซ‡เชœ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชพเช‚ เชฌเชพเชˆเชจเซเชก-เชฎเชพเช‰เชจเซเชŸ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ‹. เชตเชงเชพเชฐเชพเชจเซเช‚ เชฐเช•เซเชทเชฃ เช /tmp/snap.$SNAP_NAME เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ€เชจเซ‡ /tmp เชฎเชพเช‚ เช…เชจเซเชฏ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชฐเซ‡เชจเซเชกเชฎ เชจเชพเชฎ เชธเชพเชฅเซ‡ เช•เชฐเชตเชพเชจเซเช‚ เชนเชคเซเช‚ เชœเซ‹ เชคเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชนเซ‹เชฏ เช…เชจเซ‡ เชฐเซเชŸเชจเซ€ เชฎเชพเชฒเชฟเช•เซ€เชจเซ€ เชจ เชนเซ‹เชฏ.

เชœเซเชฏเชพเชฐเซ‡ /tmp/snap.$SNAP_NAME เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชฐเชฟเชจเชพเชฎ เช‘เชชเชฐเซ‡เชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชธเช‚เชถเซ‹เชงเช•เซ‹เช เช เชนเช•เซ€เช•เชคเชจเซ‹ เชฒเชพเชญ เชฒเซ€เชงเซ‹ เช•เซ‡ snap-confine เช เชธเซเชจเซ‡เชช เชชเซ‡เช•เซ‡เชœเชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเชพ เชฐเซเชŸ เชฎเชพเชŸเซ‡ /tmp/snap.rootfs_XXXXXX เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชชเชฃ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชจเชพเชฎเชจเซ‹ "XXXXXX" เชญเชพเช— mkdtemp() เชฆเซเชตเชพเชฐเชพ เช…เชตเซเชฏเชตเชธเซเชฅเชฟเชค เชฐเซ€เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชชเชฐเช‚เชคเซ "rootfs_XXXXXX" เชจเชพเชฎเชจเชพ เชชเซ‡เช•เซ‡เชœเชจเซ‡ sc_instance_name_validate เชซเช‚เช•เซเชถเชจเชฎเชพเช‚ เชฎเชพเชจเซเชฏ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (เชเชŸเชฒเซ‡ โ€‹โ€‹โ€‹โ€‹เช•เซ‡ เชตเชฟเชšเชพเชฐ เช เช›เซ‡ เช•เซ‡ $SNAP_NAME เชจเซ‡ "rootfs_XXXXXX" เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เช…เชจเซ‡ เชชเช›เซ€ เชจเชพเชฎ เชฌเชฆเชฒเชตเชพเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€. เชฐเซ‚เชŸ เชธเซเชจเซ‡เชช เชธเชพเชฅเซ‡ /tmp/snap.rootfs_XXXXXX เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชชเชฐ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเชถเซ‡).

/tmp/snap.rootfs_XXXXXX เชจเซ‹ เชเช• เชธเชพเชฅเซ‡ เช‰เชชเชฏเซ‹เช— เช…เชจเซ‡ /tmp/snap.$SNAP_NAME เชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡, snap-confine เชจเชพ เชฌเซ‡ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชฒเซ‹เช‚เชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เชเช•เชตเชพเชฐ เชชเซเชฐเชฅเชฎ เช‰เชฆเชพเชนเชฐเชฃ /tmp/snap.rootfs_XXXXXX เชฌเชจเชพเชตเซเชฏเชพ เชชเช›เซ€, เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช…เชตเชฐเซ‹เชงเชฟเชค เชฅเชˆ เชœเชถเซ‡ เช…เชจเซ‡ เชฌเซ€เชœเซ‹ เชฆเชพเช–เชฒเซ‹ เชชเซ‡เช•เซ‡เชœ เชจเชพเชฎ rootfs_XXXXXX เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เชฅเชถเซ‡, เชœเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡ เชฌเซ€เชœเชพ เชฆเชพเช–เชฒเชพเชจเซ€ เช…เชธเซเชฅเชพเชฏเซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ /tmp/snap.$SNAP_NAME เชฐเซ‚เชŸ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ /tmp/snap เชฌเชจเซ€ เชœเชถเซ‡. เชชเซเชฐเชฅเชฎเชฎเชพเช‚เชฅเซ€ .rootfs_XXXXXX. เชจเชพเชฎ เชฌเชฆเชฒเซเชฏเชพ เชชเช›เซ€ เชคเชฐเชค เชœ, เชฌเซ€เชœเซ€ เช˜เชŸเชจเชพ เช•เซเชฐเซ‡เชถ เชฅเชˆ เช—เชˆ, เช…เชจเซ‡ /tmp/snap.rootfs_XXXXXX เชจเซ‡ เชฐเซ‡เชธ เช•เชจเซเชกเซ€เชถเชจ เชฎเซ‡เชจเซ€เชชเซเชฏเซเชฒเซ‡เชถเชจ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚, เชœเซ‡เชฎ เช•เซ‡ เชซเซ‡เชฌเซเชฐเซเช†เชฐเซ€เชจเซ€ เชจเชฌเชณเชพเชˆเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡. เช…เชตเซ‡เชœเซ€ เชชเช›เซ€, เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชฒเซ‰เช•เชจเซ‡ เชชเซเชฐเชฅเชฎ เช˜เชŸเชจเชพเชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช…เชจเซ‡ เชนเซเชฎเชฒเชพเช–เซ‹เชฐเซ‹เช เชธเซเชจเซ‡เชช เชฐเซ‚เชŸ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชชเชฐ เชธเช‚เชชเซ‚เชฐเซเชฃ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชฎเซ‡เชณเชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เช›เซ‡เชฒเซเชฒเซเช‚ เชชเช—เชฒเซเช‚ เชธเชฟเชฎเชฒเชฟเช‚เช• /tmp/snap.rootfs_XXXXXX/tmp เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชนเชคเซเช‚, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— sc_bootstrap_mount_namespace() เชซเช‚เช•เซเชถเชจ เชฆเซเชตเชพเชฐเชพ เชซเชพเชˆเชฒ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช•เซ‹เชˆเชชเชฃ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชธเชพเชฅเซ‡ เชฒเช–เซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซ€ เชฐเซ€เช…เชฒ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ /tmp เชจเซ‡ เชฌเชพเช‚เชงเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เช•เชพเชฐเชฃ เช•เซ‡ mount() เช•เซ‰เชฒ เชฎเชพเช‰เชจเซเชŸ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชธเชฟเชฎเชฒเชฟเช‚เช•เซเชธเชจเซ‡ เช…เชจเซเชธเชฐเซ‡ เช›เซ‡. เช†เชตเชพ เชฎเชพเช‰เชจเซเชŸเชฟเช‚เช—เชจเซ‡ AppArmor เชชเซเชฐเชคเชฟเชฌเช‚เชงเซ‹ เชฆเซเชตเชพเชฐเชพ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† เชฌเซเชฒเซ‹เช•เชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชถเซ‹เชทเชฃเซ‡ เชฎเชฒเซเชŸเซ€เชชเชพเชฅเชกเชฎเชพเช‚ เชฌเซ‡ เชธเชนเชพเชฏเช• เชจเชฌเชณเชพเชˆเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹