mirror_qemu/qga
Konstantin Kostiuk b629412e9d qga/win32: Use rundll for VSS installation
The custom action uses cmd.exe to run VSS Service installation
and removal which causes an interactive command shell to spawn.
This shell can be used to execute any commands as a SYSTEM user.
Even if call qemu-ga.exe directly the interactive command shell
will be spawned as qemu-ga.exe is a console application and used
by users from the console as well as a service.

As VSS Service runs from DLL which contains the installer and
uninstaller code, it can be run directly by rundll32.exe without
any interactive command shell.

Add specific entry points for rundll which is just a wrapper
for COMRegister/COMUnregister functions with proper arguments.

resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2167423
fixes: CVE-2023-0664 (part 2 of 2)

Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Reported-by: Brian Wiltse <brian.wiltse@live.com>
(cherry picked from commit 07ce178a2b)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-08-02 16:07:32 +03:00
..
installer qga/win32: Use rundll for VSS installation 2023-08-02 16:07:32 +03:00
vss-win32 qga/win32: Use rundll for VSS installation 2023-08-02 16:07:32 +03:00
channel-posix.c qga: add channel path to error messages 2022-10-26 20:35:20 +03:00
channel-win32.c qga: Add spaces around operator 2021-03-16 20:20:37 -05:00
channel.h qga: add systemd socket activation support 2017-03-06 00:54:18 -06:00
commands-bsd.c qga: Add HW address getting for FreeBSD 2022-10-26 20:35:07 +03:00
commands-common.h qga: Move HW address getting to a separate function 2022-10-26 20:35:07 +03:00
commands-linux.c qga: Move Linux-specific FS freeze/thaw code to a separate file 2022-10-26 20:35:07 +03:00
commands-posix-ssh.c Remove superfluous ERRP_GUARD() 2021-08-26 17:15:28 +02:00
commands-posix.c qga: Fix suspend on Linux guests without systemd 2023-06-08 13:30:56 +03:00
commands-win32.c qga: Replace 'blacklist' and 'whitelist' in the guest agent sources 2022-09-20 12:37:00 +02:00
commands.c qga: Drop dangling reference to QERR_QGA_LOGGING_DISABLED 2023-03-30 12:19:04 +03:00
cutils.c qga: add qga_open_cloexec() helper 2022-05-28 11:42:56 +02:00
cutils.h qga: add qga_open_cloexec() helper 2022-05-28 11:42:56 +02:00
guest-agent-command-state.c qga: use local path for local headers 2018-06-01 19:20:38 +03:00
guest-agent-core.h qga: Replace 'blacklist' and 'whitelist' in the guest agent sources 2022-09-20 12:37:00 +02:00
main.c qga: Add UFS freeze/thaw support for FreeBSD 2022-10-26 20:35:07 +03:00
meson.build qga: Add UFS freeze/thaw support for FreeBSD 2022-10-26 20:35:07 +03:00
qapi-schema.json Fix some typos in documentation and comments 2022-11-05 20:35:45 +01:00
service-win32.c qga: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
service-win32.h qga-win: changing --retry-path option behavior 2018-10-31 09:04:20 -05:00
vss-win32.c qga-win: add support for qmp_guest_fsfreeze_freeze_list 2018-10-30 16:48:49 -05:00
vss-win32.h qga-win: add support for qmp_guest_fsfreeze_freeze_list 2018-10-30 16:48:49 -05:00