The `script_pre` and `script_post` options allow to pass arbitrary scripts that will be executed by root. The parameters are extracted in "daemon/controller.py:459", stored unmodified in a new `Instance` object and the only verification of the script path is performed in "plugins/base.py:222": ``` if not script.startswith("/"): log.error("Relative paths cannot be used in script_pre or script_post. " \ + "Use ${i:PROFILE_DIR}.") return False ``` So the only requirement is that an absolute path is passed. Thus scripts under control of an unprivileged user can be passed here. This allows for a local root exploit.
This issue has been addressed in the following products: Red Hat Enterprise Linux 9 Via RHSA-2024:10384 https://access.redhat.com/errata/RHSA-2024:10384