Arista Networks EOS Linux Kernel TCP Multiple DoS (SA0041)

2020-03-06T00:00:00
ID ARISTA_EOS_SA0041.NASL
Type nessus
Reporter This script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.
Modified 2020-03-06T00:00:00

Description

The version of Arista Networks EOS running on the remote device is affected by the following denial of service (DoS) vulnerabilities related to TCP networking in the Linux kernel, which can be exploited by a remote, unauthenticated attacker:

  • SACK Panic. The TCP_SKB_CB(skb)->tcp_gso_segs value is subject to an integer overflow in the Linux kernel when handling TCP Selective Acknowledgments (SACKs). (CVE-2019-11477)

  • SACK Slowness. The TCP retransmission queue implementation in tcp_fragment in the Linux kernel can be fragmented when handling certain TCP Selective Acknowledgment (SACK) sequences. (CVE-2019-11478)

  • The Linux kernel default MSS is hard-coded to 48 bytes. This allows a remote peer to fragment TCP resend queues significantly more than if a larger MSS were enforced. (CVE-2019-11479)

Note that Nessus has not tested for this issue but has instead relied only on the application

                                        
                                            #TRUSTED a6808466094d663f83b155a4a6c70588781969608fc41ba50308a63da4ae6c0da663b189a8c9db920167e428c06c657dd7e391b722d229d821f625061ac3bc3a36059a41d6aec1b2e4489027ed40306c132858c99582eaa4e74c5fc5db01f38274b00dcccbd910729a90cd0423a666aea4da6d1c28199c7549a34d05e38fc13867d8fe18c6b6ee11aaa8c787aa9bb33e0a44210090c8f49db2482f4803777b082996f6f44758557dadca1ab1f830fd701147a8b7b39780c335f60059de06dedd62c30dc594999ca4be56e1bb3a606b45b0c75a2630981bc1dcf5efae6e8269c66f0d1e9aba5902de004ad93cddb01ab4e03faa15ad4edafa10c5063165352d1254b49b46eb41f3007a506f2663a1f15f769c8498325f30611a296eaae05b9c7f53614f93a6d32ea44fa6ffedf67aa8d7c9c98a35c04e2cad4d2fcd0ea5a4dc72137ddcac437d4dca95cdb3d0faf89f274a4f2ae83b49ea56261e17d328d71626cd8d4f4b80cc34851b9a35ebb61472bdcb1869c16bb31b8177347a5beb1c7c39e863e8adb92445059336d076bead29e03a74dfa5a167e1a82312084fce69e72c48e4146783af65242c8f46f687cd4c34a783e722cb20a3d42e8894547ce08ffad9fbb2ce9f15403d194310c8de69cd1ca851fd6a62e335ac9384e929b711aa2e29419a4f348d58ebdbf856f1ddb0e70fc8a10018d3fec005ec36f958a119f6ab
#
# (C) Tenable Network Security, Inc.
#

include('compat.inc');

if (description)
{
  script_id(134303);
  script_version("1.4");
  script_set_attribute(attribute:"plugin_modification_date", value:"2020/03/10");

  script_cve_id("CVE-2019-11477", "CVE-2019-11478", "CVE-2019-11479");
  script_bugtraq_id(108798, 108801, 108818);

  script_name(english:"Arista Networks EOS Linux Kernel TCP Multiple DoS (SA0041)");

  script_set_attribute(attribute:"synopsis", value:
"The version of Arista Networks EOS running on the remote device is affected by multiple denial of service (DoS) vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"The version of Arista Networks EOS running on the remote device is affected by the following denial of service (DoS)
vulnerabilities related to TCP networking in the Linux kernel, which can be exploited by a remote, unauthenticated
attacker:

  - SACK Panic. The TCP_SKB_CB(skb)->tcp_gso_segs value is subject to an integer overflow in the Linux
    kernel when handling TCP Selective Acknowledgments (SACKs). (CVE-2019-11477)

  - SACK Slowness.  The TCP retransmission queue implementation in tcp_fragment in the Linux kernel can be
    fragmented when handling certain TCP Selective Acknowledgment (SACK) sequences. (CVE-2019-11478)

  - The Linux kernel default MSS is hard-coded to 48 bytes. This allows a remote peer to fragment TCP resend
    queues significantly more than if a larger MSS were enforced. (CVE-2019-11479)

Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
  # https://www.arista.com/en/support/advisories-notices/security-advisories/8066-security-advisory-41
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?0073e92b");
  script_set_attribute(attribute:"solution", value:
"Upgrade to Arista Networks EOS version 4.22.1F, 4.21.7M, 4.20.14M, 4.19.13M, 4.18.12M or later or 4.21.2.3F or
4.21.6.1.1F, or apply the patch from the vendor advisory.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2019-11477");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");

  script_set_attribute(attribute:"vuln_publication_date", value:"2019/06/18");
  script_set_attribute(attribute:"patch_publication_date", value:"2019/06/26");
  script_set_attribute(attribute:"plugin_publication_date", value:"2020/03/06");

  script_set_attribute(attribute:"potential_vulnerability", value:"true");
  script_set_attribute(attribute:"plugin_type", value:"combined");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:arista:eos");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Misc.");

  script_copyright(english:"This script is Copyright (C) 2020 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("arista_eos_detect.nbin");
  script_require_keys("Host/Arista-EOS/Version", "Settings/ParanoidReport");

  exit(0);
}

include('arista_eos_func.inc');
include('audit.inc');

if (report_paranoia < 2) audit(AUDIT_PARANOID);

version = get_kb_item_or_exit('Host/Arista-EOS/Version');
ext='SecurityAdvisory0041Hotfix.rpm 1.0.2/eng';
sha='7f19af46d5e520364039e4e4870a6906b233908b7ddeac6bb613bb956f797b64ede92d146d3824764502e1434d0f5f1c84db7a6c7723ac784b1db18d2b75f21a';

if(eos_extension_installed(ext:ext, sha:sha))
  audit(AUDIT_HOST_NOT, 'not vulnerable, as a relevant hotfix has been installed');

version = get_kb_item_or_exit('Host/Arista-EOS/Version');

vmatrix = make_array();
vmatrix['all'] = make_list('0.0<=4.17.99');
vmatrix['F']   =  make_list('4.22.0');
vmatrix['M']   =  make_list('4.21.0<=4.21.6',
                            '4.20.0<=4.20.13',
                            '4.19.0<=4.19.12',
                            '4.18.0<=4.18.11');

vmatrix['fix'] = '4.22.1F, 4.21.7M, 4.20.14M, 4.19.13M, 4.18.12M or later or 4.21.2.3F / 4.21.6.1.1F';

if (eos_is_affected(vmatrix:vmatrix, version:version))
  security_report_v4(severity:SECURITY_HOLE, port:0, extra:eos_report_get());
else
  audit(AUDIT_INST_VER_NOT_VULN, 'Arista Networks EOS', version);