The Firmware version of the Zyxel USG, ATP, ZyWALL or VPN is affected by multiple vulnerabilities:
A buffer overflow vulnerability in the notification function in Zyxel ATP series firmware versions 4.32 through 5.36 Patch 1, USG FLEX series firmware versions 4.50 through 5.36 Patch 1, USG FLEX 50(W) firmware versions 4.25 through 5.36 Patch 1, USG20(W)-VPN firmware versions 4.25 through 5.36 Patch 1, VPN series firmware versions 4.30 through 5.36 Patch 1, ZyWALL/USG series firmware versions 4.25 through 4.73 Patch 1, could allow an unauthenticated attacker to cause denial-of-service (DoS) conditions and even a remote code execution on an affected device. (CVE-2023-33009)
A buffer overflow vulnerability in the notification function in Zyxel ATP series firmware versions 4.32 through 5.36 Patch 1, USG FLEX series firmware versions 4.50 through 5.36 Patch 1, USG FLEX 50(W) firmware versions 4.25 through 5.36 Patch 1, USG20(W)-VPN firmware versions 4.25 through 5.36 Patch 1, VPN series firmware versions 4.30 through 5.36 Patch 1, ZyWALL/USG series firmware versions 4.25 through 4.73 Patch 1, could allow an unauthenticated attacker to cause denial-of-service (DoS) conditions and even a remote code execution on an affected device. (CVE-2023-33010)
Note that Nessus has not tested for this issue but has instead relied only on the applicationโs self-reported version number.
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(176416);
script_version("1.4");
script_set_attribute(attribute:"plugin_modification_date", value:"2023/06/09");
script_cve_id("CVE-2023-33009", "CVE-2023-33010");
script_xref(name:"CISA-KNOWN-EXPLOITED", value:"2023/06/26");
script_xref(name:"IAVA", value:"2023-A-0279");
script_name(english:"Zyxel USG < 4.35 / ATP < 4.35 / VPN < 4.35 / ZyWALL < 4.35 (RCE) (CVE-2020-9054)");
script_set_attribute(attribute:"synopsis", value:
"The remote security gateway is affected by a remote code execution vulnerability.");
script_set_attribute(attribute:"description", value:
"The Firmware version of the Zyxel USG, ATP, ZyWALL or VPN is affected by multiple vulnerabilities:
- A buffer overflow vulnerability in the notification function in Zyxel ATP series firmware versions 4.32
through 5.36 Patch 1, USG FLEX series firmware versions 4.50 through 5.36 Patch 1, USG FLEX 50(W)
firmware versions 4.25 through 5.36 Patch 1, USG20(W)-VPN firmware versions 4.25 through 5.36 Patch 1,
VPN series firmware versions 4.30 through 5.36 Patch 1, ZyWALL/USG series firmware versions 4.25 through
4.73 Patch 1, could allow an unauthenticated attacker to cause denial-of-service (DoS) conditions and
even a remote code execution on an affected device. (CVE-2023-33009)
- A buffer overflow vulnerability in the notification function in Zyxel ATP series firmware versions 4.32
through 5.36 Patch 1, USG FLEX series firmware versions 4.50 through 5.36 Patch 1, USG FLEX 50(W) firmware
versions 4.25 through 5.36 Patch 1, USG20(W)-VPN firmware versions 4.25 through 5.36 Patch 1, VPN series
firmware versions 4.30 through 5.36 Patch 1, ZyWALL/USG series firmware versions 4.25 through 4.73 Patch 1,
could allow an unauthenticated attacker to cause denial-of-service (DoS) conditions and even a remote code
execution on an affected device. (CVE-2023-33010)
Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
# https://www.zyxel.com/global/en/support/security-advisories/zyxel-security-advisory-for-multiple-buffer-overflow-vulnerabilities-of-firewalls
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?5a194b9d");
script_set_attribute(attribute:"solution", value:
"Upgrade to Zyxel USG / ATP / VPN to version 4.36 Patch 1 or later or upgrade Zyxel ZyWALL to version 4.73 Patch 1 or later.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:F/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:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:F/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2023-33010");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2023/05/24");
script_set_attribute(attribute:"patch_publication_date", value:"2023/05/24");
script_set_attribute(attribute:"plugin_publication_date", value:"2023/05/26");
script_set_attribute(attribute:"potential_vulnerability", value:"true");
script_set_attribute(attribute:"plugin_type", value:"combined");
script_set_attribute(attribute:"cpe", value:"cpe:/h:zyxel:usg_flex");
script_set_attribute(attribute:"stig_severity", value:"I");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Firewalls");
script_copyright(english:"This script is Copyright (C) 2023 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("zyxel_usg_web_detect.nbin", "zyxel_usg_detect.nbin");
script_require_keys("Settings/ParanoidReport", "installed_sw/Zyxel Unified Security Gateway (USG)");
script_require_ports("Services/www", 80, 443);
exit(0);
}
include('vcf.inc');
# we don't have the ability to detect the patch level yet,
# so paranoia is required and fixed version is + .01
if (report_paranoia < 2) audit(AUDIT_PARANOID);
var app = 'Zyxel Unified Security Gateway (USG)';
var app_info = vcf::combined_get_app_info(app:app);
var model = app_info['Model'];
var constraints = [];
if(empty_or_null(model))
audit(AUDIT_OS_CONF_UNKNOWN, 'Zyxel device');
if ('ATP' >< model)
constraints = [{'min_version':'4.32', 'fixed_version' : '5.36.01', 'fixed_display' : '5.36 Patch 1' }];
else if (model =~ "USG FLEX [25]0W?[^0]")
constraints = [{'min_version':'4.25', 'fixed_version' : '5.36.01', 'fixed_display' : '5.36 Patch 1' }];
else if ('USG FLEX' >< model)
constraints = [{'min_version':'4.50', 'fixed_version' : '5.36.01', 'fixed_display' : '5.36 Patch 1' }];
else if ('VPN' >< model)
constraints = [{'min_version':'4.30', 'fixed_version' : '5.36.01', 'fixed_display' : '5.36 Patch 1' }];
else if ('ZyWALL' >< model)
constraints = [{'min_version':'4.25', 'fixed_version' : '4.73.01', 'fixed_display' : '4.73 Patch 1' }];
else
audit(AUDIT_NOT_INST, 'Zyxel USG / ATP / VPN / ZyWALL Device');
vcf::check_version_and_report(
app_info:app_info,
constraints:constraints,
severity:SECURITY_HOLE
);