[virt-tools-list] [virt-manager PATCH v2 2/2] unattended: Don't log user & admin passwords
Fabiano Fidêncio
fidencio at redhat.com
Wed Jul 3 14:01:29 UTC 2019
Logging user & admin passwords in the command-line is a security issue,
let's avoid doing so by:
- Not printing the values set by the user when setting up the
install-script config file;
- Removing the values used in the install-scripts, when printing their
content;
'CVE-2019-10183' has been assigned to the virt-install --unattended
admin-password=xxx disclosure issue.
Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
virtinst/install/unattended.py | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/virtinst/install/unattended.py b/virtinst/install/unattended.py
index ae99bfdb..cf21fc22 100644
--- a/virtinst/install/unattended.py
+++ b/virtinst/install/unattended.py
@@ -97,8 +97,6 @@ def _make_installconfig(script, osobj, unattended_data, arch, hostname, url):
log.debug("InstallScriptConfig created with the following params:")
log.debug("username: %s", config.get_user_login())
log.debug("realname: %s", config.get_user_realname())
- log.debug("user password: %s", config.get_user_password())
- log.debug("admin password: %s", config.get_admin_password())
log.debug("target disk: %s", config.get_target_disk())
log.debug("hardware arch: %s", config.get_hardware_arch())
log.debug("hostname: %s", config.get_hostname())
@@ -187,6 +185,26 @@ class OSInstallScript:
return self._script.generate_command_line(
self._osobj.get_handle(), self._config)
+ def _generate_debug(self):
+ config = Libosinfo.InstallConfig()
+
+ config.set_user_login(self._config.get_user_login())
+ config.set_user_realname(self._config.get_user_realname())
+ config.set_user_password("[SCRUBBLED]")
+ config.set_admin_password("[SCRUBBLED]")
+ config.set_target_disk(self._config.get_target_disk())
+ config.set_hardware_arch(self._config.get_hardware_arch())
+ config.set_hostname(self._config.get_hostname())
+ config.set_l10n_timezone(self._config.get_l10n_timezone())
+ config.set_l10n_language(self._config.get_l10n_language())
+ config.set_l10n_keyboard(self._config.get_l10n_keyboard())
+ if self._config.get_installation_url(): # pylint: disable=no-member
+ config.set_installation_url(self._config.get_installation_url()) # pylint: disable=no-member
+ if self._config.get_reg_product_key():
+ config.set_reg_product_key(self._config.get_reg_product_key())
+
+ return self._script.generate(self._osobj.get_handle(), config)
+
def write(self):
fileobj = tempfile.NamedTemporaryFile(
prefix="virtinst-unattended-script", delete=False)
@@ -195,8 +213,10 @@ class OSInstallScript:
content = self.generate()
open(scriptpath, "w").write(content)
+ debug_content = self._generate_debug()
+
log.debug("Generated unattended script: %s", scriptpath)
- log.debug("Generated script contents:\n%s", content)
+ log.debug("Generated script contents:\n%s", debug_content)
return scriptpath
--
2.21.0
More information about the virt-tools-list
mailing list