Lucene search
+L

SUSE SLED15: libsolv-devel / libsolv-tools / libsolv-tools-base / libzypp / etc (SUSE-SU-2026:2575-1)

🗓️ 26 Jun 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 21 Views

SUSE SLED/SLES update fixes libsolv and libzypp vulnerabilities including buffer overflows and path traversal.

Related
Refs
Code
ReporterTitlePublishedViews
Family
ATTACKERKB
CVE-2026-48863
16 Jul 202600:46
attackerkb
ATTACKERKB
CVE-2026-44941
2 Jul 202615:19
attackerkb
ATTACKERKB
CVE-2026-9149
20 May 202623:34
attackerkb
ATTACKERKB
CVE-2026-44942
18 Jun 202609:57
attackerkb
ATTACKERKB
CVE-2026-9150
20 May 202623:07
attackerkb
ATTACKERKB
CVE-2026-25707
29 Jun 202610:04
attackerkb
ATTACKERKB
CVE-2026-44933
20 May 202608:51
attackerkb
Tenable Nessus
Amazon Linux 2023 : libsolv, libsolv-demo, libsolv-devel (ALAS2023-2026-1798)
8 Jun 202600:00
nessus
Tenable Nessus
Amazon Linux 2 : libsolv, --advisory ALAS2-2026-3338 (ALAS-2026-3338)
8 Jun 202600:00
nessus
Tenable Nessus
AlmaLinux 10 : libsolv (ALSA-2026:28236)
24 Jun 202600:00
nessus
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The package checks in this plugin were extracted from
# SUSE update advisory SUSE-SU-2026:2575-1. The text itself
# is copyright (C) SUSE.
##

include('compat.inc');

