This week's Linux security updates span five major distributions, and a few of the CVE counts are worth pausing on. The standout, by a mile, is openSUSE Tumbleweed cramming 353 fixes into a single chromium and chromedriver update with no individual severity scores attached. Debian led with a Ruby patch covering 19 issues and an rsync update with 35 fixes, while Red Hat shipped three Critical OpenShift patches out of 28 total advisories. Fedora spread its fixes in three waves across releases 43, 44, and 45, and Rocky Linux, SUSE, and the rest rounded out a busy patching week.
Linux security roundup: openSUSE drags 353 CVEs into one chromium update, RHEL ships three Critical patches
Debian, Fedora, Red Hat, Rocky Linux, and SUSE all pushed fresh security updates this week. The CVE counts range from a handful to the kind that make you reach for the upgrade command and then reconsider.
This week's batch spans five major distributions, and a few of the numbers are worth pausing on. The standout, by a mile, is openSUSE Tumbleweed cramming 353 fixes into a single chromium and chromedriver update.
Not every distro is being generous. Debian shipped its own round of advisories, with the Ruby interpreter update leading the way at 19 fixed issues. Those span IMAP command injection, denial of service, information disclosure, and arbitrary code execution. rsync trails closely with 35 fixes too, though it carries a wrinkle worth knowing before you run your upgrade command.
The big numbers
The openSUSE chromium bump (version 156.0.8078.47) is a 353-CVE cleanup with no individual scores attached, so you're taking it on faith. That usually means Google shipped a massive batch and SUSE just swept it all in. It's worth the faith.
Debian splits this batch across two tracks: the stable trixie release and the long-term-support bookworm line. The version string that matters depends entirely on which OS you actually run. Beyond Ruby, you've got rsync 3.5.0 on bookworm (DLA 4888-1), a Linux kernel update with three CVEs for privilege escalation and information leaks, a LibreOffice buffer overflow in dBASE file handling, and the cjose library picking up two heap-corruption issues. There's also a vim advisory, but that one is a build regression that left s390x binaries broken, so zero real CVEs there.
Red Hat's window is its own beast. Three Critical advisories for Open landed together: OpenShift 4.19.55, 4.20.46, and 4.21.42. If you run Kubernetes on Red Hat's platform, you now have three separate streams to patch, and it adds up to 28 advisories total, split as 3 Critical, 22 Important, and 3 Moderate.
The remainder is standard RHEL housekeeping. gdb is patched four times across different channels, which is a reminder that debugging tools trip over their own bugs. Keycloak gets a double serving since both container images and the Operator are being updated, and Ruby is split three ways, including an Important fix aimed at the aging RHEL 7 extended lifecycle channel. Every entry links to CVEs with actual CVSS scores, so you can sort the noise from what actually bites your environment.
Fedora's triple drop and the oddities
Fedora rolled out updates between November 8 and 9, and the timestamps reveal something telling: they dropped in three waves across Fedora 43, 44, and 45 at once. Most fixes are the same ones retold three times. The largest cluster is Qt and its MinGW friends, with Fedora backporting a pile of CVEs into the Windows builds. qtbase, qtdeclarative, qtwebkit, harfbuzz, freetype, expat, glib-networking, and cfitsio all got patched together.
One of those will make you raise an eyebrow. The cfitsio update (CVE-2026-115504) closes an arbitrary code execution hole triggered by a tuned FITS file, which means you're almost certainly not opening suspicious astronomy images at 2 a.m. But the hole is closed now anyway.
PCRE2 is the reminder of how much code still runs on it: eight CVEs spanning out-of-bounds writes, memory corruption in the JIT matcher, and denial of service through malformed UTF data. The Jackson Java stack got the same cross-package treatment, seven CVEs fanned across core, databind, and annotations, all bumped to 2.18.12. Parse JSON anywhere in Java, and you're covered.
Rocky Linux kept it quieter, pushing four updates at RHEL 8. The GIMP update goes well past the image editor itself, also carrying the legacy Python 2 stack: python2-pycairo, pygtk2, pygobject2, and the module wrappers, so anyone pinning a 2.8 GIMP to Python 2 should clear this off the list. The Go toolset covers golang and the delve debugger, while the two moderate hits are protobuf-c and mod_auth_openidc 2.3, the latter landing alongside cjose for web teams running that OpenID Connect Apache module. One oddity worth flagging: two errata carry a 2026 identifier while the protobuf-c and mod_auth_openidc entries read 2023. Probably just tracker quirks, but sorting the list by year looks a little off.
And then there's the rsync callback. Fedora shipped 3.5.2 with a self-inflicted regression baked in, so that follow-up is mostly maintainers scrubbing the mess the first release made. Somewhere a release engineer is not having a good week.
Keep in mind that every distribution here is telling you to prioritize differently. SUSE's moderate-rated packages include MariaDB (22 CVEs, 8.9 highest), and the cross-package CVEs point at shared dependencies you may not have thought about. CVE-2026-78669 ripples across the Google guest agent, kubevirt, and the containerized data importer, while CVE-2026-111943 turns up in gitoxide, docker-compose, and go1.27.
A Detailed Breakdown of the Updates
Debian GNU/Linux
Debian shipped another round of security advisories this week, and a couple of these carry enough CVEs to make you stop scrolling. The Ruby interpreter update tops the list with 19 fixed issues, spanning IMAP command injection, denial of service, information disclosure, and arbitrary code execution. rsync isn't behind by much with 35 fixes, but that one has a catch worth flagging before you run your upgrade command.
A few entries here aren't really about remote exploits. The vim advisory is a build regression from the previous patch that left s390x binaries broken, and the Linux kernel update covers three CVEs for privilege escalation, denial of service, and information leaks. LibreOffice gained a patch for a buffer overflow in its dBASE file handling, while the cjose library picked up two heap-corruption issues around JSON Web Encryption.
Watch the distribution tracks when you apply these. This batch splits between the stable (trixie) release and the long-term-support (bookworm) line, so the version string that matters depends on which OS you actually run.
| Package | Advisory | Issue | CVEs | Fixed version | Track |
|---|---|---|---|---|---|
| ruby3.3 | DSA 6614-1 | IMAP injection, DoS, info disclosure, arbitrary code execution | 19 | 3.3.13-0+deb13u1 | trixie (stable) |
| cjose | DLA 4887-1 | Heap overflow on decrypt; plaintext read/modification on encrypt | 2 | 0.6.2.1-1+deb12u2 | bookworm (LTS) |
| libreoffice | DSA 6615-1 | Buffer overflow in dBASE file handling; arbitrary code execution | 1 | 4:25.2.3-2+deb13u9 | trixie (stable) |
| vim | DSA 6600-2 | Build regression breaking s390x binary packages | 0 (bug 1152930) | 2:9.1.1230-2+deb13u2 | trixie (stable) |
| rsync | DLA 4888-1 | Privilege escalation, access bypass, info disclosure, DoS, arbitrary code execution | 35 | 3.5.0+ds1-0+deb12u1 | bookworm (LTS) |
| linux | DSA 6616-1 | Privilege escalation, DoS, information leaks | 3 | 6.12.116-1 | trixie (stable) |
Fedora Linux
Fedora rolled out another wave of security updates between November 8 and 9, and if you peek at the timestamps you'll notice they dropped in three waves across Fedora 43, 44, and 45 at once. Most of the changes are the same fixes, retold three times. The shape of the batch tells you what's on everyone's mind: Windows-targeted libraries, and a couple of widely used parsing stacks.
The biggest cluster is Qt and its MinGW friends. Fedora took a pile of CVEs and backported them into the Windows builds, so you get qtbase, qtdeclarative, and qtwebkit plus harfbuzz, freetype, expat, glib-networking, and cfitsio all getting patched together. Some of these are the usual memory-safety problems, out-of-bounds reads and writes. One crafted XML payload brings things down. The cfitsio update is the kind that makes you raise an eyebrow: arbitrary code execution from a tuned FITS file, which means you're almost certainly not opening suspicious astronomy images at 2 a.m., but the hole is closed now anyway.
PCRE2 got the sort of update that reminds you how much code still runs on it. Eight CVEs in one release, spanning out-of-bounds writes that let an attacker run code, memory corruption in the JIT matcher, and denial of service through malformed UTF data. The Jackson Java stack got the same cross-package treatment, seven CVEs fanned across core, databind, annotations, and the rest, all bumped to 2.18.12. If you parse JSON anywhere in Java, you're covered by the same advisory.
Then there's the stuff that shows up only once. bind took four fixes, including one where crafted DNS packets could burn a server's CPU. Xen shut a privilege-escalation hole in grant copy validation, which matters if you actually run hypervisors. rsync shipped 3.5.2 with a self-inflicted regression baked in, so the second release is mostly maintainers scrubbing the mess the first one made. Python 3.12 picked up fixes for a tarfile extraction trick and a distrusted certificate authority, the latter also rippling through the whole boto3 family. A few others are just version bumps with security attached: pnpm, suricata, copyparty, composer, mtools, and luksmeta.
| Package | Fedora | Version | What it fixes |
|---|---|---|---|
| mingw-qt5-qtbase | 43, 44, 45 | 5.15.18-5 | CVE-2026-101021, 107157, 19248, 11573, 101201 |
| mingw-qt6-qtbase | 43 | 6.10.3-2 | CVE-2026-107157, 19248, 76151 (32-bit build) |
| mingw-qt5-qtdeclarative | 43, 44, 45 | 5.15.18-4 | CVE-2025-12385 |
| mingw-qt5-qtwebkit | 43 | 5.212.0-0.46.alpha4 | CVE-2026-111497 (Brotli decoder) |
| mingw-harfbuzz | 43 | 11.5.1-3 | CVE-2026-113679 (WebAssembly shaper) |
| mingw-freetype | 43 | 2.13.3-4 | CVE-2026-49919 (COLR rendering heap overflow) |
| mingw-expat | 43 | 2.9.0-1 | CVE-2026-115506 (DoS) |
| mingw-glib-networking | 43, 44 | 2.80.1-5 | CVE-2026-103963 (TLS 1.3 session ticket DoS) |
| mingw-cfitsio | 43 | 4.6.4-3 | CVE-2026-115504 (arbitrary code execution) |
| pcre2 | 44, 45 | 10.49 | CVE-2026-86145, 89156, 89157, 89158, 89160, 89161, 89162, 103111 |
| jackson-core / -databind / -annotations / -bom / -modules-base / -jaxrs-providers / -parent / fasterxml-oss-parent | 44 | 2.18.12 (parent 2.18.4 / oss-parent 69) | CVE-2026-68497, 68498, 83557, 89407, 89425, 19032, 91777 |
| perl-Spreadsheet-XLSX | 43, 44, 45 | 0.20 | Regex injection, Perl code execution via crafted XLSX, CPU/mem exhaustion |
| bind | 45 | 9.18.51^git20261102 | CVE-2026-94300, 97313, 96888, 19630 |
| xen | 44 | 4.21.2-5 | XSA-523, CVE-2026-102703, 102704 (grant copy privilege escalation) |
| rsync | 44, 45 | 3.5.2-2 | CVE-2026-119741 + fix for 3.5.2 permission regression |
| python3.12 | 43, 45 | 3.12.16-2 | CVE-2026-114583 (tarfile), 115557 (distrusted CA) |
| python-botocore / -s3transfer / -boto3 | 43 | 1.43.122 / 0.19.3 | Distrust eMudhra intermediate CA certs |
| python-joserfc | 44, 45 | 1.7.7 / 1.8.0 | CVE-2026-119284 (JWS DoS) |
| dnf5 | 44 | 5.4.7.0 | CVE-2026-111253 (D-Bus transaction takeover) |
| NetworkManager-l2tp | 45 | 1.52.6 | CVE-2026-19624, 75131, 93337 |
| nodejs-pnpm12 | 45 | 12.17.0 | CVE-2026-115907 (zip DoS), 115908 (overwrite via symlink) |
| suricata | 44, 45 | 8.0.8 | Upstream security/bugfix release |
| copyparty | 44, 45 | 1.20.26 | CVE-2026-93353 (SFTP volume restriction bypass) |
| gnome-remote-desktop | 44, 45 | 50.2-2 / 51.0-2 | CVE-2026-96541 (unauthenticated RDP handshake) |
| luksmeta | 45 | 11 | CVE-2026-107565, 111555 (LUKS1 metadata corruption) |
| rccl | 44, 45 | 7.1.1-6 / 7.2.0-7 | CVE-2026-43598 (arbitrary code execution) |
| elixir | 43, 44 | 1.19.7 | CVE-2026-75758 (uncontrolled recursion DoS) |
| elixir | 45 | 1.20.5 | CVE-2026-75758 |
| pie | 43 | 1.4.12 | GHSA-4538-pqqf-mv67 |
| pie | 44, 45 | 1.5.5 | GHSA-4538-pqqf-mv67 |
| composer | 43, 44 | 2.11.1 | Token/auth header fixes, vendor-dir escape (GHSA) |
| mtools | 45 | 4.0.50 | Version bump |
| java-21-openjdk / -portable | 43 | 21.0.13.0.9 | October CPU update |
Red Hat Enterprise Linux
Red Hat rolled out a fresh batch of security advisories, and the three Critical ones are the ones to actually care about. Releases 4.19.55, 4.20.46, and 4.21.42 all landed together, so if you run Kubernetes on Red Hat's platform you now have three separate streams to patch. That's a fair number of Critical fixes to cram into a single advisory window.
The rest is mostly standard RHEL package housekeeping. gdb is patched four times across different channels (9.6, 9.2, 10.0, and 9.4 SAP), which is a reminder that debugging tools trip over their own bugs too. qt5-qtbase, curl, rsyslog, python-jwt, resteasy, osbuild-composer, webkit2gtk3, squid:4, plus two ruby modules make up the Important and Moderate remainder. Keycloak gets a double serving, since both the container images and the Operator are being updated.
Ruby is split three ways here: two Moderate module updates for 3.3 and 4.0 on RHEL 9, and an Important fix for ruby on the aging RHEL 7 extended lifecycle channel. Every entry links to CVEs with actual CVSS scores, so you can sort the noise from what actually bites your environment. In total, this is 28 advisories: 3 Critical, 22 Important, and 3 Moderate.
| RHSA ID | Severity | Component | What it is | Target channel |
|---|---|---|---|---|
| 96039 | Important | Keycloak 26.6.9 (images) | New container images | OpenShift Container Platform |
| 96040 | Important | Keycloak 26.6.9 (packages) | New packages | Customer Portal |
| 96097 | Important | gdb | Security update | RHEL 9.6 EUS |
| 96089 | Important | qt5-qtbase | Security update | RHEL 8.8 (SAP, Telecom) |
| 96095 | Important | gdb | Security update | RHEL 9.2 (SAP) |
| 96086 | Important | qt5-qtbase | Security update | RHEL 8.4 (AMC, EUS Long-Life) |
| 96091 | Important | kpatch-patch (5 packages) | Security update | RHEL 9.6 EUS |
| 96090 | Important | kpatch-patch (5 packages) | Security update | RHEL 9.4 (SAP) |
| 96099 | Important | ruby | Security update | RHEL 7 ELRS |
| 96085 | Important | rsyslog | Security update | RHEL 7 ELRS |
| 96098 | Important | gdb | Security update | RHEL 10.0 EUS |
| 96067 | Moderate | ruby | Security update | RHEL 9.8 EUS |
| 95523 | Critical | OpenShift 4.19.55 | Bug fix + security | OpenShift 4.19 |
| 95408 | Critical | OpenShift 4.21.42 | Bug fix + security | OpenShift 4.21 |
| 96084 | Important | python-jwt | Security update | RHEL 7 ELRS |
| 95229 | Important | OpenShift 4.16.75 | Bug fix + security | OpenShift 4.16 |
| 96077 | Important | resteasy | Security update | RHEL 9.2 (SAP) |
| 96076 | Important | osbuild-composer | Security update | RHEL 8.4 (AMC, EUS) |
| 96120 | Moderate | ruby:4.0 module | Security + bug fix + enhancement | RHEL 9 |
| 96068 | Moderate | ruby:3.3 module | Security + bug fix + enhancement | RHEL 9 |
| 96092 | Important | curl | Security update | RHEL 10 |
| 96078 | Important | squid:4 module | Security update | RHEL 8 |
| 96080 | Important | webkit2gtk3 | Security update | RHEL 8 |
| 95103 | Important | OpenShift 4.18.60 | Packages + security | OpenShift 4.18 |
| 96096 | Important | gdb | Security update | RHEL 9.4 (SAP) |
| 96093 | Important | kpatch-patch (2 packages) | Security update | RHEL 9 |
| 95377 | Critical | OpenShift 4.20.46 | Bug fix + security | OpenShift 4.20 |
| 95228 | Important | OpenShift 4.16.75 | Packages + security | OpenShift 4.16 |
Rocky Linux
Rocky Linux pushed four security updates at Rocky Linux 8, and if any of these packages are on your systems you'll want to patch before doing anything else. The batch divides into two "Important" releases and two "Moderate" ones, all funneled through the errata tracker.
The GIMP update goes well past the image editor itself. It also carries the legacy Python 2 stack—python2-pycairo, pygtk2, pygobject2, plus the module wrappers, so anyone pinning a 2.8 GIMP to Python 2 should clear this one off the list. (I'll drop the dash, promise.)
The Go toolset release covers golang and delve, the Go debugger, with the module variants. It's a no-frills update for anyone still building on RHEL 8-era tooling, though the package list repeats its contents four separate times in the official listing, which makes you wonder how many of these you actually need to read.
The two moderate hits are protobuf-c and mod_auth_openidc 2.3, the latter arriving alongside cjose. Web teams running that OpenID Connect Apache module will want the second one in particular.
Every entry points to a CVSS base score from the CVE list, so you can rate the severity yourself rather than trusting the tag. One oddity worth flagging: two errata carry a 2026 identifier while the protobuf-c and mod_auth_openidc entries read 2023. Likely just tracker quirks, but if you sort the list by year it looks a little off.
| Errata ID | Severity | Package(s) | What it actually updates |
|---|---|---|---|
| RSA-2023:6944 | Moderate | protobuf-c | Protocol Buffers C library |
| RSA-2026:95482 | Important | gimp:2.8 plus python2-pycairo, pygtk2, pygobject2 and module variants | GIMP 2.8 editor and its legacy Python 2 bindings |
| RSA-2026:95638 | Important | go-toolset:rhel8 (golang, delve, module variants) | Go toolchain and debugger |
| RSA-2023:6940 | Moderate | mod_auth_openidc:2.3 plus cjose | OpenID Connect Apache module |
SUSE Linux
openSUSE Tumbleweed rolled out another batch of security patches, and this time you have twenty packages to track. Every one lands at "moderate," which is SUSE's way of saying fix it before it makes news. They're all on the GA (General Availability) channel. Most carry a single flaw. A handful picked up three to six. MariaDB swept in 22. And the browser tooling update climbed to 353.
The one to install first is the chromium/chromedriver bump (156.0.8078.47). That is a 353-CVE cleanup, which usually means Google shipped a big batch of fixes and SUSE just dragged them all in. No individual scores are attached, so you are taking it on faith. It is worth the faith, though.
Several vulnerabilities ripple across multiple packages, which points at shared dependencies. CVE-2026-78669 (availability, 7.5) shows up in the Google guest agent, kubevirt 1.8, the containerized data importer, and kubevirt 1.9. CVE-2026-111943 (7.4) turns up in gitoxide, docker-compose, and go1.27. And CVE-2026-111497, a brotli flaw rated 8.1, landed in both the brotli package and the nodejs24/corepack24/npm24 set.
The highest single scores in this round sit on a few older names. The kubevirt 1.8 container-disk update pulls in CVE-2026-84303, which SUSE places at 9.1. The MariaDB batch has several in the 8.8 to 8.9 range. Pillow's image library got hit six ways, with CVE-2026-96778 reading 8.1 on the old CVSS scale and 9.2 on the newer 4.0 scale.
Everything isn't a remote exploit. The openscap fix (CVE-2026-85518) tops out at 6.9 locally, and MariaDB's CVE-2026-61081 is a 2.7 that probably isn't worth waking up for.
| Announcement ID | Package(s) | CVEs fixed | Highest CVSS |
|---|---|---|---|
| openSUSE-SU-2026:12240-1 | google-guest-agent | 1 | 7.5 |
| openSUSE-SU-2026:12238-1 | gitoxide | 1 | 7.4 |
| openSUSE-SU-2026:12237-1 | git-lfs | 4 | N/A (not scored) |
| openSUSE-SU-2026:12241-1 | kubevirt1.8-container-disk (16 pkgs) | 8 | 9.1 |
| openSUSE-SU-2026:12235-1 | containerized-data-importer1.65-api (10 pkgs) | 5 | 8.7 |
| openSUSE-SU-2026:12236-1 | docker-compose | 1 | 7.4 |
| openSUSE-SU-2026:12234-1 | chromedriver/chromium | 353 | N/A (not scored) |
| openSUSE-SU-2026:12239-1 | go1.27 | 1 | 7.4 |
| openSUSE-SU-2026:12233-1 | ca-certificates-mozilla | 1 | 9.1 |
| openSUSE-SU-2026:12232-1 | brotli (13 pkgs) | 1 | 9.2 |
| openSUSE-SU-2026:12251-1 | python313/314-Pillow | 6 | 9.2 |
| openSUSE-SU-2026:12245-1 | libmariadbd-devel/mariadb (10 pkgs) | 22 | 8.9 |
| openSUSE-SU-2026:12246-1 | mihomo | 1 | 7.5 |
| openSUSE-SU-2026:12244-1 | libtirpc-devel (4 pkgs) | 2 | 8.2 |
| openSUSE-SU-2026:12249-1 | libopenscap33 (7 pkgs) | 1 | 6.9 |
| openSUSE-SU-2026:12248-1 | corepack24/nodejs24/npm24 (5 pkgs) | 7 | 9.2 |
| openSUSE-SU-2026:12250-1 | perl-Mozilla-CA | 1 | 7.4 |
| openSUSE-SU-2026:12247-1 | nano | 1 | N/A (not scored) |
| openSUSE-SU-2026:12243-1 | libsndfile-devel (3 pkgs) | 1 | 7.5 |
| openSUSE-SU-2026:12242-1 | kubevirt1.9-container-disk (15 pkgs) | 3 | 7.5 |
How to apply these Linux security updates
Before running any update commands, check which services are currently active on your system. If Nginx or Apache is handling live traffic, schedule a brief maintenance window or use rolling restarts to minimize downtime during the patching process. Desktop users can usually apply these fixes by opening a terminal and running the standard package manager command for their distribution followed by an upgrade flag. A reboot will be necessary if the kernel received updates to ensure the new security modules load correctly.
Power users who rely on command-line tools like jq should verify the patch level after installation. Regression bugs can occasionally break scripts that depend on specific JSON parsing behavior, so a quick test run is worth the few minutes it takes. If you use PackageKit or other GUI package managers and prefer to skip them because they sometimes hang or try to install junk, do not let that stop you from running the command-line equivalent to get these critical patches applied.
Applying these patches requires distribution-specific package management commands. RHEL-based systems typically use dnf update or yum update, while Debian and Ubuntu rely on apt upgrade. SUSE users should run zypper patch to properly address all security advisories, and Slackware administrators can manage updates with upgradepkg or slackpkg. After executing the commands, a reboot is usually necessary for kernel changes to take effect. Finally, review your package manager’s logs to verify that all patches installed successfully and no dependencies were disrupted.
Debian/Ubuntu (apt)
The first thing to do is refresh the local package index; running sudo apt update contacts all configured repositories and pulls in the newest lists of available versions. Skipping this step leaves the system blind to any recent uploads, which explains why “upgrade” sometimes claims there’s nothing to do even after a security advisory has been published. Once the index is current, invoke sudo apt upgrade -y; the -y flag answers every prompt automatically so the process doesn’t pause for user input. This command upgrades all installed packages that have newer versions in the repositories while preserving configuration files.
sudo apt update sudo apt upgrade -y
Fedora/RedHat/Rocky/Alma/Oracle (dnf or yum)
On modern Fedora and recent Red Hat derivatives, dnf is the package manager; older RHEL releases still rely on yum. Begin with a check‑update operation—sudo dnf check-update or sudo yum check-update—to see exactly which packages are awaiting an upgrade. This preview step can be useful for spotting unexpected kernel bumps before they land. To actually apply the updates, run sudo dnf upgrade -y (or sudo yum update if you prefer the older tool). The upgrade command pulls down the new binaries and runs any necessary post‑install scripts, such as rebuilding initramfs when a kernel changes.
sudo dnf check-update sudo dnf upgrade -y
or on older releases
sudo yum check-update sudo yum update
SUSE (zypper)
SUSE’s command line front‑end is called zypper. First execute sudo zypper refresh so that the metadata for all enabled repos gets updated; without this, zypper will happily report “No updates available” even though newer packages sit on the mirror. After a fresh refresh, issue sudo zypper update -y; this upgrades every package to the latest version in the configured repositories and automatically handles service restarts when required.
sudo zypper refresh sudo zypper update -y
