Lucene search
+L

openSUSE 16: freeciv / freeciv-gtk3 / freeciv-gtk4 / freeciv-lang / freeciv-qt / etc (openSUSE-SU-2026:21800-1)

🗓️ 09 Sep 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 8 Views

freeciv 3.2.6 fixes heap buffer overflow and out-of-bounds read via crafted save file.

Refs
Code
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The package checks in this plugin were extracted from
# openSUSE Security Update openSUSE-SU-2026:21800-1. The text itself
# is copyright (C) SUSE.
##

include('compat.inc');

if (description)
{
  script_id(343949);
  script_version("1.1");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/09/09");

  script_name(english:"openSUSE 16: freeciv / freeciv-gtk3 / freeciv-gtk4 / freeciv-lang / freeciv-qt / etc (openSUSE-SU-2026:21800-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:21800-1 advisory.

    Changes in freeciv:

    - freeciv 3.2.6:
      * Fix Heap Buffer Overflow in worklist_load() via Crafted Save
        File (boo#1278695)
      * Fix Out-of-Bounds Read in activities.order[] via Crafted Save
        File (boo#1278696)
      * Fix some unit move legality checks and path finding issues
      * Improve logging about player authentication
      * Fix infinite audio loop in the client exit with the SDL3 audio
      * Fix issue with displayed turns to grow for the city to be
        wrong after city shrank
      * Made tech tree not to show buildings or governments which tech
        actually makes unavailable
      * Bug fixes, translation updates, docummentation updates

    - freeciv 3.2.5:
      * Fix No First City vs Currently has cities inconsistency on savegame loading
      * AI: Enable rampage with more attack types
      * Fixed floating point exception at air unit handling
      * Clients: Display NeverProtects unit help in correct place
      * gtk4: Fixed city trading
      * qt: Fixed Save Options pn Exit toggle
      * Miscellaneous changes to developer/install/ruleset docs
      * Corrected encoding of the Hungarian translation
      * Compatibility fixes for glibc-2.43, g++16, Qt-6.11

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/1278695");
  script_set_attribute(attribute:"see_also", value:"https://bugzilla.suse.com/1278696");
  script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
  script_set_attribute(attribute:"risk_factor", value:"High");

  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/07");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/09/07");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/09");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:freeciv");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:freeciv-gtk3");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:freeciv-gtk4");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:freeciv-lang");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:freeciv-qt");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:freeciv-sdl2");
  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':'freeciv-3.2.6-bp160.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'freeciv-gtk3-3.2.6-bp160.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'freeciv-gtk4-3.2.6-bp160.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'freeciv-lang-3.2.6-bp160.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'freeciv-qt-3.2.6-bp160.1.1', 'release':'SUSE16.0', 'rpm_spec_vers_cmp':TRUE},
    {'reference':'freeciv-sdl2-3.2.6-bp160.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, 'freeciv / freeciv-gtk3 / freeciv-gtk4 / freeciv-lang / freeciv-qt / 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

09 Sep 2026 00:00Current
6.1Medium risk
Vulners AI Score6.1
8