if (description)
{
  script_id(322932);
  script_version("1.2");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/07/08");

  script_cve_id(
    "CVE-2026-9149",
    "CVE-2026-9150",
    "CVE-2026-25707",
    "CVE-2026-44933",
    "CVE-2026-44941",
    "CVE-2026-44942",
    "CVE-2026-48863"
  );
  script_xref(name:"SuSE", value:"SUSE-SU-2026:2575-1");

  script_name(english:"SUSE SLED15: libsolv-devel / libsolv-tools / libsolv-tools-base / libzypp / etc (SUSE-SU-2026:2575-1)");

  script_set_attribute(attribute:"synopsis", value:
"The remote SUSE host is missing one or more security updates.");
  script_set_attribute(attribute:"description", value:
"The remote SUSE Linux SLED15 / SLED_SAP15 / SLES15 / SLES_SAP15 host has packages installed that are affected by
multiple vulnerabilities as referenced in the SUSE-SU-2026:2575-1 advisory.

    This update for libsolv, libzypp, zypper fixes the following issues

    - CVE-2026-9149: Heap buffer overflow in libsolv repo_add_solv via negative maxsize from crafted .solv
    file
      (bsc#1265935).
    - CVE-2026-9150: Stack-based buffer overflow in libsolv's Debian metadata parser when handling
    SHA384/SHA512 checksums
      (bsc#1265938).
    - CVE-2026-25707: Handcrafted repo metadata may cause arbitrary local files to be overwritten
    (bsc#1259802).
    - CVE-2026-44933: scan of the Mandatory signature verification plugin support (bsc#1265223).
    - CVE-2026-44941: path traversal via 'keyhint' (bsc#1267426).
    - CVE-2026-44942: .repo files can have an optional path which can lead to path traversal attacks
    (bsc#1267874).
    - CVE-2026-48863: Fix buffer overflow when parsing EdDSA signature (bsc#1266039).

    Changes in libzypp:

    Updated to version 17.38.13 (35):

    - A .repo files 'path=' entry must not refer to a location
      outside the repo (bsc#1267874, CVE-2026-44942)
      A 'path=' entry may solely denote a sub-directory of the baseurl
      where the metadata are located. A relative path trying to access
      data outside the baseurl is reported and sanitized.
    - Fix potential crash on malformed or malicious repository
      metadata (fixes #740)
    - Repo metadata: discard entries referring to a location outside
      the repo (bsc#1259802, CVE-2026-25707)
      Mirroring those data locally would refer to a location outside
      the repo's local cache directory. Those data entries are reported
      and discarded.
    - zypp.conf: Allow [env] section to add environment variables.
      This feature is designed to enable environment-specific settings
      or debugging options over an extended period. See zypp.conf(5).
    - Prevent configured scripts from escaping the sigcheck directory
      (bsc#1265223, CVE-2026-44933)
    - StringV: guard hasPrefix/hasPrefixCI against reading past the
      view end (fixes #735)
    - Mandatory signature verification plugin support (PED#11922)
    - Fix purge-kernel -rc kernel handling (bsc#1239718)
    - Explicitly_set_pool_DISTTYPE_RPM (fixes #726)
    - Check for trusted key updates when updating the general keyring
      (bsc#1259706)
    - Support multiple MirroredOrigin authorities (bsc#1253193)
    - Workaround doxygen bug: doxygen/doxygen#12057
    - libzypp.spec: Add missing graphviz-gd BuildRequires (boo#1259842)
    - Fix preloader not caching packages from arch specific subrepos
      (bsc#1253740)
    - Deprioritize invalid mirrors (fixes openSUSE/zypper#636)
    - Fix Product::referencePackage lookup (bsc#1259311)
      Use a provided autoproduct() as hint to the package name of the
      release package. It might be that not just multiple versions of
      the same release package provide the same product version, but
      also different release packages.
    - specfile: on fedora use %{_prefix}/share as zyppconfdir if
      %{_distconfdir} is undefined (fixes #693)
      This will set '-DZYPPCONFDIR=%{zyppconfdir}' for cmake.
    - Fall back to a writable location when precaching packages
      without root (bsc#1247948)
    - Prepare a legacy /etc/zypp/zypp.conf to be installed on old distros.
      See the ZYPP.CONF(5) man page for details.
    - Fix runtime check for broken rpm --runposttrans (bsc#1257068)
    - Avoid libcurl-mini4 when building as it does not support ftp
      protocol.
    - Translation: updated .pot file.
    - zypp.conf: follow the UAPI configuration file specification
      (PED-14658)
      In short terms it means we will no longer ship an
      /etc/zypp/zypp.conf, but store our own defaults in
      /usr/etc/zypp/zypp.conf. The systems administrator may choose to
      keep a full copy in /etc/zypp/zypp.conf ignoring our config file
      settings completely, or - the preferred way - to overwrite
      specific settings via /etc/zypp/zypp.conf.d/*.conf overlay files.
      See the ZYPP.CONF(5) man page for details.
    - cmake: correctly detect rpm6 (fixes #689)
    - Use 'zypp.tmp' as temp directory component to ease setting up
      SELinux policies (bsc#1249435)
    - zyppng: Update Provider to current MediaCurl2 download
      approach, drop Metalink ( fixes #682 )

    Changes in libsolv:

    Updated to version 0.7.39:

    - fix solv_chksum_free segfault when called with a NULL pointer
    - made repo_add_solv more robust against corrupt files
      [bsc#1265935] [CVE-2026-9149]
    - fix potential buffer overflow when verifying EdDSA signatures
      [bsc#1266039] [CVE-2026-48863]
    - added limit checks in multiple places to catch overflows
    - reduce the size of the language id cache
    - fixed Debian canon selection
    - fixed dbpath detection in repo_rpmdb_librpm
    - reduced stack usage in repo page compression (needed for musl)
    - fix parsing of sha512 checksums in debian repositories
      [bsc#1265938] [CVE-2026-9150]
    - improve speed of dirpool_add_dir makeing parsing of filelists.xml
      twice as fast
    - fix parsing of recommends in the old Mandriva synthesis format
    - respect the 'default' attribute in environment optionlist in
      the comps parser
    - support suse namespace deps in boolean dependencies [bsc#1258193]
    - support for the Elbrus2000 (e2k) architecture
    - support language() suse namespace rewriting

    Changes in zypper:

    Update to version 1.14.98:

    - Transactional systems: Delegate rw-commands to
      transactional-wrapper if available (jsc#PED-13680, jsc#PED-15607)
      On a transactional system where the root filesystem is mounted
      read-only, zypper commands that modify the system cannot be
      executed directly.
      If the system provides a transactional-wrapper utility, zypper
      will automatically attempt to invoke it. The wrapper
      transparently executes the zypper command within a new, writable
      snapshot and manages the lifecycle of that snapshot based on the
      command's exit status.
      On transactional systems lacking a transactional-wrapper, users
      must manually invoke specialized tools -such as
      transactional-update- to install, update, or remove software.
    - Add --filter-version-change to zypper lu.
      Adds filtering by version change significance to reduce noise in
      update listings. Supports levels: rebuild (hides rebuild-only
      changes) and package (hides all release-only changes).
    - Autorefresh ris-services the way as plugin-services (bsc#1246504)
      It's actually wrong to treat service refreshes different
      depending on the service type. For the purpose of a service it
      makes no difference how the data about the repos to use are
      acquired.
    - Report download progress for command line rpms (fixes #613)
    - Hint to '-vv ref' to see the mirrors used to download the
      metadata (bsc#1257882)
    - Service: Allow 'zypper ls SERVICE ...' to test whether a
      service with this alias is defined (bsc#1252744)
      The command prints an abstract of all services passed on the
      command line. It returns 3-ZYPPER_EXIT_ERR_INVALID_ARGS if some
      argument does not name an existing service.
    - Keep repo data when updating the service settings (bsc#1252744)
    - info: Enhance pattern content table (bsc#1158038)
      Alternatives (multiple packages providing the same requirement)
      are now listed as a single entry in the content table. The entry
      shows either the installed package which satisfies the
      requirement or the requirement itself as type 'Provides'.
      Listing all potential alternatives was miss leading, especially
      if the alternatives were mutual exclusive. It looked like an
      installed pattern had not-installed requirements and it was not
      possible to install all requirements at the same time.

    Original description from SUSE:Maintenance:44536:

    This update for libsolv, libzypp fixes the following issues

    Security issues:

    - CVE-2026-9149: Heap buffer overflow in libsolv repo_add_solv via negative maxsize from crafted .solv
    file
      (bsc#1265935).
    - CVE-2026-9150: Stack-based buffer overflow in libsolv's Debian metadata parser when handling
    SHA384/SHA512 checksums
      (bsc#1265938).
    - CVE-2026-25707: Handcrafted repo metadata may cause arbitrary local files to be overwritten
    (bsc#1259802).
    - CVE-2026-44933: scan of the Mandatory signature verification plugin support (bsc#1265223).
    - CVE-2026-44942: .repo files can have an optional path which can lead to path traversal attacks
    (bsc#1267874).
    - CVE-2026-48863: Fix bufffer overflow when parsing EdDSA signature (bsc#1266039).

    Changes in libzypp:

    Updated to version 17.38.13 (35):

    - Fix potential crash on malformed or malicious repository
      metadata (fixes #740)
    - Repo metadata: discard entries referring to a location outside
      the repo (bsc#1259802, CVE-2026-25707)
      Mirroring those data locally would refer to a location outside
      the repo's local cache directory. Those data entries are reported
      and discarded.
    - zypp.conf: Allow [env] section to add environment variables.
      This feature is designed to enable environment-specific settings
      or debugging options over an extended period. See zypp.conf(5).
    - Prevent configured scripts from escaping the sigcheck directory
      (bsc#1265223, CVE-2026-44933)
    - StringV: guard hasPrefix/hasPrefixCI against reading past the
      view end (fixes #735)
    - Mandatory signature verification plugin support (PED#11922)
    - Fix purge-kernel -rc kernel handling (bsc#1239718)
    - Explicitly_set_pool_DISTTYPE_RPM (fixes #726)
    - Check for trusted key updates when updating the general keyring
      (bsc#1259706)
    - Support multiple MirroredOrigin authorities (bsc#1253193)
    - Workaround doxygen bug: doxygen/doxygen#12057
    - libzypp.spec: Add missing graphviz-gd BuildRequires (boo#1259842)
    - Fix preloader not caching packages from arch specific subrepos
      (bsc#1253740)
    - Deprioritize invalid mirrors (fixes openSUSE/zypper#636)
    - Fix Product::referencePackage lookup (bsc#1259311)
      Use a provided autoproduct() as hint to the package name of the
      release package. It might be that not just multiple versions of
      the same release package provide the same product version, but
      also different release packages.
    - specfile: on fedora use %{_prefix}/share as zyppconfdir if
      %{_distconfdir} is undefined (fixes #693)
      This will set '-DZYPPCONFDIR=%{zyppconfdir}' for cmake.
    - Fall back to a writable location when precaching packages
      without root (bsc#1247948)
    - Prepare a legacy /etc/zypp/zypp.conf to be installed on old distros.
      See the ZYPP.CONF(5) man page for details.
    - Fix runtime check for broken rpm --runposttrans (bsc#1257068)
    - Avoid libcurl-mini4 when building as it does not support ftp
      protocol.
    - Translation: updated .pot file.
    - zypp.conf: follow the UAPI configuration file specification
      (PED-14658)
      In short terms it means we will no longer ship an
      /etc/zypp/zypp.conf, but store our own defaults in
      /usr/etc/zypp/zypp.conf. The systems administrator may choose to
      keep a full copy in /etc/zypp/zypp.conf ignoring our config file
      settings completely, or - the preferred way - to overwrite
      specific settings via /etc/zypp/zypp.conf.d/*.conf overlay files.
      See the ZYPP.CONF(5) man page for details.
    - cmake: correctly detect rpm6 (fixes #689)
    - Use 'zypp.tmp' as temp directory component to ease setting up
      SELinux policies (bsc#1249435)
    - zyppng: Update Provider to current MediaCurl2 download
      approach, drop Metalink ( fixes #682 )

    Changes in libsolv:

    Updated to version 0.7.39:

    - fix solv_chksum_free segfault when called with a NULL pointer
    - made repo_add_solv more robust against corrupt files
      [bsc#1265935] [CVE-2026-9149]
    - fix potential buffer overflow when verifying EdDSA signatures
      [bsc#1266039] [CVE-2026-48863]
    - added limit checks in multiple places to catch overflows
    - reduce the size of the language id cache
    - fixed Debian canon selection
    - fixed dbpath detection in repo_rpmdb_librpm
    - reduced stack usage in repo page compression (needed for musl)
    - fix parsing of sha512 checksums in debian repositories
      [bsc#1265938] [CVE-2026-9150]
    - improve speed of dirpool_add_dir makeing parsing of filelists.xml
      twice as fast
    - fix parsing of recommends in the old Mandriva synthesis format
    - respect the 'default' attribute in environment optionlist in
      the comps parser
    - support suse namespace deps in boolean dependencies [bsc#1258193]
    - support for the Elbrus2000 (e2k) architecture
    - support language() suse namespace rewriting

    Update to version 1.14.98:

    - Transactional systems: Delegate rw-commands to
      transactional-wrapper if available (jsc#PED-13680, jsc#PED-15607)
      On a transactional system where the root filesystem is mounted
      read-only, zypper commands that modify the system cannot be
      executed directly.
      If the system provides a transactional-wrapper utility, zypper
      will automatically attempt to invoke it. The wrapper
      transparently executes the zypper command within a new, writable
      snapshot and manages the lifecycle of that snapshot based on the
      command's exit status.
      On transactional systems lacking a transactional-wrapper, users
      must manually invoke specialized tools -such as
      transactional-update- to install, update, or remove software.
    - Add --filter-version-change to zypper lu.
      Adds filtering by version change significance to reduce noise in
      update listings. Supports levels: rebuild (hides rebuild-only
      changes) and package (hides all release-only changes).
    - Autorefresh ris-services the way as plugin-services (bsc#1246504)
      It's actually wrong to treat service refreshes different
      depending on the service type. For the purpose of a service it
      makes no difference how the data about the repos to use are
      acquired.
    - Report download progress for command line rpms (fixes #613)
    - Hint to '-vv ref' to see the mirrors used to download the
      metadata (bsc#1257882)
    - Service: Allow 'zypper ls SERVICE ...' to test whether a
      service with this alias is defined (bsc#1252744)
      The command prints an abstract of all services passed on the
      command line. It returns 3-ZYPPER_EXIT_ERR_INVALID_ARGS if some
      argument does not name an existing service.
    - Keep repo data when updating the service settings (bsc#1252744)
    - info: Enhance pattern content table (bsc#1158038)
      Alternatives (multiple packages providing the same requirement)
      are now listed as a single entry in the content table. The entry
      shows either the installed package which satisfies the
      requirement or the requirement itself as type 'Provides'.
      Listing all potential alternatives was miss leading, especially
      if the alternatives were mutual exclusive. It looked like an
      installed pattern had not-installed requirements and it was not
      possible to install all requirements at the same time.

Tenable has extracted the preceding description block directly from the SUSE security advisory.

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1158038");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1239718");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1246504");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1247948");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1249435");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1252744");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1253193");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1253740");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1257068");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1257882");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1258193");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1259311");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1259706");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1259802");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1259842");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1265223");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1265935");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1265938");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1266039");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1267426");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1267874");
  # https://lists.suse.com/pipermail/sle-security-updates/2026-June/026969.html
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?0f908fdc");
  script_set_attribute(attribute:"see_also", value:"https://www.suse.com/security/cve/CVE-2026-25707");
  script_set_attribute(attribute:"see_also", value:"https://www.suse.com/security/cve/CVE-2026-44933");
  script_set_attribute(attribute:"see_also", value:"https://www.suse.com/security/cve/CVE-2026-44941");
  script_set_attribute(attribute:"see_also", value:"https://www.suse.com/security/cve/CVE-2026-44942");
  script_set_attribute(attribute:"see_also", value:"https://www.suse.com/security/cve/CVE-2026-48863");
  script_set_attribute(attribute:"see_also", value:"https://www.suse.com/security/cve/CVE-2026-9149");
  script_set_attribute(attribute:"see_also", value:"https://www.suse.com/security/cve/CVE-2026-9150");
  script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
  script_set_attribute(attribute:"cvss4_vector", value:"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N");
  script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:P");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-44941");
  script_set_attribute(attribute:"cvss4_score_source", value:"CVE-2026-44933");

  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2026/05/20");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/06/23");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/06/26");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libsolv-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libsolv-tools");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libsolv-tools-base");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libzypp");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:libzypp-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:perl-solv");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:python3-solv");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:ruby-solv");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:zypper");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:zypper-log");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:suse_linux:zypper-needs-restarting");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:suse_linux:15");
  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, "SUSE");
var os_ver = pregmatch(pattern: "^(SLE(S|D)(?:_SAP)?\d+)", string:os_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'SUSE');
os_ver = os_ver[1];
if (! preg(pattern:"^(SLED15|SLED_SAP15|SLES15|SLES_SAP15)$", string:os_ver)) audit(AUDIT_OS_NOT, 'SUSE SLED15 / SLED_SAP15 / SLES15 / SLES_SAP15', 'SUSE (' + os_ver + ')');

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, 'SUSE (' + os_ver + ')', cpu);

var service_pack = get_kb_item("Host/SuSE/patchlevel");
if (isnull(service_pack)) service_pack = "0";
if (os_ver == "SLED15" && (! preg(pattern:"^(5)$", string:service_pack))) audit(AUDIT_OS_NOT, "SLED15 SP5", os_ver + " SP" + service_pack);
if (os_ver == "SLED_SAP15" && (! preg(pattern:"^(5)$", string:service_pack))) audit(AUDIT_OS_NOT, "SLED_SAP15 SP5", os_ver + " SP" + service_pack);
if (os_ver == "SLES15" && (! preg(pattern:"^(5)$", string:service_pack))) audit(AUDIT_OS_NOT, "SLES15 SP5", os_ver + " SP" + service_pack);
if (os_ver == "SLES_SAP15" && (! preg(pattern:"^(5)$", string:service_pack))) audit(AUDIT_OS_NOT, "SLES_SAP15 SP5", os_ver + " SP" + service_pack);

var pkgs = [
    {'reference':'libsolv-devel-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLED_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLED_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'release':'SLED_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libzypp-devel-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'perl-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'python3-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'ruby-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'zypper-1.14.98-150500.6.45.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'zypper-log-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'zypper-needs-restarting-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES_SAP15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLES_SAP-release-15.5']},
    {'reference':'libsolv-devel-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-devel-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-devel-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-devel-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'perl-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'perl-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'python3-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'python3-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'ruby-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'ruby-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'zypper-1.14.98-150500.6.45.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'zypper-1.14.98-150500.6.45.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'zypper-log-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5', 'sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'zypper-needs-restarting-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-ESPOS-release-15.5', 'SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5', 'sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-devel-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-devel-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-devel-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'libzypp-devel-17.38.13-150500.6.74.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'perl-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'perl-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'python3-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'python3-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'ruby-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'ruby-solv-0.7.39-150500.6.17.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'zypper-1.14.98-150500.6.45.1', 'sp':'5', 'cpu':'aarch64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'zypper-1.14.98-150500.6.45.1', 'sp':'5', 'cpu':'x86_64', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5']},
    {'reference':'zypper-log-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5', 'sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'zypper-needs-restarting-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-LTSS-release-15.5', 'SLE_HPC-release-15.5', 'sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLED15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-release-15.5', 'sle-module-basesystem-release-15.5', 'sled-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-release-15.5', 'sle-module-basesystem-release-15.5', 'sled-release-15.5', 'sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLED15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-release-15.5', 'sle-module-basesystem-release-15.5', 'sled-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-release-15.5', 'sle-module-basesystem-release-15.5', 'sled-release-15.5', 'sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'release':'SLED15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-release-15.5', 'sle-module-basesystem-release-15.5', 'sled-release-15.5', 'sles-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['SLE_HPC-release-15.5', 'sle-module-basesystem-release-15.5', 'sled-release-15.5', 'sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-devel-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-devel-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-tools-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libsolv-tools-base-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libzypp-17.38.13-150500.6.74.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libzypp-devel-17.38.13-150500.6.74.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'libzypp-devel-17.38.13-150500.6.74.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'perl-solv-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'perl-solv-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'python3-solv-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'python3-solv-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'ruby-solv-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'ruby-solv-0.7.39-150500.6.17.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'zypper-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']},
    {'reference':'zypper-1.14.98-150500.6.45.1', 'sp':'5', 'release':'SLES15', 'rpm_spec_vers_cmp':TRUE, 'exists_check':['sles-ltss-release-15.5', 'sles-release-15.5']}
];

var ltss_caveat_required = FALSE;
var flag = 0;
foreach var package_array ( pkgs ) {
  var reference = NULL;
  var _release = NULL;
  var sp = NULL;
  var _cpu = NULL;
  var exists_check = 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['sp'])) sp = package_array['sp'];
  if (!empty_or_null(package_array['cpu'])) _cpu = package_array['cpu'];
  if (!empty_or_null(package_array['exists_check'])) exists_check = package_array['exists_check'];
  if (!empty_or_null(package_array['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = package_array['rpm_spec_vers_cmp'];
  if (reference && _release) {
    if (exists_check) {
      var check_flag = 0;
      foreach var check (exists_check) {
        if (!rpm_exists(release:_release, rpm:check)) continue;
        if ('ltss' >< tolower(check)) ltss_caveat_required = TRUE;
        check_flag++;
      }
      if (!check_flag) continue;
    }
    if (rpm_check(release:_release, sp:sp, cpu:_cpu, reference:reference, rpm_spec_vers_cmp:rpm_spec_vers_cmp)) flag++;
  }
}

if (flag)
{
  var ltss_plugin_caveat = NULL;
  if(ltss_caveat_required) ltss_plugin_caveat = '\n' +
    'NOTE: This vulnerability check contains fixes that apply to\n' +
    'packages only available in SUSE Enterprise Linux Server LTSS\n' +
    'repositories. Access to these package security updates require\n' +
    'a paid SUSE LTSS subscription.\n';
  security_report_v4(
      port       : 0,
      severity   : SECURITY_HOLE,
      extra      : rpm_report_get() + ltss_plugin_caveat
  );
  exit(0);
}
else
{
  var tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'libsolv-devel / libsolv-tools / libsolv-tools-base / libzypp / 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

08 Jul 2026 00:00Current
6.4Medium risk
Vulners AI Score6.4
CVSS 3.18.8
CVSS 48.5
EPSS0.0081
SSVC
21