Severity
Medium (4.7): AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N
Affected versions
- Release version 0.2.0
- Release version 0.1.1 and earlier
- Nightly version 0.2.0~git113.20210601.1ac16ecd and earlier
Fixed versions
- Release version 0.2.1
- Release version 0.1.2
- Nightly version 0.2.0~git114.20210607.0c8d25b7
Description
It was discovered that when a user receives and downloads a file in Dino, URI-encoded path separators in the file name will be decoded, allowing an attacker to traverse directories and create arbitrary files in the context of the user.
This vulnerability does not allow to overwrite or modify existing files and the attacker cannot control the executable flag of created files. However, third-party software may be affected by newly created configuration files, potentially allowing for code execution.
The file name, including path separators, is displayed to the user, however, long file names are ellipsized in the middle of the file name, allowing the attacker to hide the malicious path separators, as long as the resulting file name has sufficient length.
Advice
All deployments should upgrade to a fixed version or apply the patch from commit 0c8d25b7a3e7a10a506f1e19b868fe9b0c761495.
Credits
Many thanks to CTurt (Google) for discovering and reporting this issue.
Links
- https://dino.im/security/cve-2021-33896/
- https://github.com/dino/dino/commit/0c8d25b7
- https://github.com/dino/dino/releases/tag/v0.2.1
- https://github.com/dino/dino/releases/tag/v0.1.2
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33896
- https://nvd.nist.gov/vuln/detail/CVE-2021-33896
- https://www.openwall.com/lists/oss-security/2021/06/07/2
- https://security-tracker.debian.org/tracker/CVE-2021-33896
- https://bugzilla.redhat.com/show_bug.cgi?id=1968753
- https://bugs.gentoo.org/show_bug.cgi?id=CVE-2021-33896
- https://security.archlinux.org/CVE-2021-33896
- https://ubuntu.com/security/CVE-2021-33896