mirror_qemu/qga/vss-win32
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
..
install.cpp qga/win32: Use rundll for VSS installation 2023-08-02 16:07:32 +03:00
install.h qemu-ga: Make QGA VSS provider service run only when needed 2017-04-26 23:56:46 -05:00
meson.build qga-vss: Add auto generated headers to dependencies 2022-05-14 12:32:40 +02:00
provider.cpp qga/vss-win32: check old VSS SDK headers 2022-03-15 11:26:20 +01:00
qga-vss.def qga/win32: Use rundll for VSS installation 2023-08-02 16:07:32 +03:00
qga-vss.idl
requester.cpp qga-vss: Use the proper operator to free memory 2022-05-14 12:32:41 +02:00
requester.h Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
vss-common.h qga/vss-win32: check old VSS SDK headers 2022-03-15 11:26:20 +01:00
vss-handles.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00