openSUSE 16: libzypp / libzypp-devel / zypper / zypper-aptitude / zypper-log / etc (openSUSE-SU-2026:21808-1)
| Source | Link |
|---|---|
| bugzilla | www.bugzilla.suse.com/1257249 |
| bugzilla | www.bugzilla.suse.com/1271730 |
| bugzilla | www.bugzilla.suse.com/1272534 |
| bugzilla | www.bugzilla.suse.com/1273242 |
| bugzilla | www.bugzilla.suse.com/1274091 |
| bugzilla | www.bugzilla.suse.com/1274625 |
| bugzilla | www.bugzilla.suse.com/1277790 |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The package checks in this plugin were extracted from
# openSUSE Security Update openSUSE-SU-2026:21808-1. The text itself
# is copyright (C) SUSE.
##
include('compat.inc');
if (description)
{
script_id(344663);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/09/11");
script_name(english:"openSUSE 16: libzypp / libzypp-devel / zypper / zypper-aptitude / zypper-log / etc (openSUSE-SU-2026:21808-1)");
script_set_attribute(attribute:"synopsis", value:
"The remote openSUSE host is missing a security update.");
script_set_attribute(attribute:"description", value:
"The remote openSUSE 16 host has packages installed that are affected by a vulnerability as referenced in the openSUSE-
SU-2026:21808-1 advisory.
Security issue fixed:
- invalidating legacy libzypp unsigned-repository cache state [LIBZYPP-LEGACY-CACHE-01] (bsc#1274625).
Non security issues fixed:
- Econf parser adds tags in drop-in files outside any section to [main] (bsc#1272534).
- Need zypper option to disable services to fix Dockerfile builds in OBS (bsc#1257249).
- zypper loads repository data and installed packages prior to checking for required arguments
(bsc#1274091).
- Zypper patch doesn't give enough details about conflicts (bsc#1277790).
Changes for libzypp:
Update to version 17.38.1:
- Prevent libgpgme from launching gpg-agents; we don't need them.
- defaultLoadSystem: Hand out the ZYpp::Ptr as return value.
- Log all solver problem rules (bsc#1277790)
The log contains the most relevant problem rule, but sometimes it
helps to know all rules associated with this problem. zypper
shows them on demand as 'detail'. The log now remembers them as
well.
- Replace popen cat/zcat with solv_xfopen for testcase loaders
(fixes #749)
- repoGpgCheck: Strictly follow the repo_gpgcheck setting
(bsc#1274625)
There's been a legacy exception for unsigned repositories which
were explicitly accepted in the past. After switching the
repo_gpgcheck from off to on, they were allowed to stay unsigned
until a first signed version was retrieved. From there on the
handling was strict.
Now the handling is strict as soon as the repo_gpgcheck turned
on. The next set of metadata retrieved must be signed.
- Iniparser: each new file starts in the unnamed section
(bsc#1272534)
- Fix hasCredentials() to require both username AND password to
be non-empty (bsc#1273242)
This avoids an unnecessary 2nd 401 response sending just the
username in case the username but no password is known. Now it
immediately fetches the credentials from disk if no password is
known.
- GPG Key hints in repoindex.xml require at least a long id to
allow auto-import (bsc#1271730)
The short Id (32bit/8byte) is not considered to be a safe
identifier for a gpg key. A long id (64bit/16byte) or even better
the full fingerprint is needed to identify the key.
- zypp: Improve Testcase Loading for MCP Tools.
Changes for zypper:
Update to version 1.14.99:
- Show solver problem details per default in not-interactive mode
(bsc#1277790)
This way they see all details when capturing zypper's output
because the (d)etail button can't be pressed in not-interactive
mode.
- Add --servicesd-dir global option to relocate
/etc/zypp/services.d (bsc#1257249)
- info: check for missing positional args before systemSetup
(bsc#1274091)
- Remove deprecated installRecommends option from zypper.conf.
The system wide default for all libzypp based applications is
defined in zypp.conf(5). It is not recommended to define this in
zypper exclusively.
Tenable has extracted the preceding description block directly from the SUSE security advisory.
Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1257249");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1271730");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1272534");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1273242");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1274091");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1274625");
script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1277790");
script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
script_set_attribute(attribute:"risk_factor", value:"Critical");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vuln_publication_date", value:"2026/09/08");
script_set_attribute(attribute:"patch_publication_date", value:"2026/09/08");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/11");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libzypp");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libzypp-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:zypper");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:zypper-aptitude");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:zypper-log");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:zypper-needs-restarting");
script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:16.0");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"SuSE Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/SuSE/release", "Host/SuSE/rpm-list");
exit(0);
}
include('rpm.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_release = get_kb_item('Host/SuSE/release');
if (isnull(os_release) || os_release =~ "^(SLED|SLES)") audit(AUDIT_OS_NOT, 'openSUSE');
var _os_ver = pregmatch(pattern: "^SUSE([\d.]+)", string:os_release);
if (isnull(_os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'openSUSE');
_os_ver = _os_ver[1];
if (os_release !~ "^(SUSE16\.0)$") audit(AUDIT_OS_RELEASE_NOT, 'openSUSE', '16.0', os_release);
if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 's390' >!< cpu && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'openSUSE ' + _os_ver, cpu);
var pkgs = [
{'reference':'libzypp-17.38.15-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'libzypp-devel-17.38.15-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'zypper-1.14.101-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'zypper-aptitude-1.14.101-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'zypper-log-1.14.101-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
{'reference':'zypper-needs-restarting-1.14.101-160000.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE}
];
var flag = 0;
foreach package_array ( pkgs ) {
var reference = NULL;
var _release = NULL;
var _cpu = NULL;
var rpm_spec_vers_cmp = NULL;
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (!empty_or_null(package_array['release'])) _release = package_array['release'];
if (!empty_or_null(package_array['cpu'])) cpu = package_array['cpu'];
if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
if (reference && _release) {
if (rpm_check(release:_release, cpu:_cpu, reference:reference, rpm_spec_vers_cmp:rpm_spec_vers_cmp)) flag++;
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : rpm_report_get()
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'libzypp / libzypp-devel / zypper / zypper-aptitude / zypper-log / etc');
}
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
11 Sep 2026 00:00Current