Vulnerabilities > CVE-2014-3985 - Improper Restriction of Operations Within the Bounds of A Memory Buffer vulnerability in multiple products
Attack vector
NETWORK Attack complexity
LOW Privileges required
NONE Confidentiality impact
NONE Integrity impact
NONE Availability impact
PARTIAL Summary
The getHTTPResponse function in miniwget.c in MiniUPnP 1.9 allows remote attackers to cause a denial of service (crash) via crafted headers that trigger an out-of-bounds read.
Vulnerable Configurations
Part | Description | Count |
---|---|---|
Application | 1 | |
OS | 1 | |
OS | 2 |
Common Weakness Enumeration (CWE)
Common Attack Pattern Enumeration and Classification (CAPEC)
- Buffer Overflow via Environment Variables This attack pattern involves causing a buffer overflow through manipulation of environment variables. Once the attacker finds that they can modify an environment variable, they may try to overflow associated buffers. This attack leverages implicit trust often placed in environment variables.
- Overflow Buffers Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an attacker. As a consequence, an attacker is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the attackers' choice.
- Client-side Injection-induced Buffer Overflow This type of attack exploits a buffer overflow vulnerability in targeted client software through injection of malicious content from a custom-built hostile service.
- Filter Failure through Buffer Overflow In this attack, the idea is to cause an active filter to fail by causing an oversized transaction. An attacker may try to feed overly long input strings to the program in an attempt to overwhelm the filter (by causing a buffer overflow) and hoping that the filter does not fail securely (i.e. the user input is let into the system unfiltered).
- MIME Conversion An attacker exploits a weakness in the MIME conversion routine to cause a buffer overflow and gain control over the mail server machine. The MIME system is designed to allow various different information formats to be interpreted and sent via e-mail. Attack points exist when data are converted to MIME compatible format and back.
Nessus
NASL family Mandriva Local Security Checks NASL id MANDRIVA_MDVSA-2014-120.NASL description Updated miniupnpc packages fix security vulnerability : The miniupnpc library before 1.9 may be vulnerable to a denial of service due to a buffer overrun that can be triggered by something on the network. last seen 2020-06-01 modified 2020-06-02 plugin id 74453 published 2014-06-11 reporter This script is Copyright (C) 2014-2019 Tenable Network Security, Inc. source https://www.tenable.com/plugins/nessus/74453 title Mandriva Linux Security Advisory : miniupnpc (MDVSA-2014:120) code #%NASL_MIN_LEVEL 80502 # # (C) Tenable Network Security, Inc. # # The descriptive text and package checks in this plugin were # extracted from Mandriva Linux Security Advisory MDVSA-2014:120. # The text itself is copyright (C) Mandriva S.A. # include("compat.inc"); if (description) { script_id(74453); script_version("1.7"); script_cvs_date("Date: 2019/08/02 13:32:56"); script_cve_id("CVE-2014-3985"); script_bugtraq_id(67152); script_xref(name:"MDVSA", value:"2014:120"); script_name(english:"Mandriva Linux Security Advisory : miniupnpc (MDVSA-2014:120)"); script_summary(english:"Checks rpm output for the updated packages"); script_set_attribute( attribute:"synopsis", value: "The remote Mandriva Linux host is missing one or more security updates." ); script_set_attribute( attribute:"description", value: "Updated miniupnpc packages fix security vulnerability : The miniupnpc library before 1.9 may be vulnerable to a denial of service due to a buffer overrun that can be triggered by something on the network." ); script_set_attribute( attribute:"see_also", value:"http://advisories.mageia.org/MGASA-2014-0224.html" ); script_set_attribute( attribute:"solution", value: "Update the affected lib64miniupnpc-devel and / or lib64miniupnpc8 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:mandriva:linux:lib64miniupnpc-devel"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:mandriva:linux:lib64miniupnpc8"); script_set_attribute(attribute:"cpe", value:"cpe:/o:mandriva:business_server:1"); script_set_attribute(attribute:"patch_publication_date", value:"2014/06/10"); script_set_attribute(attribute:"plugin_publication_date", value:"2014/06/11"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_copyright(english:"This script is Copyright (C) 2014-2019 Tenable Network Security, Inc."); script_family(english:"Mandriva Local Security Checks"); script_dependencies("ssh_get_info.nasl"); script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/Mandrake/release", "Host/Mandrake/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); if (!get_kb_item("Host/Mandrake/release")) audit(AUDIT_OS_NOT, "Mandriva / Mandake Linux"); if (!get_kb_item("Host/Mandrake/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING); cpu = get_kb_item("Host/cpu"); if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH); if (cpu !~ "^(amd64|i[3-6]86|x86_64)$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Mandriva / Mandrake Linux", cpu); flag = 0; if (rpm_check(release:"MDK-MBS1", cpu:"x86_64", reference:"lib64miniupnpc-devel-1.6-3.1.mbs1")) flag++; if (rpm_check(release:"MDK-MBS1", cpu:"x86_64", reference:"lib64miniupnpc8-1.6-3.1.mbs1")) flag++; if (flag) { if (report_verbosity > 0) security_hole(port:0, extra:rpm_report_get()); else security_hole(0); exit(0); } else audit(AUDIT_HOST_NOT, "affected");
NASL family Gentoo Local Security Checks NASL id GENTOO_GLSA-201701-41.NASL description The remote host is affected by the vulnerability described in GLSA-201701-41 (MiniUPnPc: Buffer overflow) An out-of-bounds read was discovered in the getHTTPResponse function in miniwget.c in MiniUPnPc. Impact : Remote attackers, through specially crafted headers, could cause a Denial of Service condition. Workaround : There is no known workaround at this time. last seen 2020-06-01 modified 2020-06-02 plugin id 96575 published 2017-01-18 reporter This script is Copyright (C) 2017 Tenable Network Security, Inc. source https://www.tenable.com/plugins/nessus/96575 title GLSA-201701-41 : MiniUPnPc: Buffer overflow code # # (C) Tenable Network Security, Inc. # # The descriptive text and package checks in this plugin were # extracted from Gentoo Linux Security Advisory GLSA 201701-41. # # The advisory text is Copyright (C) 2001-2017 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(96575); script_version("$Revision: 3.1 $"); script_cvs_date("$Date: 2017/01/18 14:49:21 $"); script_cve_id("CVE-2014-3985"); script_xref(name:"GLSA", value:"201701-41"); script_name(english:"GLSA-201701-41 : MiniUPnPc: 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-201701-41 (MiniUPnPc: Buffer overflow) An out-of-bounds read was discovered in the getHTTPResponse function in miniwget.c in MiniUPnPc. Impact : Remote attackers, through specially crafted headers, could cause a Denial of Service condition. Workaround : There is no known workaround at this time." ); script_set_attribute( attribute:"see_also", value:"https://security.gentoo.org/glsa/201701-41" ); script_set_attribute( attribute:"solution", value: "All MiniUPnPc users should upgrade to the latest version: # emerge --sync # emerge --ask --oneshot --verbose '>=net-libs/miniupnpc-1.9.20150427'" ); script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:miniupnpc"); script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux"); script_set_attribute(attribute:"patch_publication_date", value:"2017/01/17"); script_set_attribute(attribute:"plugin_publication_date", value:"2017/01/18"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_copyright(english:"This script is Copyright (C) 2017 Tenable Network Security, Inc."); 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-libs/miniupnpc", unaffected:make_list("ge 1.9.20150427"), vulnerable:make_list("lt 1.9.20150427"))) flag++; if (flag) { if (report_verbosity > 0) security_warning(port:0, extra:qpkg_report_get()); else security_warning(0); exit(0); } else { tested = qpkg_tests_get(); if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested); else audit(AUDIT_PACKAGE_NOT_INSTALLED, "MiniUPnPc"); }
NASL family Ubuntu Local Security Checks NASL id UBUNTU_USN-2280-1.NASL description It was discovered that MiniUPnPc incorrectly handled certain buffer lengths. A remote attacker could possibly use this issue to cause applications using MiniUPnPc to crash, resulting in a denial of service. 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 seen 2020-06-01 modified 2020-06-02 plugin id 76560 published 2014-07-17 reporter Ubuntu Security Notice (C) 2014-2019 Canonical, Inc. / NASL script (C) 2014-2019 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/76560 title Ubuntu 12.04 LTS / 13.10 / 14.04 LTS : miniupnpc vulnerability (USN-2280-1) code # # (C) Tenable Network Security, Inc. # # The descriptive text and package checks in this plugin were # extracted from Ubuntu Security Notice USN-2280-1. The text # itself is copyright (C) Canonical, Inc. See # <http://www.ubuntu.com/usn/>. Ubuntu(R) is a registered # trademark of Canonical, Inc. # include("compat.inc"); if (description) { script_id(76560); script_version("1.7"); script_cvs_date("Date: 2019/09/19 12:54:30"); script_cve_id("CVE-2014-3985"); script_bugtraq_id(67152); script_xref(name:"USN", value:"2280-1"); script_name(english:"Ubuntu 12.04 LTS / 13.10 / 14.04 LTS : miniupnpc vulnerability (USN-2280-1)"); script_summary(english:"Checks dpkg output for updated package."); script_set_attribute( attribute:"synopsis", value:"The remote Ubuntu host is missing a security-related patch." ); script_set_attribute( attribute:"description", value: "It was discovered that MiniUPnPc incorrectly handled certain buffer lengths. A remote attacker could possibly use this issue to cause applications using MiniUPnPc to crash, resulting in a denial of service. 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." ); script_set_attribute( attribute:"see_also", value:"https://usn.ubuntu.com/2280-1/" ); script_set_attribute( attribute:"solution", value:"Update the affected libminiupnpc8 package." ); script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/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:canonical:ubuntu_linux:libminiupnpc8"); script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:12.04:-:lts"); script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:13.10"); script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:14.04"); script_set_attribute(attribute:"vuln_publication_date", value:"2014/09/11"); script_set_attribute(attribute:"patch_publication_date", value:"2014/07/16"); script_set_attribute(attribute:"plugin_publication_date", value:"2014/07/17"); script_set_attribute(attribute:"generated_plugin", value:"current"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_copyright(english:"Ubuntu Security Notice (C) 2014-2019 Canonical, Inc. / NASL script (C) 2014-2019 and is owned by Tenable, Inc. or an Affiliate thereof."); script_family(english:"Ubuntu Local Security Checks"); script_dependencies("ssh_get_info.nasl"); script_require_keys("Host/cpu", "Host/Ubuntu", "Host/Ubuntu/release", "Host/Debian/dpkg-l"); exit(0); } include("audit.inc"); include("ubuntu.inc"); include("misc_func.inc"); if ( ! get_kb_item("Host/local_checks_enabled") ) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED); release = get_kb_item("Host/Ubuntu/release"); if ( isnull(release) ) audit(AUDIT_OS_NOT, "Ubuntu"); release = chomp(release); if (! preg(pattern:"^(12\.04|13\.10|14\.04)$", string:release)) audit(AUDIT_OS_NOT, "Ubuntu 12.04 / 13.10 / 14.04", "Ubuntu " + release); if ( ! get_kb_item("Host/Debian/dpkg-l") ) audit(AUDIT_PACKAGE_LIST_MISSING); cpu = get_kb_item("Host/cpu"); if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH); if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Ubuntu", cpu); flag = 0; if (ubuntu_check(osver:"12.04", pkgname:"libminiupnpc8", pkgver:"1.6-3ubuntu1.1")) flag++; if (ubuntu_check(osver:"13.10", pkgname:"libminiupnpc8", pkgver:"1.6-3ubuntu2.13.10.1")) flag++; if (ubuntu_check(osver:"14.04", pkgname:"libminiupnpc8", pkgver:"1.6-3ubuntu2.14.04.1")) flag++; if (flag) { security_report_v4( port : 0, severity : SECURITY_WARNING, extra : ubuntu_report_get() ); exit(0); } else { tested = ubuntu_pkg_tests_get(); if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested); else audit(AUDIT_PACKAGE_NOT_INSTALLED, "libminiupnpc8"); }
NASL family SuSE Local Security Checks NASL id OPENSUSE-2014-431.NASL description miniupnpc was updated to 1.9 to fix a potential buffer overrun in miniwget.c (CVE-2014-3985). Besides that the following issues were fixed : - added argument remoteHost to UPNP_GetSpecificPortMappingEntry() - increment API_VERSION to 10 - --help and -h arguments in upnpc.c - define MAXHOSTNAMELEN if not already done - update upnpreplyparse to allow larger values (128 chars instead of 64) - Update upnpreplyparse to take into account last seen 2020-06-05 modified 2014-06-19 plugin id 76137 published 2014-06-19 reporter This script is Copyright (C) 2014-2020 and is owned by Tenable, Inc. or an Affiliate thereof. source https://www.tenable.com/plugins/nessus/76137 title openSUSE Security Update : miniupnpc (openSUSE-SU-2014:0815-1) code #%NASL_MIN_LEVEL 80502 # # (C) Tenable Network Security, Inc. # # The descriptive text and package checks in this plugin were # extracted from openSUSE Security Update openSUSE-2014-431. # # The text description of this plugin is (C) SUSE LLC. # include("compat.inc"); if (description) { script_id(76137); script_version("1.4"); script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04"); script_cve_id("CVE-2014-3985"); script_name(english:"openSUSE Security Update : miniupnpc (openSUSE-SU-2014:0815-1)"); script_summary(english:"Check for the openSUSE-2014-431 patch"); script_set_attribute( attribute:"synopsis", value:"The remote openSUSE host is missing a security update." ); script_set_attribute( attribute:"description", value: "miniupnpc was updated to 1.9 to fix a potential buffer overrun in miniwget.c (CVE-2014-3985). Besides that the following issues were fixed : - added argument remoteHost to UPNP_GetSpecificPortMappingEntry() - increment API_VERSION to 10 - --help and -h arguments in upnpc.c - define MAXHOSTNAMELEN if not already done - update upnpreplyparse to allow larger values (128 chars instead of 64) - Update upnpreplyparse to take into account 'empty' elements - validate upnpreplyparse.c code with 'make check' - Fix Solaris build thanks to Maciej Małecki - Fix testminiwget.sh for BSD - Fixed Makefile for *BSD - Update Makefile to use JNAerator version 0.11 - Fix testminiwget.sh for use with dash - Use $(DESTDIR) in Makefile" ); script_set_attribute( attribute:"see_also", value:"https://bugzilla.novell.com/show_bug.cgi?id=881990" ); script_set_attribute( attribute:"see_also", value:"https://lists.opensuse.org/opensuse-updates/2014-06/msg00039.html" ); script_set_attribute( attribute:"solution", value:"Update the affected miniupnpc packages." ); script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P"); script_set_attribute(attribute:"plugin_type", value:"local"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libminiupnpc-devel"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libminiupnpc10"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:libminiupnpc10-debuginfo"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:miniupnpc"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:miniupnpc-debuginfo"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:python-miniupnpc"); script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:python-miniupnpc-debuginfo"); script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:12.3"); script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:13.1"); script_set_attribute(attribute:"patch_publication_date", value:"2014/06/11"); script_set_attribute(attribute:"plugin_publication_date", value:"2014/06/19"); script_end_attributes(); script_category(ACT_GATHER_INFO); script_copyright(english:"This script is Copyright (C) 2014-2020 and is owned by Tenable, Inc. or an Affiliate thereof."); script_family(english:"SuSE Local Security Checks"); script_dependencies("ssh_get_info.nasl"); script_require_keys("Host/local_checks_enabled", "Host/SuSE/release", "Host/SuSE/rpm-list", "Host/cpu"); 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/SuSE/release"); if (isnull(release) || release =~ "^(SLED|SLES)") audit(AUDIT_OS_NOT, "openSUSE"); if (release !~ "^(SUSE12\.3|SUSE13\.1)$") audit(AUDIT_OS_RELEASE_NOT, "openSUSE", "12.3 / 13.1", release); if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING); ourarch = get_kb_item("Host/cpu"); if (!ourarch) audit(AUDIT_UNKNOWN_ARCH); if (ourarch !~ "^(i586|i686|x86_64)$") audit(AUDIT_ARCH_NOT, "i586 / i686 / x86_64", ourarch); flag = 0; if ( rpm_check(release:"SUSE12.3", reference:"libminiupnpc-devel-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE12.3", reference:"libminiupnpc10-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE12.3", reference:"libminiupnpc10-debuginfo-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE12.3", reference:"miniupnpc-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE12.3", reference:"miniupnpc-debuginfo-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE12.3", reference:"python-miniupnpc-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE12.3", reference:"python-miniupnpc-debuginfo-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE13.1", reference:"libminiupnpc-devel-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE13.1", reference:"libminiupnpc10-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE13.1", reference:"libminiupnpc10-debuginfo-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE13.1", reference:"miniupnpc-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE13.1", reference:"miniupnpc-debuginfo-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE13.1", reference:"python-miniupnpc-1.9-2.4.1") ) flag++; if ( rpm_check(release:"SUSE13.1", reference:"python-miniupnpc-debuginfo-1.9-2.4.1") ) 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, "miniupnpc"); }
References
- http://lists.opensuse.org/opensuse-updates/2014-06/msg00039.html
- http://seclists.org/oss-sec/2014/q2/201
- http://seclists.org/oss-sec/2014/q2/496
- http://www.securityfocus.com/bid/67152
- https://bugzilla.redhat.com/show_bug.cgi?id=1085618
- https://github.com/miniupnp/miniupnp/commit/3a87aa2f10bd7f1408e1849bdb59c41dd63a9fe9
- https://security.gentoo.org/glsa/201701-41