GithubHelp home page GithubHelp logo

everyone-committed-this-repository's Introduction

Everyone committed this repository

Yes, everyone "committed" this repository. I made this repositoty to show a feature on GitHub that can be used for impersionation, as a PoC I made a lot of commits impersionating random users.

What is?

I got a lot of people to commit and make changes to this repository. GIT was created for software versioning and GitHub is a platform that supports this versioning using GIT. Within the GIT in a local repository, you can configure your username and e-mail in each of the commits, in order to control each change. (Go to your repository and a git log!) So once these changes are pushed to GitHub, Github for some reason takes this email and username information and links it to valid platform users so I can get Linus Torvalds to commit to that repository (without him even having idea of who I am :/ ). I dont belive it is a vulnerability, its just fun! and can be used for something bad.

Exploitation

Within this exploration I used this feature of linking valid users and a way to get emails from users inside commits. I made a python script to clone large repositories and extract valid usernames and emails, then it makes several local changes and finally pushes it to the repository. The impact of this is to give credibility to repositories by having many important people or people "commit" to them (impersionation).

GitHub response:

Because Git is a distributed version control system GitHub must use the commit email address to assign attribution. When you push a repository to GitHub.com it may contain one or more commits, some of which you may not have authored. For example, imagine a scenario where you collaborated with a number of people on a Git repository before you made your first push of that repo to GitHub.com. This push would contain a number of commits from several authors. It would be incorrect to assign all of the commits to the person doing the push, so we use the commit log email addresses to assign attribution on GitHub.com. Each subsequent push to GitHub uses this same logic to assign attribution of commit authors. In order to verify that commits are made by a specific person, you may consider signing commits using a GPG key: https://help.github.com/articles/signing-commits-using-gpg/. Commit signatures can be used to show commits as verified on GitHub.com and can be used to verify the commits offline. https://bounty.github.com/ineligible.html#impersonating_a_user_through_git_email_address

everyone-committed-this-repository's People

Contributors

aeberhardo avatar arcanedev-maroc avatar browner12 avatar bruceauyeung avatar carlory avatar crynobone avatar ehsandeep avatar hzxuzhonghu avatar ice3man543 avatar jakobud avatar juandmegon avatar kchason avatar mzack9999 avatar netpok avatar nishan8583 avatar nothinux avatar pacoxu avatar serhatdurum avatar sullo avatar syntaqx avatar terminalfi avatar thybag avatar tobsn avatar tommyc81 avatar viniciuspereiras avatar vlakoff avatar vus520 avatar xichengliudui avatar yupengzte avatar yuzhiquan avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

eswzy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.