Summary
Due to the insufficient patch for the CVE-2024-39931, it's still possible to delete files under the .git directory and achieve remote command execution.
Details
In the patch for CVE-2024-39931, the following check is added:
gogs/gogs@77a4a94
+ // 🚨 SECURITY: Prevent uploading files into the ".git" directory
+ if isRepositoryGitPath(opts.TreePath) {
+ return errors.Errorf("bad tree path %q", opts.TreePath)
+ }
While the above code snippet checks if the specified path is a .git directory, there are no checks for symbolic links in the later steps. So, by creating a symbolic link that points to the .git directory, an attacker can still delete arbitrary files in the .git directory and achieve remote command execution.
Impact
Unprivileged user accounts can execute arbitrary commands on the Gogs instance with the privileges of the account specified by RUN_USER in the configuration. It allows attackers to access and alter any users' code hosted on the same instance.
References
Summary
Due to the insufficient patch for the CVE-2024-39931, it's still possible to delete files under the
.gitdirectory and achieve remote command execution.Details
In the patch for CVE-2024-39931, the following check is added:
gogs/gogs@77a4a94
While the above code snippet checks if the specified path is a
.gitdirectory, there are no checks for symbolic links in the later steps. So, by creating a symbolic link that points to the.gitdirectory, an attacker can still delete arbitrary files in the.gitdirectory and achieve remote command execution.Impact
Unprivileged user accounts can execute arbitrary commands on the Gogs instance with the privileges of the account specified by
RUN_USERin the configuration. It allows attackers to access and alter any users' code hosted on the same instance.References