Vulnerabilities > CVE-2015-1414 - Remote Denial of Service vulnerability in FreeBSD

047910
CVSS 7.8 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
NONE
Availability impact
COMPLETE
network
low complexity
netgate
debian
freebsd
nessus

Summary

Integer overflow in FreeBSD before 8.4 p24, 9.x before 9.3 p10. 10.0 before p18, and 10.1 before p6 allows remote attackers to cause a denial of service (crash) via a crafted IGMP packet, which triggers an incorrect size calculation and allocation of insufficient memory. <a href="http://cwe.mitre.org/data/definitions/190.html">CWE-190: Integer Overflow or Wraparound</a>

Nessus

  • NASL familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_0AFE8B29600A11E6A6C314DAE9D210B8.NASL
    descriptionAn integer overflow in computing the size of IGMPv3 data buffer can result in a buffer which is too small for the requested operation. Impact : An attacker who can send specifically crafted IGMP packets could cause a denial of service situation by causing the kernel to crash.
    last seen2020-06-01
    modified2020-06-02
    plugin id92886
    published2016-08-12
    reporterThis script is Copyright (C) 2016-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/92886
    titleFreeBSD : FreeBSD -- Integer overflow in IGMP protocol (0afe8b29-600a-11e6-a6c3-14dae9d210b8)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from the FreeBSD VuXML database :
    #
    # Copyright 2003-2018 Jacques Vidrine and contributors
    #
    # Redistribution and use in source (VuXML) and 'compiled' forms (SGML,
    # HTML, PDF, PostScript, RTF and so forth) with or without modification,
    # are permitted provided that the following conditions are met:
    # 1. Redistributions of source code (VuXML) must retain the above
    #    copyright notice, this list of conditions and the following
    #    disclaimer as the first lines of this file unmodified.
    # 2. Redistributions in compiled form (transformed to other DTDs,
    #    published online in any format, converted to PDF, PostScript,
    #    RTF and other formats) must reproduce the above copyright
    #    notice, this list of conditions and the following disclaimer
    #    in the documentation and/or other materials provided with the
    #    distribution.
    # 
    # THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS"
    # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
    # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
    # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
    # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION,
    # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(92886);
      script_version("2.4");
      script_cvs_date("Date: 2018/12/07  9:46:53");
    
      script_cve_id("CVE-2015-1414");
      script_bugtraq_id(72777);
      script_xref(name:"FreeBSD", value:"SA-15:04.igmp");
    
      script_name(english:"FreeBSD : FreeBSD -- Integer overflow in IGMP protocol (0afe8b29-600a-11e6-a6c3-14dae9d210b8)");
      script_summary(english:"Checks for updated packages in pkg_info output");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:
    "The remote FreeBSD host is missing one or more security-related
    updates."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "An integer overflow in computing the size of IGMPv3 data buffer can
    result in a buffer which is too small for the requested operation.
    Impact : An attacker who can send specifically crafted IGMP packets
    could cause a denial of service situation by causing the kernel to
    crash."
      );
      # https://vuxml.freebsd.org/freebsd/0afe8b29-600a-11e6-a6c3-14dae9d210b8.html
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?7d1af53c"
      );
      script_set_attribute(attribute:"solution", value:"Update the affected packages.");
      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_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:freebsd:freebsd:FreeBSD");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:freebsd:freebsd");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2015/02/25");
      script_set_attribute(attribute:"patch_publication_date", value:"2016/08/11");
      script_set_attribute(attribute:"plugin_publication_date", value:"2016/08/12");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2016-2018 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"FreeBSD Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/FreeBSD/release", "Host/FreeBSD/pkg_info", "Settings/ParanoidReport");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("freebsd_package.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/FreeBSD/release")) audit(AUDIT_OS_NOT, "FreeBSD");
    if (!get_kb_item("Host/FreeBSD/pkg_info")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    if (report_paranoia < 2) audit(AUDIT_PARANOID);
    
    flag = 0;
    
    if (pkg_test(save_report:TRUE, pkg:"FreeBSD>=10.1<10.1_9")) flag++;
    if (pkg_test(save_report:TRUE, pkg:"FreeBSD>=9.3<9.3_13")) flag++;
    if (pkg_test(save_report:TRUE, pkg:"FreeBSD>=8.4<8.4_27")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:pkg_report_get());
      else security_hole(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-3175.NASL
    descriptionMateusz Kocielski and Marek Kroemeke discovered that an integer overflow in IGMP processing may result in denial of service through malformed IGMP packets.
    last seen2020-03-17
    modified2015-02-27
    plugin id81555
    published2015-02-27
    reporterThis script is Copyright (C) 2015-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/81555
    titleDebian DSA-3175-1 : kfreebsd-9 - 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 DSA-3175. The text 
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(81555);
      script_version("1.7");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/03/12");
    
      script_cve_id("CVE-2015-1414");
      script_bugtraq_id(72777);
      script_xref(name:"DSA", value:"3175");
    
      script_name(english:"Debian DSA-3175-1 : kfreebsd-9 - security update");
      script_summary(english:"Checks dpkg output for the updated package");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Debian host is missing a security-related update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Mateusz Kocielski and Marek Kroemeke discovered that an integer
    overflow in IGMP processing may result in denial of service through
    malformed IGMP packets."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://packages.debian.org/source/wheezy/kfreebsd-9"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.debian.org/security/2015/dsa-3175"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "Upgrade the kfreebsd-9 packages.
    
    For the stable distribution (wheezy), this problem has been fixed in
    version 9.0-10+deb70.9."
      );
      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_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:kfreebsd-9");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:7.0");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2015/02/25");
      script_set_attribute(attribute:"plugin_publication_date", value:"2015/02/27");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2015-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      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:"7.0", prefix:"kfreebsd-headers-9-486", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9-686", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9-686-smp", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9-amd64", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9-malta", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9-xen", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9.0-2", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9.0-2-486", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9.0-2-686", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9.0-2-686-smp", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9.0-2-amd64", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9.0-2-malta", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-headers-9.0-2-xen", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9-486", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9-686", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9-686-smp", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9-amd64", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9-malta", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9-xen", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9.0-2-486", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9.0-2-686", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9.0-2-686-smp", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9.0-2-amd64", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9.0-2-malta", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-image-9.0-2-xen", reference:"9.0-10+deb70.9")) flag++;
    if (deb_check(release:"7.0", prefix:"kfreebsd-source-9.0", reference:"9.0-10+deb70.9")) 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 familyFirewalls
    NASL idMCAFEE_FIREWALL_ENTERPRISE_SB10107.NASL
    descriptionThe remote host has a version of McAfee Firewall Enterprise installed that is affected by an integer overflow condition. An unauthenticated, remote attacker, by sending a specially crafted IGMP packet, can cause the application to crash due to allocation of insufficient memory. An incomplete fix was offered in 8.3.2 ePatch 41, 8.3.1 ePatch 70 and 8.2.1 ePatch 135 but newer patches have been released to fully address the issue.
    last seen2020-06-01
    modified2020-06-02
    plugin id83735
    published2015-05-20
    reporterThis script is Copyright (C) 2015-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/83735
    titleMcAfee Firewall Enterprise IGMP Packet Integer Overflow DoS (SB10107)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(83735);
      script_version("1.7");
      script_cvs_date("Date: 2018/07/14  1:59:35");
    
      script_cve_id("CVE-2015-1414");
      script_bugtraq_id(72777);
      script_xref(name:"MCAFEE-SB", value:"SB10107");
    
      script_name(english:"McAfee Firewall Enterprise IGMP Packet Integer Overflow DoS (SB10107)");
      script_summary(english:"Checks the version of MFE.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote host is affected by a denial of service vulnerability.");
      script_set_attribute(attribute:"description", value:
    "The remote host has a version of McAfee Firewall Enterprise installed
    that is affected by an integer overflow condition. An unauthenticated,
    remote attacker, by sending a specially crafted IGMP packet, can cause
    the application to crash due to allocation of insufficient memory.  An
    incomplete fix was offered in 8.3.2 ePatch 41, 8.3.1 ePatch 70 and
    8.2.1 ePatch 135 but newer patches have been released to fully address
    the issue.");
      script_set_attribute(attribute:"see_also", value:"https://kc.mcafee.com/corporate/index?page=content&id=SB10107");
      script_set_attribute(attribute:"solution", value:
    "Apply the appropriate patch referenced in the vendor security
    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_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"false");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2015/02/25");
      script_set_attribute(attribute:"patch_publication_date", value:"2015/04/23");
      script_set_attribute(attribute:"plugin_publication_date", value:"2015/05/20");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"x-cpe:/a:mcafee:firewall_enterprise");
    
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"Firewalls");
    
      script_copyright(english:"This script is Copyright (C) 2015-2018 Tenable Network Security, Inc.");
    
      script_dependencies("mcafee_firewall_enterprise_version.nbin");
      script_require_keys("Host/McAfeeFE/version", "Host/McAfeeFE/version_display", "Host/McAfeeFE/installed_patches");
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    
    app_name = "McAfee Firewall Enterprise";
    version = get_kb_item_or_exit("Host/McAfeeFE/version");
    version_display = get_kb_item_or_exit("Host/McAfeeFE/version_display");
    installed_patches = get_kb_item_or_exit("Host/McAfeeFE/installed_patches");
    
    patchmap = make_array(
      "^8\.2\.1(\.|$)"       , make_list("8.2.1E138"),
      "^8\.3\.[0-1](\.|$)"   , make_list("8.3.1E73"),
      "^8\.3\.2(\.|$)"       , make_list("8.3.2E45","8.3.2P07")
    );
    
    fix_displays = make_array(
      "^8\.2\.1(\.|$)"     , "8.2.1 ePatch 138",
      "^8\.3\.[0-1](\.|$)" , "8.3.1 ePatch 73",
      "^8\.3\.2(\.|$)"     , "8.3.2 ePatch 45 or Patch 7"
    );
    
    patches       = NULL;
    fix_display   = NULL;
    patch_missing = TRUE;
    
    # Find our patch information
    foreach vergx (keys(patchmap))
    {
      if(version =~ vergx)
      {
        patches     = patchmap[vergx];
        fix_display = fix_displays[vergx];
        break;
      }
    }
    
    if(isnull(patches))
      audit(AUDIT_INST_VER_NOT_VULN, version_display);
    
    # Check for patches that fix the issue
    foreach patch (patches)
    {
      if(patch >< installed_patches)
      {
        patch_missing = FALSE;
        break;
      }
    }
    
    if (patch_missing)
    {
      port = 0;
      if (report_verbosity > 0)
      {
        report = 
          '\n  Installed Version : ' + version_display +
          '\n  Patched Version   : ' + fix_display +
          '\n';
        security_hole(extra:report, port:port);
      }
      else security_hole(port);
      exit(0);
    }
    else audit(AUDIT_PATCH_INSTALLED, fix_display, app_name);