CVE Vulnerabilities

CVE-2021-42099

Unrestricted Upload of File with Dangerous Type

Published: Nov 30, 2021 | Modified: Dec 06, 2021
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
Ubuntu

Zoho ManageEngine M365 Manager Plus before 4421 is vulnerable to file-upload remote code execution.

Weakness

The product allows the attacker to upload or transfer files of dangerous types that can be automatically processed within the product’s environment.

Affected Software

Name Vendor Start Version End Version
Manageengine_m365_manager_plus Zohocorp - (including) - (including)
Manageengine_m365_manager_plus Zohocorp build_4000 (including) build_4000 (including)
Manageengine_m365_manager_plus Zohocorp build_4001 (including) build_4001 (including)
Manageengine_m365_manager_plus Zohocorp build_4002 (including) build_4002 (including)
Manageengine_m365_manager_plus Zohocorp build_4003 (including) build_4003 (including)
Manageengine_m365_manager_plus Zohocorp build_4004 (including) build_4004 (including)
Manageengine_m365_manager_plus Zohocorp build_4005 (including) build_4005 (including)
Manageengine_m365_manager_plus Zohocorp build_4007 (including) build_4007 (including)
Manageengine_m365_manager_plus Zohocorp build_4008 (including) build_4008 (including)
Manageengine_m365_manager_plus Zohocorp build_4009 (including) build_4009 (including)
Manageengine_m365_manager_plus Zohocorp build_4010 (including) build_4010 (including)
Manageengine_m365_manager_plus Zohocorp build_4011 (including) build_4011 (including)
Manageengine_m365_manager_plus Zohocorp build_4012 (including) build_4012 (including)
Manageengine_m365_manager_plus Zohocorp build_4013 (including) build_4013 (including)
Manageengine_m365_manager_plus Zohocorp build_4014 (including) build_4014 (including)
Manageengine_m365_manager_plus Zohocorp build_4100 (including) build_4100 (including)
Manageengine_m365_manager_plus Zohocorp build_4101 (including) build_4101 (including)
Manageengine_m365_manager_plus Zohocorp build_4102 (including) build_4102 (including)
Manageengine_m365_manager_plus Zohocorp build_4103 (including) build_4103 (including)
Manageengine_m365_manager_plus Zohocorp build_4104 (including) build_4104 (including)
Manageengine_m365_manager_plus Zohocorp build_4105 (including) build_4105 (including)
Manageengine_m365_manager_plus Zohocorp build_4106 (including) build_4106 (including)
Manageengine_m365_manager_plus Zohocorp build_4108 (including) build_4108 (including)
Manageengine_m365_manager_plus Zohocorp build_4109 (including) build_4109 (including)
Manageengine_m365_manager_plus Zohocorp build_4110 (including) build_4110 (including)
Manageengine_m365_manager_plus Zohocorp build_4111 (including) build_4111 (including)
Manageengine_m365_manager_plus Zohocorp build_4112 (including) build_4112 (including)
Manageengine_m365_manager_plus Zohocorp build_4113 (including) build_4113 (including)
Manageengine_m365_manager_plus Zohocorp build_4115 (including) build_4115 (including)
Manageengine_m365_manager_plus Zohocorp build_4116 (including) build_4116 (including)
Manageengine_m365_manager_plus Zohocorp build_4117 (including) build_4117 (including)
Manageengine_m365_manager_plus Zohocorp build_4118 (including) build_4118 (including)
Manageengine_m365_manager_plus Zohocorp build_4119 (including) build_4119 (including)
Manageengine_m365_manager_plus Zohocorp build_4200 (including) build_4200 (including)
Manageengine_m365_manager_plus Zohocorp build_4201 (including) build_4201 (including)
Manageengine_m365_manager_plus Zohocorp build_4202 (including) build_4202 (including)
Manageengine_m365_manager_plus Zohocorp build_4203 (including) build_4203 (including)
Manageengine_m365_manager_plus Zohocorp build_4204 (including) build_4204 (including)
Manageengine_m365_manager_plus Zohocorp build_4205 (including) build_4205 (including)
Manageengine_m365_manager_plus Zohocorp build_4206 (including) build_4206 (including)
Manageengine_m365_manager_plus Zohocorp build_4207 (including) build_4207 (including)
Manageengine_m365_manager_plus Zohocorp build_4208 (including) build_4208 (including)
Manageengine_m365_manager_plus Zohocorp build_4209 (including) build_4209 (including)
Manageengine_m365_manager_plus Zohocorp build_4210 (including) build_4210 (including)
Manageengine_m365_manager_plus Zohocorp build_4211 (including) build_4211 (including)
Manageengine_m365_manager_plus Zohocorp build_4212 (including) build_4212 (including)
Manageengine_m365_manager_plus Zohocorp build_4213 (including) build_4213 (including)
Manageengine_m365_manager_plus Zohocorp build_4214 (including) build_4214 (including)
Manageengine_m365_manager_plus Zohocorp build_4215 (including) build_4215 (including)
Manageengine_m365_manager_plus Zohocorp build_4216 (including) build_4216 (including)
Manageengine_m365_manager_plus Zohocorp build_4217 (including) build_4217 (including)
Manageengine_m365_manager_plus Zohocorp build_4218 (including) build_4218 (including)
Manageengine_m365_manager_plus Zohocorp build_4219 (including) build_4219 (including)
Manageengine_m365_manager_plus Zohocorp build_4220 (including) build_4220 (including)
Manageengine_m365_manager_plus Zohocorp build_4221 (including) build_4221 (including)
Manageengine_m365_manager_plus Zohocorp build_4222 (including) build_4222 (including)
Manageengine_m365_manager_plus Zohocorp build_4300 (including) build_4300 (including)
Manageengine_m365_manager_plus Zohocorp build_4301 (including) build_4301 (including)
Manageengine_m365_manager_plus Zohocorp build_4302 (including) build_4302 (including)
Manageengine_m365_manager_plus Zohocorp build_4303 (including) build_4303 (including)
Manageengine_m365_manager_plus Zohocorp build_4304 (including) build_4304 (including)
Manageengine_m365_manager_plus Zohocorp build_4305 (including) build_4305 (including)
Manageengine_m365_manager_plus Zohocorp build_4306 (including) build_4306 (including)
Manageengine_m365_manager_plus Zohocorp build_4308 (including) build_4308 (including)
Manageengine_m365_manager_plus Zohocorp build_4309 (including) build_4309 (including)
Manageengine_m365_manager_plus Zohocorp build_4310 (including) build_4310 (including)
Manageengine_m365_manager_plus Zohocorp build_4311 (including) build_4311 (including)
Manageengine_m365_manager_plus Zohocorp build_4312 (including) build_4312 (including)
Manageengine_m365_manager_plus Zohocorp build_4316 (including) build_4316 (including)
Manageengine_m365_manager_plus Zohocorp build_4317 (including) build_4317 (including)
Manageengine_m365_manager_plus Zohocorp build_4318 (including) build_4318 (including)
Manageengine_m365_manager_plus Zohocorp build_4319 (including) build_4319 (including)
Manageengine_m365_manager_plus Zohocorp build_4320 (including) build_4320 (including)
Manageengine_m365_manager_plus Zohocorp build_4321 (including) build_4321 (including)
Manageengine_m365_manager_plus Zohocorp build_4322 (including) build_4322 (including)
Manageengine_m365_manager_plus Zohocorp build_4324 (including) build_4324 (including)
Manageengine_m365_manager_plus Zohocorp build_4325 (including) build_4325 (including)
Manageengine_m365_manager_plus Zohocorp build_4327 (including) build_4327 (including)
Manageengine_m365_manager_plus Zohocorp build_4328 (including) build_4328 (including)
Manageengine_m365_manager_plus Zohocorp build_4329 (including) build_4329 (including)
Manageengine_m365_manager_plus Zohocorp build_4330 (including) build_4330 (including)
Manageengine_m365_manager_plus Zohocorp build_4331 (including) build_4331 (including)
Manageengine_m365_manager_plus Zohocorp build_4332 (including) build_4332 (including)
Manageengine_m365_manager_plus Zohocorp build_4333 (including) build_4333 (including)
Manageengine_m365_manager_plus Zohocorp build_4334 (including) build_4334 (including)
Manageengine_m365_manager_plus Zohocorp build_4335 (including) build_4335 (including)
Manageengine_m365_manager_plus Zohocorp build_4336 (including) build_4336 (including)
Manageengine_m365_manager_plus Zohocorp build_4400 (including) build_4400 (including)
Manageengine_m365_manager_plus Zohocorp build_4401 (including) build_4401 (including)
Manageengine_m365_manager_plus Zohocorp build_4402 (including) build_4402 (including)
Manageengine_m365_manager_plus Zohocorp build_4403 (including) build_4403 (including)
Manageengine_m365_manager_plus Zohocorp build_4406 (including) build_4406 (including)
Manageengine_m365_manager_plus Zohocorp build_4407 (including) build_4407 (including)
Manageengine_m365_manager_plus Zohocorp build_4408 (including) build_4408 (including)
Manageengine_m365_manager_plus Zohocorp build_4410 (including) build_4410 (including)
Manageengine_m365_manager_plus Zohocorp build_4411 (including) build_4411 (including)
Manageengine_m365_manager_plus Zohocorp build_4412 (including) build_4412 (including)
Manageengine_m365_manager_plus Zohocorp build_4413 (including) build_4413 (including)
Manageengine_m365_manager_plus Zohocorp build_4414 (including) build_4414 (including)
Manageengine_m365_manager_plus Zohocorp build_4415 (including) build_4415 (including)
Manageengine_m365_manager_plus Zohocorp build_4416 (including) build_4416 (including)
Manageengine_m365_manager_plus Zohocorp build_4417 (including) build_4417 (including)
Manageengine_m365_manager_plus Zohocorp build_4418 (including) build_4418 (including)
Manageengine_m365_manager_plus Zohocorp build_4419 (including) build_4419 (including)

Potential Mitigations

  • Assume all input is malicious. Use an “accept known good” input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.
  • When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, “boat” may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as “red” or “blue.”
  • Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code’s environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.
  • For example, limiting filenames to alphanumeric characters can help to restrict the introduction of unintended file extensions.
  • Run the code in a “jail” or similar sandbox environment that enforces strict boundaries between the process and the operating system. This may effectively restrict which files can be accessed in a particular directory or which commands can be executed by the software.
  • OS-level examples include the Unix chroot jail, AppArmor, and SELinux. In general, managed code may provide some protection. For example, java.io.FilePermission in the Java SecurityManager allows the software to specify restrictions on file operations.
  • This may not be a feasible solution, and it only limits the impact to the operating system; the rest of the application may still be subject to compromise.
  • Be careful to avoid CWE-243 and other weaknesses related to jails.

References