Lucene search
K

MiracleLinux 4 : [security - medium] python27 (AXSA:2017-1647:01)

🗓️ 16 Jan 2026 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 1 Views

MiracleLinux 4 applies python27 security, bug fix, and enhancement update per AXSA:2017-1647:01.

Related
Refs
Code
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The package checks in this plugin were extracted from
# Miracle Linux Security Advisory AXSA:2017-1647:01.
##

include('deprecated_nasl_level.inc');
include('compat.inc');

if (description)
{
  script_id(289411);
  script_version("1.2");
  script_set_attribute(attribute:"plugin_modification_date", value:"2026/01/19");

  script_cve_id("CVE-2014-9365");

  script_name(english:"MiracleLinux 4 : [security - medium] python27 (AXSA:2017-1647:01)");

  script_set_attribute(attribute:"synopsis", value:
"The remote MiracleLinux host is missing a security update.");
  script_set_attribute(attribute:"description", value:
"The remote MiracleLinux 4 host has packages installed that are affected by a vulnerability as referenced in the
AXSA:2017-1647:01 advisory.

    python27-mod_wsgi
    The mod_wsgi adapter is an Apache module that provides a WSGI compliant
    interface for hosting Python based web applications within Apache. The
    adapter is written completely in C code against the Apache C runtime and
    for hosting WSGI applications within Apache has a lower overhead than using
    existing WSGI adapters for mod_python or CGI.
    python27-python
    Python is an interpreted, interactive, object-oriented programming
    language often compared to Tcl, Perl, Scheme or Java. Python includes
    modules, classes, exceptions, very high level dynamic data types and
    dynamic typing. Python supports interfaces to many system calls and
    libraries, as well as to various windowing systems (X11, Motif, Tk,
    Mac and MFC).
    Programmers can write new built-in modules for Python in C or C  .
    Python can be used as an extension language for applications that need
    a programmable interface.
    Note that documentation for Python is provided in the python-docs
    package.
    This package provides the python executable; most of the actual
    implementation is within the python-libs package.
    python27-python-coverage
    Coverage.py is a Python module that measures code coverage during Python
    execution. It uses the code analysis tools and tracing hooks provided in the
    Python standard library to determine which lines are executable, and which
    have been executed.
    python27-python-pip
    Pip is a replacement for `easy_install
    <http://peak.telecommunity.com/DevCenter/EasyInstall>`_.  It uses mostly the
    same techniques for finding packages, so packages that were made
    easy_installable should be pip-installable as well.
    python27-python-setuptools
    Setuptools is a collection of enhancements to the Python distutils that allow
    you to more easily build and distribute Python packages, especially ones that
    have dependencies on other packages.
    This package contains the runtime components of setuptools, necessary to
    execute the software that requires pkg_resources.py.
    This package contains the distribute fork of setuptools.
    python27-python-virtualenv
    virtualenv is a tool to create isolated Python environments. virtualenv
    is a successor to workingenv, and an extension of virtual-python. It is
    written by Ian Bicking, and sponsored by the Open Planning Project. It is
    licensed under an MIT-style permissive license.
    Security issues fixed with this release:
    CVE-2014-9365
    The HTTP clients in the (1) httplib, (2) urllib, (3) urllib2, and (4)
    xmlrpclib libraries in CPython (aka Python) 2.x before 2.7.9 and 3.x
    before 3.4.3, when accessing an HTTPS URL, do not (a) check the
    certificate against a trust store or verify that the server hostname
    matches a domain name in the subject's (b) Common Name or (c)
    subjectAltName field of the X.509 certificate, which allows
    man-in-the-middle attackers to spoof SSL servers via an arbitrary
    valid certificate.
    Security Fix(es) in the python27-python component:

Tenable has extracted the preceding description block directly from the MiracleLinux 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://tsn.miraclelinux.com/en/node/8079");
  script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:N");
  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:N/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:"cvss_score_source", value:"CVE-2014-9365");

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

  script_set_attribute(attribute:"vuln_publication_date", value:"2014/12/11");
  script_set_attribute(attribute:"patch_publication_date", value:"2017/05/11");
  script_set_attribute(attribute:"plugin_publication_date", value:"2026/01/16");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-mod_wsgi");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-coverage");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-debug");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-devel");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-libs");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-pip");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-setuptools");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-test");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-python-tools");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:miracle:linux:python27-tkinter");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:miracle:linux:4");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Miracle 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_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/MiracleLinux/release", "Host/MiracleLinux/rpm-list", "Host/cpu");

  exit(0);
}


include('rpm2.inc');

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) || 'MIRACLE LINUX' >!< os_product) audit(AUDIT_OS_NOT, 'MIRACLE LINUX');
var os_version = get_kb_item('installed_os/local/SSH/0/version');
if (isnull(os_version)) audit(AUDIT_UNKNOWN_APP_VER, 'MIRACLE LINUX');
if (! preg(pattern:"^4([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'MiracleLinux 4.x', 'MIRACLE LINUX ' + os_version);

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

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

var constraints = [
  {
    'release': '4',
    'pkgs': [
      {'reference':'python27-mod_wsgi-4.5.13-1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-2.7.13-3.0.1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-coverage-3.6-4.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-debug-2.7.13-3.0.1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-devel-2.7.13-3.0.1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-libs-2.7.13-3.0.1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-pip-8.1.2-2.AXS4', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-setuptools-0.9.8-4.AXS4', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-test-2.7.13-3.0.1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-python-tools-2.7.13-3.0.1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'},
      {'reference':'python27-tkinter-2.7.13-3.0.1.AXS4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE, 'epoch':'0'}
    ]
  }
];

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, 'python27-mod_wsgi / python27-python / python27-python-coverage / 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

19 Jan 2026 00:00Current
7.3High risk
Vulners AI Score7.3
CVSS 25.8
EPSS0.02758
1