diff --git a/.gitignore b/.gitignore index b137fbd..1719a63 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ xrdp-cvs-03-17-2010.tar.gz /xrdp-0.10.4.tar.gz /xrdp-0.10.5.tar.gz /xrdp-0.10.6.tar.gz +/xrdp-0.10.6.1.tar.gz diff --git a/README.md b/README.md index 6d28731..d834e23 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ Downgrade from 0.10.x to 0.9.x == - Version 0.10.x requires different permissions of `/run/xrdp` directory than version 0.9.x. When 0.10.x is fully uninstalled, this directory is removed and subsequent installation of 0.9.x should work fine. @@ -12,7 +11,6 @@ changed to 1777 beforehand. Unprivileged xrdp user in 0.10.2 and up == - Recent builds of xrdp (0.10.2 and above) create local unprivileged xrdp user, which is used to run xrdp daemon. Script `/usr/share/xrdp/xrdp-chkpriv` checks whether `/etc/xrdp/key.pem`, `/etc/xrdp/cert.pem` and `/etc/xrdp/rsakeys.ini` @@ -27,7 +25,6 @@ permissions. Restarts == - Service restarts after RPM package upgrades have been disabled on purpose. This is to avoid a situation where an update is performed from within a session running on xrdp, which can then cause dnf to only perform part of the @@ -40,14 +37,12 @@ Wayland do. xorgxrdp == - Note that xorgxrdp is not installed and configured by default. Each build depends on specific binary version of Xorg. If you wish to use it, install it by hand or its glamor build. SELinux == - You may need to install xrdp-selinux package in order to get the required SELinux policy that will allow xrdp and associated processes to run successfully if SELinux is enabled. On versions of Fedora and RHEL that support @@ -56,16 +51,23 @@ weak dependencies, xrdp-selinux will be a recommended package. **WARNING**: The policy module contains a rule that permits unconfined_service_t processes to transition into unconfined_t. If xrdp is not the only service that runs as unconfined_service_t on your system, this policy -will allow any other such service to transition as well. +will allow any other such service to transition as well. This transition is +exercised on every xrdp session (see below), not just latent in the policy. -Default configuration in `/etc/pam.d/xrdp-sesman` uses password-auth for auth, -account, password and session. This may result in an incorrect context for the -processes in the session. Please adjust this file to match your desktop -environment. An example for Gnome desktop is given in the file. +The default `/etc/pam.d/xrdp-sesman` configuration invokes `pam_selinux.so`, +`pam_loginuid.so`, `pam_namespace.so` and `pam_keyinit.so` around the shared +`password-auth` stack, so session processes get the correct `unconfined_t` +context instead of remaining `unconfined_service_t` (rhbz#2499948). + +If you are running a GNOME session over xrdp, comment out the generic block +in `/etc/pam.d/xrdp-sesman` and uncomment the Gnome-specific block instead. +This routes auth/session handling through `gdm-password`, which already +carries the correct SELinux/session ordering and additionally unlocks GNOME +Keyring automatically at login, so you won't be prompted to unlock it a +second time inside the session. TigerVNC >= 1.8.0 == - TigerVNC 1.8.0 enables clipboard support by default (i.e. no need to run vncconfig), which may cause disconnections in xrdp. To avoid the issue, these can be added to [Xvnc] stanza in `/etc/xrdp/sesman.ini`: @@ -80,19 +82,23 @@ Of course, cut and paste support will not work with these set. Runlevel == - If the system is configured to boot into graphical target, you may experience problems with xrdp Gnome sessions. In order to avoid this, put the system into multi user target. Like this: ``` systemctl set-default multi-user.target ``` - Then reboot. +GNOME on X11 is no longer part of Fedora, so GNOME is no longer a supported +desktop for xrdp sessions on Fedora. If you need RDP access to a GNOME +desktop, use GNOME's built-in headless GNOME Remote Desktop instead of xrdp - +it speaks RDP natively, is Wayland-based, and doesn't need any of the +X11/PAM workarounds this document describes. xrdp remains the right choice +for XFCE, KDE Plasma, and other X11-based desktops on Fedora. + VSOCK == - An example of a how to set up xrdp with VSOCK can be found here: https://bugzilla.redhat.com/show_bug.cgi?id=1787953#c22 @@ -102,7 +108,6 @@ updates are already shipped, but in a current, JavaScript format. KDE Plasma == - If you are using plasma-workspace package with xrdp, be sure to install plasma-workspace-x11 to get full functionality. See this for more details: diff --git a/sources b/sources index bdcd314..b24fbd2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xrdp-0.10.6.tar.gz) = 4631162f8a35ee358238e52882964819c39067b2337f2affecae28ca53008e4dae455e0b59932724c222af8016c5b8a638bb455d31dfdf0774f6558e79876781 +SHA512 (xrdp-0.10.6.1.tar.gz) = 14fc2bdc7d450b0194d48244450fee2dc40d248bf0d7d64538959827919d517bda90cda5985014e6b5adf101cbb584e83cf72e5181adcff78b3131653937e108 diff --git a/xrdp-0.10.6-sesman-ini.patch b/xrdp-0.10.5-sesman-ini.patch similarity index 63% rename from xrdp-0.10.6-sesman-ini.patch rename to xrdp-0.10.5-sesman-ini.patch index 0b71f1d..493e758 100644 --- a/xrdp-0.10.6-sesman-ini.patch +++ b/xrdp-0.10.5-sesman-ini.patch @@ -18,18 +18,3 @@ ; Leave the rest parameters as-is unless you understand what will happen. param=-config param=xrdp/xorg.conf -diff -rupN xrdp-0.10.6-v/sesman/sesman.ini.in xrdp-0.10.6/sesman/sesman.ini.in ---- xrdp-0.10.6-v/sesman/sesman.ini.in 2026-05-22 04:53:40.290862163 +1000 -+++ xrdp-0.10.6/sesman/sesman.ini.in 2026-05-22 04:58:24.490852336 +1000 -@@ -170,7 +170,10 @@ param=Xvnc - param=-bs - param=-nolisten - param=tcp --param=-localhost -+# Unix domain socket is default, close TCP -+#param=-localhost -+param=-rfbport -+param=-1 - param=-dpi - param=96 - diff --git a/xrdp-sesman.pamd b/xrdp-sesman.pamd index a23efb0..cf8ef8a 100644 --- a/xrdp-sesman.pamd +++ b/xrdp-sesman.pamd @@ -1,13 +1,30 @@ #%PAM-1.0 -# Generic Fedora config +# Generic Fedora/RHEL config - use this unless you are running xrdp +# sessions into a GNOME desktop, in which case use the Gnome-specific +# config below instead, which also unlocks GNOME Keyring automatically. auth include password-auth account include password-auth password include password-auth -session include password-auth + +# pam_selinux.so close must be the first session rule so any +# prior context is torn down before we set up the new one. +session required pam_selinux.so close session required pam_loginuid.so +# pam_selinux.so open must run before any module below that +# should execute in the user's context. Without this pair, +# session processes are left running as unconfined_service_t +# instead of unconfined_t. See rhbz#2499948. +session required pam_selinux.so open +session required pam_namespace.so +session optional pam_keyinit.so force revoke +session include password-auth session optional pam_lastlog.so silent -# Gnome specific Fedora config +# Gnome specific config. Uncomment this block and comment out the +# generic block above if you are running xrdp sessions into a GNOME +# desktop. This uses GDM's own PAM stack, which already includes the +# correct pam_selinux.so/pam_namespace.so ordering and additionally +# unlocks GNOME Keyring automatically at login. #auth include gdm-password #account include gdm-password #password include gdm-password diff --git a/xrdp.spec b/xrdp.spec index c4c1b1b..e4066cc 100644 --- a/xrdp.spec +++ b/xrdp.spec @@ -22,8 +22,8 @@ Summary: Open source remote desktop protocol (RDP) server Name: xrdp Epoch: 1 -Version: 0.10.6 -Release: 2%{?dist} +Version: 0.10.6.1 +Release: 3%{?dist} # Automatically converted from old format: ASL 2.0 and GPLv2+ and MIT - review is highly recommended. License: Apache-2.0 AND GPL-2.0-or-later AND LicenseRef-Callaway-MIT URL: http://www.xrdp.org/ @@ -38,14 +38,13 @@ Source7: xrdp-polkit-1.rules Source8: %{name}-tmpfiles.conf Source9: %{name}.sysusers Patch0: xrdp-0.10.2-sesman.patch -Patch1: xrdp-0.10.3-xrdp-ini.patch Patch2: xrdp-0.10.1-service.patch Patch3: xrdp-0.10.0-scripts-libexec.patch Patch4: xrdp-0.9.6-script-interpreter.patch Patch5: xrdp-0.9.16-arch.patch Patch6: xrdp-0.9.18-vnc-uninit.patch %if 0%{?fedora} >= 32 || 0%{?rhel} >= 8 -Patch8: xrdp-0.10.6-sesman-ini.patch +Patch8: xrdp-0.10.5-sesman-ini.patch %endif BuildRequires: make @@ -351,6 +350,18 @@ fi %{_datadir}/selinux/*/%{name}.pp %changelog +* Sat Jul 18 2026 Bojan Smojver - 1:0.10.6.1-3 +- Fix bug #2499948 + +* Tue Jul 07 2026 Bojan Smojver - 1:0.10.6.1-1 +- Update to 0.10.6.1 +- CVE-2026-41252, CVE-2026-41521, CVE-2026-44178, CVE-2026-42218 +- CVE-2026-44978, CVE-2026-54538, CVE-2026-55238, CVE-2026-55626 +- CVE-2026-55639, CVE-2026-55645 + +* Sat Jun 13 2026 Yaakov Selkowitz - 1:0.10.6-3 +- Rebuilt for openssl 4.0 + * Fri May 22 2026 Bojan Smojver - 1:0.10.6-2 - close TCP port in default Xvnc config, Unix domain socket only