Lucene search
+L

AlmaLinux 9.2 [TuxCare] Security Update: python3.11 / python3.11-debug / python3.11-devel / python3.11-idle / etc Multiple Vulnerabilities (ALMALINUX9.2:CLSA-2026:1790155146)

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

Multiple vulnerabilities in python3.11 packages on AlmaLinux 9.2.

Related
Refs
Code
ReporterTitlePublishedViews
Family
attackerkb
attackerkb
CVE-2026-12003
16 Jun 202615:18
–attackerkb
alpinelinux
AlpineLinux
CVE-2026-17084
18 Aug 202613:57
–alpinelinux
alpinelinux
AlpineLinux
CVE-2026-19672
19 Aug 202615:24
–alpinelinux
alpinelinux
AlpineLinux
CVE-2026-87910
11 Sep 202617:27
–alpinelinux
cbl_mariner
CBLMariner
CVE-2026-87910 affecting package python3 for versions less than 3.12.15-1
6 Oct 202618:59
–cbl_mariner
cbl_mariner
CBLMariner
CVE-2026-12003 affecting package python3 for versions less than 3.12.9-14
9 Aug 202621:52
–cbl_mariner
cbl_mariner
CBLMariner
CVE-2026-17084 affecting package python3 for versions less than 3.12.15-1
6 Oct 202618:59
–cbl_mariner
cbl_mariner
CBLMariner
CVE-2026-19672 affecting package python3 for versions less than 3.12.14-2
1 Oct 202604:01
–cbl_mariner
cgr
Chainguard
CVE-2026-17084 vulnerabilities
4 Sep 202602:18
–cgr
cgr
Chainguard
CVE-2026-19672 vulnerabilities
25 Sep 202608:54
–cgr
Rows per page
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##

include('compat.inc');

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

  script_cve_id(
    "CVE-2026-12003",
    "CVE-2026-17084",
    "CVE-2026-19672",
    "CVE-2026-87910"
  );
  script_xref(name:"CLSA", value:"2026:1790155146");

  script_name(english:"AlmaLinux 9.2 [TuxCare] Security Update: python3.11 / python3.11-debug / python3.11-devel / python3.11-idle / etc Multiple Vulnerabilities (ALMALINUX9.2:CLSA-2026:1790155146)");

  script_set_attribute(attribute:"synopsis", value:
"The AlmaLinux host is missing one or more security updates.");
  script_set_attribute(attribute:"description", value:
"The AlmaLinux 9.2 host has packages installed that are affected by multiple vulnerabilities as referenced in the TuxCare
ALMALINUX9.2:CLSA-2026:1790155146 advisory.

  - To allow builds of Python to be run from an in-tree layout (rather than an installed file layout), the
    VPATH variable is defined at build time and used to locate certain landmarks - specifically,
    Modules/setup.local. When this landmark is found relative to VPATH relative to the executable, Python
    assumes it is running in a source tree and generates a different default sys.path. This code remains in
    release builds, so that release-ready builds can be built in-tree. On Windows, since builds are written to
    'PCbuild/', the value of VPATH is set to '..\..', which results in a landmark of
    '..\..\Modules\setup.local'. This path is outside the install directory of Python, and may have different
    permissions, potentially allowing a low-privilege user to create the landmark and an alternative `Lib`
    folder that will be discovered by an otherwise restricted install. Such a setup occurs with the legacy
    default install location for all users (in the now superseded EXE installer), due to how Windows allows
    all users to create folders in the root directory of their OS drive. Our recommended mitigation on Windows
    is to migrate away from the legacy installer and use the new [Python install
    manager](https://www.python.org/downloads/latest/pymanager/) to install for the current user. Installs
    where the directory two levels above the Python installation directory have equivalent permissions are
    unaffected (in general, a per-user install cannot be modified at all by other users, removing any
    escalation of privilege risk, and could be directly modified by a privileged user, making the potential
    tampering irrelevant). Alternative mitigations might include preemptively creating and restricting access
    to a `Modules` directory. Be aware that only 3.13 and 3.14 will receive updated legacy installers -
    earlier fixes are only provided as sources. Platforms other than Windows allow VPATH to be overridden, but
    as they don't usually use a separated directory in the build for binaries, are unlikely to have a landmark
    reference outside of the install directory. The landmark detection involving VPATH is a fallback for when
    a more specific landmark - .\pybuilddir.txt - is absent, and was included for compatibility. Future
    releases of Python will no longer include the fallback, and so builds will need to generate or preserve
    the pybuilddir.txt file in order to work in-tree. This landmark file has been generated on Windows since
    3.11, and on other platforms for longer. (CVE-2026-12003)

  - The stringprep module didn't process characters from RFC 3454 tables B.2 or B.3 correctly: the latest
    Unicode codepoint attributes were used instead of the specified Unicode 3.2.0. This behavior would cause
    mismatches when processing domain names using IDNA 2003 (the idna codec) and the in_table_b2() function
    of the stringprep module. This only affects domain names containing characters that were not previously
    registered or had their Unicode attributes such as case-folding behavior updated since Unicode 3.2.0.
    (CVE-2026-17084)

  - The tarfile module's tar and data extraction filters created directories outside the destination for
    members whose name leaves the destination and returns to it, such as ../evil/../dest/sub/file. The
    containment check used the resolved path, but intermediate directories were created from the name as
    given. Only empty directories are created outside the destination. Member contents are still extracted
    inside it. To return to the destination the member's name must contain the destination directory's own
    final component, so extraction into a secure randomised directory is not affected. This affects POSIX
    platforms only. On Windows, .. components are collapsed before the path reaches the filesystem, so the
    directories outside the destination are never created. (CVE-2026-19672)

  - When tarfile extracts a link on a system that doesn't support links, it falls back to extracting a member
    from the archive. In this case, the filter function is run twice: once for the extracted member, and once
    with name set to the location of the link. For one of the calls, the return value was ignored. Instead,
    the member should be skipped if either call returns None. (CVE-2026-87910)

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
  # https://security.tuxcare.com/csaf/v2/els_os/almalinux9.2esu/advisories/2026/clsa-2026_1790155146.json
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?893937aa");
  script_set_attribute(attribute:"see_also", value:"https://cve.tuxcare.com/els/releases/CLSA-2026:1790155146");
  script_set_attribute(attribute:"solution", value:
"Update the affected packages based on the guidance in TuxCare advisory ALMALINUX9.2:CLSA-2026:1790155146.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:P/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss4_vector", value:"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N");
  script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:U");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-17084");
  script_set_attribute(attribute:"cvss4_score_source", value:"CVE-2026-19672");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");
  script_set_attribute(attribute:"vendor_severity", value:"Moderate");

  script_set_attribute(attribute:"vuln_publication_date", value:"2026/06/16");
  script_set_attribute(attribute:"patch_publication_date", value:"2026/09/23");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/09/30");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Alma Linux 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_info2.nasl");
  script_require_keys("Host/OS/extended-third-party", "Host/local_checks_enabled", "Host/AlmaLinux/release", "Host/AlmaLinux/rpm-list", "Host/cpu");

  exit(0);
}
include('rpm2.inc');

