From cdf6b64848cfc05ba9793e0e9402f6ee22fd6aa9 Mon Sep 17 00:00:00 2001 From: yanjianqing Date: Fri, 29 Mar 2024 10:54:51 +0800 Subject: [PATCH] Fix CVE-2024-0822 --- CVE-2024-0822.patch | 71 +++++++++++++++++++++++++++++++++++++++++++++ ovirt-engine.spec | 8 ++++- 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 CVE-2024-0822.patch diff --git a/CVE-2024-0822.patch b/CVE-2024-0822.patch new file mode 100644 index 0000000..06b29a4 --- /dev/null +++ b/CVE-2024-0822.patch @@ -0,0 +1,71 @@ +From 7c60429f6c7a7c132725a789c8901aa5f29cad46 Mon Sep 17 00:00:00 2001 +From: Martin Perina +Date: Tue, 5 Mar 2024 10:10:37 +0800 +Subject: [PATCH] CVE-2024-0822 + +commit 08daf9d2f17024d603a241cca85d00adf153a2f2 upstream + +Disable execution of CreateUserSession from GWT code + +CreateUserSesssion should be executed only as a part of login flow, so +explicitly disable execution from GWT code. + +Signed-off-by: Martin Perina +--- + .../server/gwt/GenericApiGWTServiceImpl.java | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java +index 476a018..00a886d 100644 +--- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java ++++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java +@@ -2,6 +2,7 @@ package org.ovirt.engine.ui.frontend.server.gwt; + + import java.io.IOException; + import java.util.ArrayList; ++import java.util.Arrays; + import java.util.List; + import java.util.UUID; + import java.util.regex.Pattern; +@@ -17,6 +18,7 @@ import org.ovirt.engine.core.common.action.ActionParametersBase; + import org.ovirt.engine.core.common.action.ActionReturnValue; + import org.ovirt.engine.core.common.action.ActionType; + import org.ovirt.engine.core.common.constants.SessionConstants; ++import org.ovirt.engine.core.common.errors.EngineFault; + import org.ovirt.engine.core.common.interfaces.BackendLocal; + import org.ovirt.engine.core.common.queries.QueryParametersBase; + import org.ovirt.engine.core.common.queries.QueryReturnValue; +@@ -149,6 +151,14 @@ public class GenericApiGWTServiceImpl extends OvirtXsrfProtectedServiceServlet i + ArrayList multipleParams, boolean isRunOnlyIfAllValidationPass, boolean isWaitForResult) { + log.debug("Server: RunMultipleAction invoked! [amount of actions: {}]", multipleParams.size()); //$NON-NLS-1$ + ++ // CreateUserSession should never be invoked from GWT code ++ if (actionType == ActionType.CreateUserSession) { ++ ActionReturnValue error = new ActionReturnValue(); ++ error.setSucceeded(false); ++ error.setFault(new EngineFault(new RuntimeException("Command cannot be executed from client"))); //$NON-NLS-1$ ++ return Arrays.asList(error); ++ } ++ + String correlationId = CorrelationIdTracker.getCorrelationId(); + for (ActionParametersBase params : multipleParams) { + params.setSessionId(getEngineSessionId()); +@@ -168,6 +178,15 @@ public class GenericApiGWTServiceImpl extends OvirtXsrfProtectedServiceServlet i + ActionParametersBase params) { + log.debug("Server: RunAction invoked!"); //$NON-NLS-1$ + debugAction(actionType, params); ++ ++ // CreateUserSession should never be invoked from GWT code ++ if (actionType == ActionType.CreateUserSession) { ++ ActionReturnValue error = new ActionReturnValue(); ++ error.setSucceeded(false); ++ error.setFault(new EngineFault(new RuntimeException("Command cannot be executed from client"))); //$NON-NLS-1$ ++ return error; ++ } ++ + params.setSessionId(getEngineSessionId()); + if (params.getCorrelationId() == null) { + params.setCorrelationId(CorrelationIdTracker.getCorrelationId()); +-- +2.27.0 + diff --git a/ovirt-engine.spec b/ovirt-engine.spec index 18563a6..c7d2efd 100644 --- a/ovirt-engine.spec +++ b/ovirt-engine.spec @@ -176,7 +176,7 @@ getent passwd %1 >/dev/null || useradd -r -u %2 -g %3 -c %5 -s /sbin/nologin -d Name: ovirt-engine Version: 4.4.4.1 -Release: 6 +Release: 7 Summary: Management server for Open Virtualization Group: %{ovirt_product_group} License: Apache 2.0 @@ -197,6 +197,8 @@ Patch4: 0004-fit-cluster-can-not-find-error-under-aarch64-platform.patch Patch5: 0005-fix-interface-report-an-error-when-emulatedMachine-is-null.patch Patch6: 0007-add-config-item-for-openeuler.patch Patch7: CVE-2020-10775.patch +Patch8: CVE-2024-0822.patch + BuildArch: noarch BuildRequires: assertj-core >= 2.2.0 @@ -645,6 +647,7 @@ Setup imageio service. %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 sed -i '87s/@Test/\/\/@Test/g' backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/builder/vminfo/LibvirtVmXmlBuilderTest.java sed -i '88s/@MockedConfig/\/\/@MockedConfig/g' backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/builder/vminfo/LibvirtVmXmlBuilderTest.java sed -i '121s/@Test/\/\/@Test/g' backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddClusterCommandTest.java @@ -1293,6 +1296,9 @@ fi %{engine_data}/setup/bin/ovirt-engine-health %changelog +* Fri Mar 29 2024 yanjianqing - 4.4.4.1-7 +- Fix CVE-2024-0822 + * Mon Aug 29 2022 jiangxinyu - 4.4.4.1-6 - Remove OVN/OVS support -- Gitee