From 0a329ef7316777be7b2b66df05b8b5ff94a72701 Mon Sep 17 00:00:00 2001 From: peijiankang Date: Mon, 22 May 2023 11:18:55 +0800 Subject: [PATCH] fix createuser critical vulnerabilities (cherry picked from commit 9b73063c2ac0ba3f713f34b9bf7bc06741eb1064) --- ...rUserPasswd-critical-vulnerabilities.patch | 0 fix-createuser-critical-vulnerabilities.patch | 53 +++++++++++++++++++ ukui-control-center.spec | 25 +++------ 3 files changed, 61 insertions(+), 17 deletions(-) rename 0013-fix-critical-vulnerabilities.patch => fix-changeOtherUserPasswd-critical-vulnerabilities.patch (100%) create mode 100644 fix-createuser-critical-vulnerabilities.patch diff --git a/0013-fix-critical-vulnerabilities.patch b/fix-changeOtherUserPasswd-critical-vulnerabilities.patch similarity index 100% rename from 0013-fix-critical-vulnerabilities.patch rename to fix-changeOtherUserPasswd-critical-vulnerabilities.patch diff --git a/fix-createuser-critical-vulnerabilities.patch b/fix-createuser-critical-vulnerabilities.patch new file mode 100644 index 0000000..bc86f36 --- /dev/null +++ b/fix-createuser-critical-vulnerabilities.patch @@ -0,0 +1,53 @@ +From 50f91cb252eea20b210fd6acaa12baa95a5b1e3b Mon Sep 17 00:00:00 2001 +From: peijiankang +Date: Mon, 22 May 2023 11:13:49 +0800 +Subject: [PATCH] fix createuser critical vulnerabilities + +--- + plugins/account/userinfo/userinfo.cpp | 6 +----- + registeredQDbus/sysdbusregister.cpp | 5 +++++ + 2 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/plugins/account/userinfo/userinfo.cpp b/plugins/account/userinfo/userinfo.cpp +index e9ee51c..2393366 100644 +--- a/plugins/account/userinfo/userinfo.cpp ++++ b/plugins/account/userinfo/userinfo.cpp +@@ -934,7 +934,6 @@ void UserInfo::createUser(QString username, QString pwd, QString pin, int atype) + return; + } + +- tmpSysinterface->call("setPid", QCoreApplication::applicationPid()); + tmpSysinterface->call("createUser", username, username, atype, DEFAULTFACE, pwd); + + delete tmpSysinterface; +@@ -1251,10 +1250,7 @@ void UserInfo::changeUserPwd(QString pwd, QString username){ + qCritical() << "Create Client Interface Failed When : " << QDBusConnection::systemBus().lastError(); + return; + } +- QDBusReply reply = tmpSysinterface->call("setPid", QCoreApplication::applicationPid()); +- if (reply.isValid()){ +- tmpSysinterface->call("changeOtherUserPasswd", username, pwd); +- } ++ tmpSysinterface->call("changeOtherUserPasswd", username, pwd); + + delete tmpSysinterface; + tmpSysinterface = nullptr; +diff --git a/registeredQDbus/sysdbusregister.cpp b/registeredQDbus/sysdbusregister.cpp +index 077c8d6..bfe267e 100644 +--- a/registeredQDbus/sysdbusregister.cpp ++++ b/registeredQDbus/sysdbusregister.cpp +@@ -211,6 +211,11 @@ int SysdbusRegister::changeOtherUserPasswd(QString username, QString pwd){ + } + + int SysdbusRegister::createUser(QString name, QString fullname, int accounttype, QString faceicon, QString pwd){ ++ //密码校验 ++ QDBusConnection conn = connection(); ++ QDBusMessage msg = message(); ++ _id = conn.interface()->servicePid(msg.service()).value(); ++ + if (_id == 0){ + return -1; + } +-- +2.39.1 + diff --git a/ukui-control-center.spec b/ukui-control-center.spec index 6311d54..1d2af8e 100644 --- a/ukui-control-center.spec +++ b/ukui-control-center.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: ukui-control-center Version: 3.0.4 -Release: 21 +Release: 22 Summary: utilities to configure the UKUI desktop License: GPL-2+ URL: http://www.ukui.org @@ -18,7 +18,8 @@ Patch09: 0009-Fix-the-resolution-donotsave-button-fails.patch Patch10: 0010-Fix-the-problem-of-scrambled-shortcut-keys.patch Patch11: 0011-Fix-terminal-garbled-characters.patch Patch12: ukui-control-center-3.0.4-fix-invalid-automatic-login.patch -Patch13: 0013-fix-critical-vulnerabilities.patch +Patch13: fix-changeOtherUserPasswd-critical-vulnerabilities.patch +Patch14: fix-createuser-critical-vulnerabilities.patch BuildRequires: qt5-qtsvg-devel BuildRequires: qt5-qtbase-devel @@ -115,20 +116,7 @@ Suggests: ukui-settings-daemon interface properties, screen resolution, and other UKUI parameters. %prep -%setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 +%autosetup -n %{name}-%{version} -p1 %build qmake-qt5 @@ -188,8 +176,11 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon May 22 2023 peijiankang - 3.0.4-22 +- fix createuser critical vulnerabilities + * Mon May 15 2023 peijiankang - 3.0.4-21 -- fix critical vulnerabilities +- fix changeOtherUserPasswd critical vulnerabilities * Tue Jan 10 2023 huayadong - 3.0.4-20 - repair installation %post warning