extension: validate base name to prevent path traversal on installThe extension base name flowed unsanitized from an uploaded archive'splugin.info.txt (or an extension id) into getInstallDir(), wh
extension: validate base name to prevent path traversal on installThe extension base name flowed unsanitized from an uploaded archive'splugin.info.txt (or an extension id) into getInstallDir(), wherefullpath() collapses '..' segments. A crafted base such as'../../../../evil' therefore resolved outside lib/plugins/, lettingdircopy() write the archive contents to an arbitrary web-writable path.Route every base assignment through a new setBase() that rejectsanything other than a bare extension name.Note: this is not really a security concern since plugins can executearbitrary code by design. The is mostly to make sure, plugin code is notinstalled accidentally at the wrong location.
show more ...