Vulnerabilities > CVE-2020-1740 - Insecure Temporary File vulnerability in multiple products

047910
CVSS 4.7 - MEDIUM
Attack vector
LOCAL
Attack complexity
HIGH
Privileges required
LOW
Confidentiality impact
HIGH
Integrity impact
NONE
Availability impact
NONE
local
high complexity
redhat
debian
fedoraproject
CWE-377
nessus

Summary

A flaw was found in Ansible Engine when using Ansible Vault for editing encrypted files. When a user executes "ansible-vault edit", another user on the same computer can read the old and new secret, as it is created in a temporary file with mkstemp and the returned file descriptor is closed and the method write_data is called to write the existing secret in the file. This method will delete the file before recreating it insecurely. All versions in 2.7.x, 2.8.x and 2.9.x branches are believed to be vulnerable.

Vulnerable Configurations

Part Description Count
Application
Redhat
400
OS
Debian
2
OS
Fedoraproject
3

Common Weakness Enumeration (CWE)

Nessus

  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2020-F80154B5B4.NASL
    descriptionUpdate to upstream bugfix and security update 2.9.7. See https://github.com/ansible/ansible/blob/stable-2.9/changelogs/CHANGELO G-v2.9.rst for a detailed list of changes. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-06
    modified2020-04-27
    plugin id136002
    published2020-04-27
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/136002
    titleFedora 31 : ansible (2020-f80154b5b4)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Fedora Security Advisory FEDORA-2020-f80154b5b4.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(136002);
      script_version("1.7");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/05");
    
      script_cve_id("CVE-2020-10684", "CVE-2020-10685", "CVE-2020-10691", "CVE-2020-1733", "CVE-2020-1735", "CVE-2020-1740", "CVE-2020-1746", "CVE-2020-1753");
      script_xref(name:"FEDORA", value:"2020-f80154b5b4");
      script_xref(name:"IAVB", value:"2019-B-0092");
    
      script_name(english:"Fedora 31 : ansible (2020-f80154b5b4)");
      script_summary(english:"Checks rpm output for the updated package.");
    
      script_set_attribute(
        attribute:"synopsis",
        value:"The remote Fedora host is missing a security update."
      );
      script_set_attribute(
        attribute:"description",
        value:
    "Update to upstream bugfix and security update 2.9.7. See
    https://github.com/ansible/ansible/blob/stable-2.9/changelogs/CHANGELO
    G-v2.9.rst for a detailed list of changes.
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the Fedora update system website.
    Tenable has attempted to automatically clean and format it as much as
    possible without introducing additional issues."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bodhi.fedoraproject.org/updates/FEDORA-2020-f80154b5b4"
      );
      # https://github.com/ansible/ansible/blob/stable-2.9/changelogs/CHANGELOG-v2.9.rst
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?36c0680c"
      );
      script_set_attribute(
        attribute:"solution",
        value:"Update the affected ansible package."
      );
      script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:P/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:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2020-1733");
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:ansible");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:fedoraproject:fedora:31");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2020/03/11");
      script_set_attribute(attribute:"patch_publication_date", value:"2020/04/27");
      script_set_attribute(attribute:"plugin_publication_date", value:"2020/04/27");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_set_attribute(attribute:"stig_severity", value:"II");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Fedora Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/rpm-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.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) || "Fedora" >!< release) audit(AUDIT_OS_NOT, "Fedora");
    os_ver = pregmatch(pattern: "Fedora.*release ([0-9]+)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Fedora");
    os_ver = os_ver[1];
    if (! preg(pattern:"^31([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Fedora 31", "Fedora " + 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$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Fedora", cpu);
    
    
    flag = 0;
    if (rpm_check(release:"FC31", reference:"ansible-2.9.7-1.fc31")) flag++;
    
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_NOTE,
        extra      : rpm_report_get()
      );
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "ansible");
    }
    
  • NASL familyRed Hat Local Security Checks
    NASL idREDHAT-RHSA-2020-1541.NASL
    descriptionThe remote Redhat Enterprise Linux 7 / 8 host has packages installed that are affected by multiple vulnerabilities as referenced in the RHSA-2020:1541 advisory. - Ansible: code injection when using ansible_facts as a subkey (CVE-2020-10684) - Ansible: modules which use files encrypted with vault are not properly cleaned up (CVE-2020-10685) - Ansible: archive traversal vulnerability in ansible- galaxy collection install (CVE-2020-10691) - ansible: insecure temporary directory when running become_user from become directive (CVE-2020-1733) - ansible: path injection on dest parameter in fetch module (CVE-2020-1735) - ansible: Extract-Zip function in win_unzip module does not check extracted path (CVE-2020-1737) - ansible: svn module leaks password when specified as a parameter (CVE-2020-1739) - ansible: secrets readable after ansible-vault edit (CVE-2020-1740) - ansible: Information disclosure issue in ldap_attr and ldap_entry modules (CVE-2020-1746) - Ansible: kubectl connection plugin leaks sensitive information (CVE-2020-1753) Note that Nessus has not tested for this issue but has instead relied only on the application
    last seen2020-06-05
    modified2020-04-22
    plugin id135911
    published2020-04-22
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135911
    titleRHEL 7 / 8 : Ansible security and bug fix update (2.9.7) (Important) (RHSA-2020:1541)
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DLA-2202.NASL
    descriptionSeveral vulnerabilities were discovered in Ansible, a configuration management, deployment, and task execution system. CVE-2019-14846 Ansible was logging at the DEBUG level which lead to a disclosure of credentials if a plugin used a library that logged credentials at the DEBUG level. This flaw does not affect Ansible modules, as those are executed in a separate process. CVE-2020-1733 A race condition flaw was found when running a playbook with an unprivileged become user. When Ansible needs to run a module with become user, the temporary directory is created in /var/tmp. This directory is created with
    last seen2020-06-06
    modified2020-05-07
    plugin id136367
    published2020-05-07
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/136367
    titleDebian DLA-2202-1 : ansible security update
  • NASL familyPhotonOS Local Security Checks
    NASL idPHOTONOS_PHSA-2020-2_0-0226_ANSIBLE.NASL
    descriptionAn update of the ansible package has been released.
    last seen2020-06-05
    modified2020-04-10
    plugin id135298
    published2020-04-10
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135298
    titlePhoton OS 2.0: Ansible PHSA-2020-2.0-0226
  • NASL familyRed Hat Local Security Checks
    NASL idREDHAT-RHSA-2020-1542.NASL
    descriptionThe remote Redhat Enterprise Linux 7 / 8 host has packages installed that are affected by multiple vulnerabilities as referenced in the RHSA-2020:1542 advisory. - Ansible: code injection when using ansible_facts as a subkey (CVE-2020-10684) - Ansible: modules which use files encrypted with vault are not properly cleaned up (CVE-2020-10685) - Ansible: archive traversal vulnerability in ansible- galaxy collection install (CVE-2020-10691) - ansible: insecure temporary directory when running become_user from become directive (CVE-2020-1733) - ansible: path injection on dest parameter in fetch module (CVE-2020-1735) - ansible: Extract-Zip function in win_unzip module does not check extracted path (CVE-2020-1737) - ansible: svn module leaks password when specified as a parameter (CVE-2020-1739) - ansible: secrets readable after ansible-vault edit (CVE-2020-1740) - ansible: Information disclosure issue in ldap_attr and ldap_entry modules (CVE-2020-1746) - Ansible: kubectl connection plugin leaks sensitive information (CVE-2020-1753) Note that Nessus has not tested for this issue but has instead relied only on the application
    last seen2020-06-05
    modified2020-04-22
    plugin id135914
    published2020-04-22
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135914
    titleRHEL 7 / 8 : Ansible security and bug fix update (2.9.7) (Important) (RHSA-2020:1542)
  • NASL familyRed Hat Local Security Checks
    NASL idREDHAT-RHSA-2020-1543.NASL
    descriptionThe remote Redhat Enterprise Linux 7 / 8 host has a package installed that is affected by multiple vulnerabilities as referenced in the RHSA-2020:1543 advisory. - Ansible: code injection when using ansible_facts as a subkey (CVE-2020-10684) - Ansible: modules which use files encrypted with vault are not properly cleaned up (CVE-2020-10685) - ansible: insecure temporary directory when running become_user from become directive (CVE-2020-1733) - ansible: path injection on dest parameter in fetch module (CVE-2020-1735) - ansible: Extract-Zip function in win_unzip module does not check extracted path (CVE-2020-1737) - ansible: svn module leaks password when specified as a parameter (CVE-2020-1739) - ansible: secrets readable after ansible-vault edit (CVE-2020-1740) - ansible: Information disclosure issue in ldap_attr and ldap_entry modules (CVE-2020-1746) Note that Nessus has not tested for this issue but has instead relied only on the application
    last seen2020-06-05
    modified2020-04-22
    plugin id135915
    published2020-04-22
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135915
    titleRHEL 7 / 8 : Ansible security and bug fix update (2.8.11) (Important) (RHSA-2020:1543)
  • NASL familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_AE2E787180F611EABAFD815569F3852D.NASL
    descriptionBorja Tarraso reports : A flaw was found in Ansible Engine when using Ansible Vault for editing encrypted files. When a user executes
    last seen2020-05-21
    modified2020-04-20
    plugin id135731
    published2020-04-20
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135731
    titleFreeBSD : ansible - Vault password leak from temporary file (ae2e7871-80f6-11ea-bafd-815569f3852d)
  • NASL familyPhotonOS Local Security Checks
    NASL idPHOTONOS_PHSA-2020-3_0-0078_ANSIBLE.NASL
    descriptionAn update of the ansible package has been released.
    last seen2020-06-05
    modified2020-04-21
    plugin id135779
    published2020-04-21
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135779
    titlePhoton OS 3.0: Ansible PHSA-2020-3.0-0078
  • NASL familyRed Hat Local Security Checks
    NASL idREDHAT-RHSA-2020-1544.NASL
    descriptionThe remote Redhat Enterprise Linux 7 host has a package installed that is affected by multiple vulnerabilities as referenced in the RHSA-2020:1544 advisory. - Ansible: code injection when using ansible_facts as a subkey (CVE-2020-10684) - Ansible: modules which use files encrypted with vault are not properly cleaned up (CVE-2020-10685) - ansible: insecure temporary directory when running become_user from become directive (CVE-2020-1733) - ansible: path injection on dest parameter in fetch module (CVE-2020-1735) - ansible: Extract-Zip function in win_unzip module does not check extracted path (CVE-2020-1737) - ansible: svn module leaks password when specified as a parameter (CVE-2020-1739) - ansible: secrets readable after ansible-vault edit (CVE-2020-1740) - ansible: Information disclosure issue in ldap_attr and ldap_entry modules (CVE-2020-1746) Note that Nessus has not tested for this issue but has instead relied only on the application
    last seen2020-06-05
    modified2020-04-22
    plugin id135913
    published2020-04-22
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135913
    titleRHEL 7 : Ansible security and bug fix update (2.7.17) (Important) (RHSA-2020:1544)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2020-1B6CE91E37.NASL
    descriptionUpdate to upstream bugfix and security update 2.9.7. See https://github.com/ansible/ansible/blob/stable-2.9/changelogs/CHANGELO G-v2.9.rst for a detailed list of changes. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-06
    modified2020-04-27
    plugin id135987
    published2020-04-27
    reporterThis script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/135987
    titleFedora 30 : ansible (2020-1b6ce91e37)

Redhat

rpms
  • ansible-0:2.9.7-1.el7ae
  • ansible-0:2.9.7-1.el8ae
  • ansible-test-0:2.9.7-1.el7ae
  • ansible-test-0:2.9.7-1.el8ae
  • ansible-0:2.9.7-1.el7ae
  • ansible-0:2.9.7-1.el8ae
  • ansible-test-0:2.9.7-1.el7ae
  • ansible-test-0:2.9.7-1.el8ae
  • ansible-0:2.8.11-1.el7ae
  • ansible-0:2.8.11-1.el8ae
  • ansible-0:2.7.17-1.el7ae