It was discovered that the code that parsed the HTTP request line permitted
invalid characters. This could be exploited, in conjunction with a proxy that
also permitted the invalid characters but with a different interpretation, to
inject data into the HTTP response. By manipulating the HTTP response the
attacker could poison a web-cache, perform an XSS attack, or obtain sensitive
information from requests other then their own. (CVE-2016-6816)
Note: This fix causes Tomcat to respond with an HTTP 400 Bad Request error when
request contains characters that are not permitted by the HTTP specification to
appear not encoded, even though they were previously accepted. The newly
introduced system property tomcat.util.http.parser.HttpParser.requestTargetAllow
can be used to configure Tomcat to accept curly braces ({ and }) and the pipe
symbol (|) in not encoded form, as these are often used in URLs without being
properly encoded.
HTTP connector. This led to the current Processor object being added to the
Processor cache multiple times allowing information leakage between requests
including, and not limited to, session ID and the response body.
(CVE-2016-8745)
#
# (C) Tenable Network Security, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Amazon Linux AMI Security Advisory ALAS-2017-810.
#
include("compat.inc");
if (description)
{
script_id(99037);
script_version("3.7");
script_cvs_date("Date: 2019/04/10 16:10:16");
script_cve_id("CVE-2016-6816", "CVE-2016-8745");
script_xref(name:"ALAS", value:"2017-810");
script_xref(name:"RHSA", value:"2017:0527");
script_name(english:"Amazon Linux AMI : tomcat6 (ALAS-2017-810)");
script_summary(english:"Checks rpm output for the updated packages");
script_set_attribute(
attribute:"synopsis",
value:"The remote Amazon Linux AMI host is missing a security update."
);
script_set_attribute(
attribute:"description",
value:
"It was discovered that the code that parsed the HTTP request line
permitted
invalid characters. This could be exploited, in conjunction with a
proxy that
also permitted the invalid characters but with a different
interpretation, to
inject data into the HTTP response. By manipulating the HTTP response
the
attacker could poison a web-cache, perform an XSS attack, or obtain
sensitive
information from requests other then their own. (CVE-2016-6816)
Note: This fix causes Tomcat to respond with an HTTP 400 Bad Request
error when
request contains characters that are not permitted by the HTTP
specification to
appear not encoded, even though they were previously accepted. The
newly
introduced system property
tomcat.util.http.parser.HttpParser.requestTargetAllow
can be used to configure Tomcat to accept curly braces ({ and }) and
the pipe
symbol (|) in not encoded form, as these are often used in URLs
without being
properly encoded.
- A bug was discovered in the error handling of the send
file code for the NIO
HTTP connector. This led to the current Processor object being added
to the
Processor cache multiple times allowing information leakage between
requests
including, and not limited to, session ID and the response body.
(CVE-2016-8745)"
);
script_set_attribute(
attribute:"see_also",
value:"https://alas.aws.amazon.com/ALAS-2017-810.html"
);
script_set_attribute(
attribute:"solution",
value:"Run 'yum update tomcat6' to update your system."
);
script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P");
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:N/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-admin-webapps");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-docs-webapp");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-el-2.1-api");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-javadoc");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-jsp-2.1-api");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-lib");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-servlet-2.5-api");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:amazon:linux:tomcat6-webapps");
script_set_attribute(attribute:"cpe", value:"cpe:/o:amazon:linux");
script_set_attribute(attribute:"patch_publication_date", value:"2017/03/29");
script_set_attribute(attribute:"plugin_publication_date", value:"2017/03/30");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_copyright(english:"This script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
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:"tomcat6-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-admin-webapps-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-docs-webapp-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-el-2.1-api-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-javadoc-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-jsp-2.1-api-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-lib-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-servlet-2.5-api-6.0.51-1.10.amzn1")) flag++;
if (rpm_check(release:"ALA", reference:"tomcat6-webapps-6.0.51-1.10.amzn1")) flag++;
if (flag)
{
if (report_verbosity > 0) security_warning(port:0, extra:rpm_report_get());
else security_warning(0);
exit(0);
}
else
{
tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, "tomcat6 / tomcat6-admin-webapps / tomcat6-docs-webapp / etc");
}
Vendor | Product | Version | CPE |
---|---|---|---|
amazon | linux | tomcat6 | p-cpe:/a:amazon:linux:tomcat6 |
amazon | linux | tomcat6-admin-webapps | p-cpe:/a:amazon:linux:tomcat6-admin-webapps |
amazon | linux | tomcat6-docs-webapp | p-cpe:/a:amazon:linux:tomcat6-docs-webapp |
amazon | linux | tomcat6-el-2.1-api | p-cpe:/a:amazon:linux:tomcat6-el-2.1-api |
amazon | linux | tomcat6-javadoc | p-cpe:/a:amazon:linux:tomcat6-javadoc |
amazon | linux | tomcat6-jsp-2.1-api | p-cpe:/a:amazon:linux:tomcat6-jsp-2.1-api |
amazon | linux | tomcat6-lib | p-cpe:/a:amazon:linux:tomcat6-lib |
amazon | linux | tomcat6-servlet-2.5-api | p-cpe:/a:amazon:linux:tomcat6-servlet-2.5-api |
amazon | linux | tomcat6-webapps | p-cpe:/a:amazon:linux:tomcat6-webapps |
amazon | linux | cpe:/o:amazon:linux |