GLSA-200410-29 : PuTTY: Pre-authentication buffer overflow

2004-10-28T00:00:00
ID GENTOO_GLSA-200410-29.NASL
Type nessus
Reporter This script is Copyright (C) 2004-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
Modified 2020-01-02T00:00:00

Description

The remote host is affected by the vulnerability described in GLSA-200410-29 (PuTTY: Pre-authentication buffer overflow)

PuTTY fails to do proper bounds checking on SSH2_MSG_DEBUG packets. The

                                        
                                            #%NASL_MIN_LEVEL 80502
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Gentoo Linux Security Advisory GLSA 200410-29.
#
# The advisory text is Copyright (C) 2001-2018 Gentoo Foundation, Inc.
# and licensed under the Creative Commons - Attribution / Share Alike 
# license. See http://creativecommons.org/licenses/by-sa/3.0/
#

include("compat.inc");

if (description)
{
  script_id(15581);
  script_version("1.21");
  script_cvs_date("Date: 2019/08/02 13:32:41");

  script_cve_id("CVE-2004-1008");
  script_xref(name:"GLSA", value:"200410-29");

  script_name(english:"GLSA-200410-29 : PuTTY: Pre-authentication buffer overflow");
  script_summary(english:"Checks for updated package(s) in /var/db/pkg");

  script_set_attribute(
    attribute:"synopsis", 
    value:
"The remote Gentoo host is missing one or more security-related
patches."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"The remote host is affected by the vulnerability described in GLSA-200410-29
(PuTTY: Pre-authentication buffer overflow)

    PuTTY fails to do proper bounds checking on SSH2_MSG_DEBUG packets. The
    'stringlen' parameter value is incorrectly checked due to signedness
    issues. Note that this vulnerability is similar to the one described in
    GLSA 200408-04 but not the same.
  
Impact :

    When PuTTY connects to a server using the SSH2 protocol, an attacker
    may be able to send specially crafted packets to the client, resulting
    in the execution of arbitrary code with the permissions of the user
    running PuTTY. Note that this is possible during the authentication
    process but before host key verification.
  
Workaround :

    There is no known workaround at this time."
  );
  # http://www.idefense.com/application/poi/display?id=155
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?f0cf3f40"
  );
  # http://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html
  script_set_attribute(
    attribute:"see_also",
    value:"https://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html"
  );
  script_set_attribute(
    attribute:"see_also",
    value:"https://security.gentoo.org/glsa/200410-29"
  );
  script_set_attribute(
    attribute:"solution", 
    value:
"All PuTTY users should upgrade to the latest version:
    # emerge --sync
    # emerge --ask --oneshot --verbose '>=net-misc/putty-0.56'"
  );
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:putty");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux");

  script_set_attribute(attribute:"patch_publication_date", value:"2004/10/27");
  script_set_attribute(attribute:"plugin_publication_date", value:"2004/10/28");
  script_end_attributes();

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

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/Gentoo/release", "Host/Gentoo/qpkg-list");

  exit(0);
}


include("audit.inc");
include("global_settings.inc");
include("qpkg.inc");

if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (!get_kb_item("Host/Gentoo/release")) audit(AUDIT_OS_NOT, "Gentoo");
if (!get_kb_item("Host/Gentoo/qpkg-list")) audit(AUDIT_PACKAGE_LIST_MISSING);


flag = 0;

if (qpkg_check(package:"net-misc/putty", unaffected:make_list("ge 0.56"), vulnerable:make_list("le 0.55"))) flag++;

if (flag)
{
  if (report_verbosity > 0) security_hole(port:0, extra:qpkg_report_get());
  else security_hole(0);
  exit(0);
}
else
{
  tested = qpkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "PuTTY");
}