Vulnerabilities > CVE-2014-9157 - USE of Externally-Controlled Format String vulnerability in multiple products

047910
CVSS 7.5 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
PARTIAL
network
low complexity
debian
graphviz
CWE-134
nessus

Summary

Format string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz allows remote attackers to have unspecified impact via format string specifiers in unknown vectors, which are not properly handled in an error string.

Vulnerable Configurations

Part Description Count
OS
Debian
2
Application
Graphviz
1

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Format String Injection
    An attacker includes formatting characters in a string input field on the target application. Most applications assume that users will provide static text and may respond unpredictably to the presence of formatting character. For example, in certain functions of the C programming languages such as printf, the formatting character %s will print the contents of a memory location expecting this location to identify a string and the formatting character %n prints the number of DWORD written in the memory. An attacker can use this to read or write to memory locations or files, or simply to manipulate the value of the resulting text in unexpected ways. Reading or writing memory may result in program crashes and writing memory could result in the execution of arbitrary code if the attacker can write to the program stack.
  • String Format Overflow in syslog()
    This attack targets the format string vulnerabilities in the syslog() function. An attacker would typically inject malicious input in the format string parameter of the syslog function. This is a common problem, and many public vulnerabilities and associated exploits have been posted.

Nessus

  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DLA-105.NASL
    descriptionJoshua Rogers discovered a format string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz, a rich set of graph drawing tools. An attacker could use this flaw to cause graphviz to crash or possibly execute arbitrary code. NOTE: Tenable Network Security has extracted the preceding description block directly from the DLA security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-03-17
    modified2015-03-26
    plugin id82089
    published2015-03-26
    reporterThis script is Copyright (C) 2015-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/82089
    titleDebian DLA-105-1 : graphviz security update
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Debian Security Advisory DLA-105-1. The text
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(82089);
      script_version("1.6");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/03/12");
    
      script_cve_id("CVE-2014-9157");
      script_bugtraq_id(71283);
    
      script_name(english:"Debian DLA-105-1 : graphviz security update");
      script_summary(english:"Checks dpkg output for the updated packages.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Debian host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Joshua Rogers discovered a format string vulnerability in the yyerror
    function in lib/cgraph/scan.l in Graphviz, a rich set of graph drawing
    tools. An attacker could use this flaw to cause graphviz to crash or
    possibly execute arbitrary code.
    
    NOTE: Tenable Network Security has extracted the preceding description
    block directly from the DLA security advisory. 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://lists.debian.org/debian-lts-announce/2014/12/msg00008.html"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://packages.debian.org/source/squeeze-lts/graphviz"
      );
      script_set_attribute(attribute:"solution", value:"Upgrade the affected packages.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"false");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:graphviz");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:graphviz-dev");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:graphviz-doc");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libcdt4");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libcgraph5");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgraph4");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgraphviz-dev");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-guile");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-lua");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-ocaml");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-perl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-php5");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-python");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-ruby");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgv-tcl");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgvc5");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgvc5-plugins-gtk");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libgvpr1");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libpathplan4");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:libxdot4");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:6.0");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2014/12/11");
      script_set_attribute(attribute:"plugin_publication_date", value:"2015/03/26");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2015-2020 Tenable Network Security, Inc.");
      script_family(english:"Debian Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Debian/release", "Host/Debian/dpkg-l");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("debian_package.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Debian/release")) audit(AUDIT_OS_NOT, "Debian");
    if (!get_kb_item("Host/Debian/dpkg-l")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    if (deb_check(release:"6.0", prefix:"graphviz", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"graphviz-dev", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"graphviz-doc", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libcdt4", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libcgraph5", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgraph4", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgraphviz-dev", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-guile", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-lua", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-ocaml", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-perl", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-php5", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-python", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-ruby", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgv-tcl", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgvc5", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgvc5-plugins-gtk", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libgvpr1", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libpathplan4", reference:"2.26.3-5+squeeze3")) flag++;
    if (deb_check(release:"6.0", prefix:"libxdot4", reference:"2.26.3-5+squeeze3")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:deb_report_get());
      else security_hole(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyAmazon Linux Local Security Checks
    NASL idALA_ALAS-2015-488.NASL
    descriptionFormat string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz allows remote attackers to have unspecified impact via format string specifiers in unknown vector, which are not properly handled in an error string.
    last seen2020-06-01
    modified2020-06-02
    plugin id81676
    published2015-03-09
    reporterThis script is Copyright (C) 2015-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/81676
    titleAmazon Linux AMI : graphviz-php (ALAS-2015-488)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Amazon Linux AMI Security Advisory ALAS-2015-488.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(81676);
      script_version("1.2");
      script_cvs_date("Date: 2018/04/18 15:09:35");
    
      script_cve_id("CVE-2014-9157");
      script_xref(name:"ALAS", value:"2015-488");
    
      script_name(english:"Amazon Linux AMI : graphviz-php (ALAS-2015-488)");
      script_summary(english:"Checks rpm output for the updated package");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Amazon Linux AMI host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Format string vulnerability in the yyerror function in
    lib/cgraph/scan.l in Graphviz allows remote attackers to have
    unspecified impact via format string specifiers in unknown vector,
    which are not properly handled in an error string."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://alas.aws.amazon.com/ALAS-2015-488.html"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Run 'yum update graphviz-php' to update your system."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:graphviz-php");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2015/03/04");
      script_set_attribute(attribute:"plugin_publication_date", value:"2015/03/09");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2015-2018 Tenable Network Security, Inc.");
      script_family(english:"Amazon Linux Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/AmazonLinux/release", "Host/AmazonLinux/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/AmazonLinux/release");
    if (isnull(release) || !strlen(release)) audit(AUDIT_OS_NOT, "Amazon Linux");
    os_ver = pregmatch(pattern: "^AL(A|\d)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Amazon Linux");
    os_ver = os_ver[1];
    if (os_ver != "A")
    {
      if (os_ver == 'A') os_ver = 'AMI';
      audit(AUDIT_OS_NOT, "Amazon Linux AMI", "Amazon Linux " + os_ver);
    }
    
    if (!get_kb_item("Host/AmazonLinux/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    if (rpm_check(release:"ALA", reference:"graphviz-php-2.38.0-18.40.amzn1")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:rpm_report_get());
      else security_hole(0);
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "graphviz-php");
    }
    
  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2019-2592.NASL
    descriptionAccording to the version of the graphviz packages installed, the EulerOS installation on the remote host is affected by the following vulnerability : - Format string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz allows remote attackers to have unspecified impact via format string specifiers in unknown vectors, which are not properly handled in an error string.(CVE-2014-9157) Note that Tenable Network Security has extracted the preceding description block directly from the EulerOS security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-05-08
    modified2019-12-18
    plugin id132127
    published2019-12-18
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/132127
    titleEulerOS 2.0 SP3 : graphviz (EulerOS-SA-2019-2592)
  • NASL familyUbuntu Local Security Checks
    NASL idUBUNTU_USN-2435-1.NASL
    descriptionIt was discovered that graphviz incorrectly handled parsing errors. An attacker could use this issue to cause graphviz to crash or possibly execute arbitrary code. Note that Tenable Network Security has extracted the preceding description block directly from the Ubuntu security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id79825
    published2014-12-09
    reporterUbuntu Security Notice (C) 2014-2019 Canonical, Inc. / NASL script (C) 2014-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/79825
    titleUbuntu 10.04 LTS / 12.04 LTS / 14.04 LTS / 14.10 : graphviz vulnerability (USN-2435-1)
  • NASL familyHuawei Local Security Checks
    NASL idEULEROS_SA-2019-2355.NASL
    descriptionAccording to the version of the graphviz packages installed, the EulerOS installation on the remote host is affected by the following vulnerability : - Format string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz allows remote attackers to have unspecified impact via format string specifiers in unknown vectors, which are not properly handled in an error string.(CVE-2014-9157) Note that Tenable Network Security has extracted the preceding description block directly from the EulerOS security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-05-08
    modified2019-12-10
    plugin id131847
    published2019-12-10
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/131847
    titleEulerOS 2.0 SP2 : graphviz (EulerOS-SA-2019-2355)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2014-15812.NASL
    descriptionThis is an update fixing format string vulnerability in cgraph. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-03-17
    modified2014-12-06
    plugin id79750
    published2014-12-06
    reporterThis script is Copyright (C) 2014-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/79750
    titleFedora 20 : graphviz-2.34.0-10.fc20 (2014-15812)
  • NASL familyMandriva Local Security Checks
    NASL idMANDRIVA_MDVSA-2014-248.NASL
    descriptionUpdated graphviz packages fix security vulnerability : Format string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz allows remote attackers to have unspecified impact via format string specifiers in unknown vector, which are not properly handled in an error string (CVE-2014-9157).
    last seen2020-06-01
    modified2020-06-02
    plugin id79993
    published2014-12-15
    reporterThis script is Copyright (C) 2014-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/79993
    titleMandriva Linux Security Advisory : graphviz (MDVSA-2014:248)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2014-15811.NASL
    descriptionThis is an update fixing format string vulnerability in cgraph. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-03-17
    modified2014-12-07
    plugin id79784
    published2014-12-07
    reporterThis script is Copyright (C) 2014-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/79784
    titleFedora 19 : graphviz-2.30.1-13.fc19 (2014-15811)
  • NASL familyAmazon Linux Local Security Checks
    NASL idALA_ALAS-2015-487.NASL
    descriptionFormat string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz allows remote attackers to have unspecified impact via format string specifiers in unknown vector, which are not properly handled in an error string.
    last seen2020-06-01
    modified2020-06-02
    plugin id81675
    published2015-03-09
    reporterThis script is Copyright (C) 2015-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/81675
    titleAmazon Linux AMI : graphviz (ALAS-2015-487)
  • NASL familyMandriva Local Security Checks
    NASL idMANDRIVA_MDVSA-2015-187.NASL
    descriptionUpdated graphviz packages fix security vulnerability : Format string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz allows remote attackers to have unspecified impact via format string specifiers in unknown vector, which are not properly handled in an error string (CVE-2014-9157). Additionally the gtkglarea2 and gtkglext packages were missing and was required for graphviz to build, these packages are also being provided with this advisory.
    last seen2020-06-01
    modified2020-06-02
    plugin id82558
    published2015-04-03
    reporterThis script is Copyright (C) 2015-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/82558
    titleMandriva Linux Security Advisory : graphviz (MDVSA-2015:187)
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-3098.NASL
    descriptionJoshua Rogers discovered a format string vulnerability in the yyerror function in lib/cgraph/scan.l in Graphviz, a rich set of graph drawing tools. An attacker could use this flaw to cause graphviz to crash or possibly execute arbitrary code.
    last seen2020-03-17
    modified2014-12-15
    plugin id79885
    published2014-12-15
    reporterThis script is Copyright (C) 2014-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/79885
    titleDebian DSA-3098-1 : graphviz - security update
  • NASL familySuSE Local Security Checks
    NASL idOPENSUSE-2017-1341.NASL
    descriptionThis update for graphviz fixes the following issues : Security issue fixed : - CVE-2014-9157: Fix format string vulnerability (boo#908426).
    last seen2020-06-05
    modified2017-12-14
    plugin id105231
    published2017-12-14
    reporterThis script is Copyright (C) 2017-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/105231
    titleopenSUSE Security Update : graphviz (openSUSE-2017-1341)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2014-15760.NASL
    descriptionThis is an update fixing format string vulnerability in cgraph. Note that Tenable Network Security has extracted the preceding description block directly from the Fedora security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-03-17
    modified2014-12-07
    plugin id79782
    published2014-12-07
    reporterThis script is Copyright (C) 2014-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/79782
    titleFedora 21 : graphviz-2.38.0-11.fc21 (2014-15760)