Skip to content
GitLab
Next
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 44,761
    • Issues 44,761
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,331
    • Merge requests 1,331
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #27828
Closed
Open
Issue created Apr 03, 2019 by James Ramsay (ex-GitLab)@jramsay-gitlab🔴Contributor

Re-enable Git protocol v2

Problem to solve

The Git wire protocol version 1 is not bandwidth efficient when large numbers of refs exist on the server, and are therfore advertised. This can significantly increase the data transferred from the server to the client for small operations.

Early versions of Git supporting protocol v2 had an issue where hidden refs were not respected https://gitlab.com/gitlab-org/gitlab-ce/issues/55769, creating performance and security problems. GitLab disabled support for protocol v2.

Further details

The security issue has since been resolved in Git 2.21.0

  • The v2 upload-pack protocol implementation failed to honor hidden-ref configuration, which has been corrected. (merge e20b4192a3 jk/proto-v2-hidden-refs-fix later to maint).

https://github.com/git/git/blob/master/Documentation/RelNotes/2.21.0.txt#L293-L295

Proposal

Add a feature flag to control support for protocol v2 for Git versions 2.21.0 and above.

A feature flag is necessary in case further security issues are identified in the new protocol.

Links / references

Edited Aug 05, 2019 by James Ramsay (ex-GitLab)
Assignee
Assign to
Time tracking