RHEL 7 : ansible (RHSA-2018:2150)

2018-07-12T00:00:00
ID REDHAT-RHSA-2018-2150.NASL
Type nessus
Reporter This script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
Modified 2018-07-12T00:00:00

Description

An update for ansible is now available for Ansible Engine 2.5.

Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section.

Ansible is a simple model-driven configuration management, multi-node deployment, and remote-task execution system. Ansible works over SSH and does not require any software or daemons to be installed on remote nodes. Extension modules can be written in any language and are transferred to managed machines automatically.

The following packages have been upgraded to a newer upstream version: ansible (2.5.6)

Security fix(es) :

  • ansible: Inventory variables are loaded from current working directory when running ad-hoc command that can lead to code execution (CVE-2018-10874)

  • ansible: ansible.cfg is being read from current working directory allowing possible code execution (CVE-2018-10875)

For more details about the security issue(s), including the impact, a CVSS score, and other related information, refer to the CVE page(s) listed in the References section.

This issue was discovered by Brian Coca (Red Hat), and Michael Scherer (OSAS).

Bug Fix(es) :

  • Restore module_utils.basic.BOOLEANS variable for backwards compatibility with the module API in older ansible releases.

  • lineinfile - add warning when using an empty regexp (https://github.com/ ansible/ansible/issues/29443)

  • apt - fix apt-mark on debian6 (https://github.com/ansible/ansible/pull/ 41530)

  • copy module - fixed recursive copy with relative paths (https://github.com/ ansible/ansible/pull/40166)

  • correct debug display for all cases https://github.com/ansible/ansible/pull /41331

  • eos_l2_interface - fix eapi (https://github.com/ansible/ansible/pull/42270)

  • group_by - support implicit localhost (https://github.com/ansible/ansible/ pull/41860)

  • influxdb_query - fixed the use of the common return

                                        
                                            #
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were  
# extracted from Red Hat Security Advisory RHSA-2018:2150. The text 
# itself is copyright (C) Red Hat, Inc.
#

include("compat.inc");

if (description)
{
  script_id(111026);
  script_version("1.8");
  script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/01");

  script_cve_id("CVE-2018-10874", "CVE-2018-10875");
  script_xref(name:"RHSA", value:"2018:2150");

  script_name(english:"RHEL 7 : ansible (RHSA-2018:2150)");
  script_summary(english:"Checks the rpm output for the updated packages");

  script_set_attribute(
    attribute:"synopsis",
    value:"The remote Red Hat host is missing one or more security updates."
  );
  script_set_attribute(
    attribute:"description",
    value:
"An update for ansible is now available for Ansible Engine 2.5.

Red Hat Product Security has rated this update as having a security
impact of Moderate. A Common Vulnerability Scoring System (CVSS) base
score, which gives a detailed severity rating, is available for each
vulnerability from the CVE link(s) in the References section.

Ansible is a simple model-driven configuration management, multi-node
deployment, and remote-task execution system. Ansible works over SSH
and does not require any software or daemons to be installed on remote
nodes. Extension modules can be written in any language and are
transferred to managed machines automatically.

The following packages have been upgraded to a newer upstream version:
ansible (2.5.6)

Security fix(es) :

* ansible: Inventory variables are loaded from current working
directory when running ad-hoc command that can lead to code execution
(CVE-2018-10874)

* ansible: ansible.cfg is being read from current working directory
allowing possible code execution (CVE-2018-10875)

For more details about the security issue(s), including the impact, a
CVSS score, and other related information, refer to the CVE page(s)
listed in the References section.

This issue was discovered by Brian Coca (Red Hat), and Michael Scherer
(OSAS).

Bug Fix(es) :

* Restore module_utils.basic.BOOLEANS variable for backwards
compatibility with the module API in older ansible releases.

* lineinfile - add warning when using an empty regexp
(https://github.com/ ansible/ansible/issues/29443)

* apt - fix apt-mark on debian6
(https://github.com/ansible/ansible/pull/ 41530)

* copy module - fixed recursive copy with relative paths
(https://github.com/ ansible/ansible/pull/40166)

* correct debug display for all cases
https://github.com/ansible/ansible/pull /41331

* eos_l2_interface - fix eapi
(https://github.com/ansible/ansible/pull/42270)

* group_by - support implicit localhost
(https://github.com/ansible/ansible/ pull/41860)

* influxdb_query - fixed the use of the common return 'results' caused
an unexpected fault. The return is renamed to 'query_results'

* junos_config - fix confirm commit timeout issue
(https://github.com/ansible /ansible/pull/41527)

* lineinfile - fix insertbefore when used with BOF to not insert
duplicate lines (https://github.com/ansible/ansible/issues/38219)

* nsupdate - allow hmac-sha384
https://github.com/ansible/ansible/pull/42209

* nxos_linkagg - fix issue
(https://github.com/ansible/ansible/pull/41550).

* nxos_vxlan_vtep_vni - fix issue
(https://github.com/ansible/ansible/pull/ 42240)

* uses correct conn info for reset_connection
https://github.com/ansible/ ansible/issues/27520

* correct service facts systemd detection of state
https://github.com/ansible /ansible/issues/40809

* correctly check hostvars for vars term
https://github.com/ansible/ansible/ pull/41819

* vyos_vlan - fix aggregate configuration issues
(https://github.com/ansible/ ansible/pull/41638)

* win_domain - fixes typo in one of the AD cmdlets
https://github.com/ansible /ansible/issues/41536

* win_iis_webapppool - redirect some module output to null so Ansible
can read the output JSON
https://github.com/ansible/ansible/issues/40874

* win_updates - Fixed issue where running win_updates on async fails
without any error

* winrm - ensure pexpect is set to not echo the input on a failure and
have a manual sanity check afterwards
https://github.com/ansible/ansible/issues/ 41865"
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://access.redhat.com/errata/RHSA-2018:2150"
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://access.redhat.com/security/cve/cve-2018-10874"
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://access.redhat.com/security/cve/cve-2018-10875"
  );
  script_set_attribute(
    attribute:"solution",
    value:"Update the affected ansible and / or ansible-doc packages."
  );
  script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:P/I:P/A:P");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:ansible");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:ansible-doc");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:7");

  script_set_attribute(attribute:"vuln_publication_date", value:"2018/07/02");
  script_set_attribute(attribute:"patch_publication_date", value:"2018/07/10");
  script_set_attribute(attribute:"plugin_publication_date", value:"2018/07/12");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2018-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
  script_family(english:"Red Hat Local Security Checks");

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/rpm-list", "Host/cpu");

  exit(0);
}


include("audit.inc");
include("global_settings.inc");
include("misc_func.inc");
include("rpm.inc");

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
release = get_kb_item("Host/RedHat/release");
if (isnull(release) || "Red Hat" >!< release) audit(AUDIT_OS_NOT, "Red Hat");
os_ver = pregmatch(pattern: "Red Hat Enterprise Linux.*release ([0-9]+(\.[0-9]+)?)", string:release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Red Hat");
os_ver = os_ver[1];
if (! preg(pattern:"^7([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Red Hat 7.x", "Red Hat " + os_ver);

if (!get_kb_item("Host/RedHat/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);

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

yum_updateinfo = get_kb_item("Host/RedHat/yum-updateinfo");
if (!empty_or_null(yum_updateinfo)) 
{
  rhsa = "RHSA-2018:2150";
  yum_report = redhat_generate_yum_updateinfo_report(rhsa:rhsa);
  if (!empty_or_null(yum_report))
  {
    security_report_v4(
      port       : 0,
      severity   : SECURITY_WARNING,
      extra      : yum_report 
    );
    exit(0);
  }
  else
  {
    audit_message = "affected by Red Hat security advisory " + rhsa;
    audit(AUDIT_OS_NOT, audit_message);
  }
}
else
{
  flag = 0;

  if (! (rpm_exists(release:"RHEL7", rpm:"ansible-2.5"))) audit(AUDIT_PACKAGE_NOT_INSTALLED, "Red Hat Ansible 2.5");

  if (rpm_check(release:"RHEL7", reference:"ansible-2.5.6-1.el7")) flag++;
  if (rpm_check(release:"RHEL7", reference:"ansible-doc-2.5.6-1.el7")) flag++;

  if (flag)
  {
    security_report_v4(
      port       : 0,
      severity   : SECURITY_WARNING,
      extra      : rpm_report_get() + redhat_report_package_caveat()
    );
    exit(0);
  }
  else
  {
    tested = pkg_tests_get();
    if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
    else audit(AUDIT_PACKAGE_NOT_INSTALLED, "ansible / ansible-doc");
  }
}