CVE-2022-46648
ruby-git versions prior to v1.13.0 allows a remote authenticated attacker to execute an arbitrary ruby code by having a user to load a repository containing a specially crafted filename to the product. This vulnerability is different from CVE-2022-47318.
02 / AFFECTED SOFTWARE
Affected packages
1 explicit affected versions
26 explicit affected versions
04 / EVIDENCE
Source records
ruby-git versions prior to v1.13.0 allows a remote authenticated attacker to execute an arbitrary ruby code by having a user to load a repository containing a specially crafted filename to the product. This vulnerability is different from CVE-2022-47318.
The git gem, between versions 1.2.0 and 1.12.0, incorrectly parsed the output of the `git ls-files` command using `eval()` to unescape quoted file names. If a file name was added to the git repository contained special characters, such as `\n`, then the `git ls-files` command would print the file name in quotes and escape any special characters. If the `Git#ls_files` method encountered a quoted file name it would use `eval()` to unquote and unescape any special characters, leading to potential remote code execution. Version 1.13.0 of the git gem was released which correctly parses any quoted file names.
05 / REFERENCES
Further evidence
- https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/46xxx/CVE-2022-46648.json
- https://github.com/ruby-git/ruby-git
- https://github.com/ruby-git/ruby-git/pull/602
- https://jvn.jp/en/jp/JVN16765254/index.html
- https://lists.debian.org/debian-lts-announce/2023/01/msg00043.html
- https://nvd.nist.gov/vuln/detail/CVE-2022-46648
- https://github.com/ruby-git/ruby-git/releases/tag/v1.13.0
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/git/CVE-2022-46648.yml