var third_party_support = get_kb_item('Host/OS/extended-third-party');
if (empty_or_null(third_party_support) || third_party_support != 'TuxCare') exit(0, 'TuxCare support not enabled.');

if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_product = get_kb_item('installed_os/local/SSH/0/product');
if (isnull(os_product) || 'AlmaLinux' >!< os_product) audit(AUDIT_OS_NOT, 'AlmaLinux');
var os_version = get_kb_item('installed_os/local/SSH/0/version');
if (isnull(os_version)) audit(AUDIT_UNKNOWN_APP_VER, 'AlmaLinux');
if (! preg(pattern:"^9.2([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'AlmaLinux 9.2', 'AlmaLinux ' + os_version);

if (!get_kb_item('Host/AlmaLinux/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);

var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if (cpu !~ "^i[3-6]86$" && 'x86_64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'AlmaLinux', cpu);


var constraints = [
  {
    'release': '9',
    'sp': '2',
    'pkgs': [
      {'reference':'python3.11-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-debug-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-debug-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-devel-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-devel-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-idle-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-idle-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-libs-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-libs-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-test-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-test-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-tkinter-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'i686', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE},
      {'reference':'python3.11-tkinter-3.11.2-2.el9_2.2.tuxcare.els34', 'sp':'2', 'cpu':'x86_64', 'el_string':'el9_2', 'rpm_spec_vers_cmp':TRUE}
    ]
  }
];

var os_release = get_one_kb_item('installed_os/local/SSH/0/release');
var os_sp = get_one_kb_item('Host/*/minor_release');

var flag = 0;
var reference;
var sp;
var _cpu;
var el_string;
var rpm_spec_vers_cmp;
var epoch;
var allowmaj;
var exists_check;
var cves;
foreach var constraint ( constraints ) {
  # Check that the target release is equal to the affected release
  if (!empty_or_null(constraint['release'])){
    if (constraint['release'] != os_release) continue;
  }
  if (!empty_or_null(constraint['sp'])){
    if (constraint['sp'] != os_sp) continue;
  }
  foreach var pkg ( constraint['pkgs'] ) {
    reference = NULL;
    sp = NULL;
    _cpu = NULL;
    el_string = NULL;
    rpm_spec_vers_cmp = NULL;
    epoch = NULL;
    allowmaj = NULL;
    exists_check = NULL;
    cves = NULL;
    if (!empty_or_null(pkg['reference'])) reference = pkg['reference'];
    if (!empty_or_null(pkg['sp'])) sp = pkg['sp'];
    if (!empty_or_null(pkg['cpu'])) _cpu = pkg['cpu'];
    if (!empty_or_null(pkg['el_string'])) el_string = pkg['el_string'];
    if (!empty_or_null(pkg['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = pkg['rpm_spec_vers_cmp'];
    if (!empty_or_null(pkg['epoch'])) epoch = pkg['epoch'];
    if (!empty_or_null(pkg['allowmaj'])) allowmaj = pkg['allowmaj'];
    if (!empty_or_null(pkg['exists_check'])) exists_check = pkg['exists_check'];
    if (!empty_or_null(pkg['cves'])) cves = pkg['cves'];
    if (reference &&
        ## (no known rpm to check OR known rpm_exists)
        (!exists_check || rpm_exists(rpm:exists_check)) &&
        rpm_check(sp:sp, cpu:_cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:rpm_spec_vers_cmp, allowmaj:allowmaj, cves:cves)) flag++;
  }
}


if (flag)
{
  security_report_v4(
      port       : 0,
      severity   : SECURITY_WARNING,
      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, 'python3.11 / python3.11-debug / python3.11-devel / python3.11-idle / 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

30 Sep 2026 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 46.3
EPSS0.00734
SSVC
3