+cc the author of gitview

On Tue, Dec 27, 2016 at 12:29 AM, Javantea <[email protected]> wrote:
> I have found a shell injection vulnerability in contrib/gitview/gitview.
>
> Gitview Shell Injection Vulnerability
>
> Versions affected: 8cb711c8a5-1d1bdafd64 (<=2.11.0)
>
> Gitview executes shell commands using string concatenation with user supplied 
> data, filenames and branch names. Running Gitview and interacting with the 
> user interface with a malicious filename or branch name in the current 
> repository results in malicious commands being executed as the current user.
>
> AnnotateWindow.add_file_data(self, filename, commit_sha1, line_num):
>     fp = os.popen("git cat-file blob " + commit_sha1 +":"+filename)
>
> AnnotateWindow.annotate(self, filename, commit_sha1, line_num):
>     fp = os.popen("git ls-tree "+ commit_sha1 + " -- " + filename)
>     fp = os.popen("git blame --incremental -C -C -- " + filename + " " + 
> commit_sha1)
>
> GitView.set_branch(self, args):
>     fp = os.popen("git rev-parse --sq --default HEAD " + list_to_string(args, 
> 1))
>     fp = os.popen("git rev-list  --header --topo-order --parents " + 
> git_rev_list_cmd)
>
> The program also has other uses of os.popen but none use values that the user 
> can manipulate. However, the fix should definitely replace these instances so 
> that the code might one day pass pylint and manual code review easier.
>
> The function os.popen has been replaced by safer functions in the subprocess 
> module. The code can be improved easily because it requires very little 
> change to convert the code to work with arrays of strings instead of strings.
>
> If you have any questions or would like a patch, please let me know.
>

I guess you could send a patch to fix it. It is unclear to me
how the patch submission process for these work, though.
Please see contrib/README to see why it is unclear to me.

> I expect that things that start their life in the contrib/ area
> to graduate out of contrib/ once they mature, either by becoming
> projects on their own, or moving to the toplevel directory.  On
> the other hand, I expect I'll be proposing removal of disused
> and inactive ones from time to time.

Maybe it's time for a spring cleanup and remove some old (dead?)
projects from contrib?

Thanks,
Stefan

Reply via email to