git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Fetch/push lets a malicious server steal the targets of "have" lines
@ 2016-10-28 21:39 Matt McCutchen
  2016-10-28 22:00 ` Junio C Hamano
  0 siblings, 1 reply; 24+ messages in thread
From: Matt McCutchen @ 2016-10-28 21:39 UTC (permalink / raw)
  To: git

I was studying the fetch protocol and I realized that in a scenario in
which a client regularly fetches a set of refs from a server and pushes
them back without careful scrutiny, the server can steal the targets of
unrelated refs from the client repository by fabricating its own refs
to the "have" objects specified by the client during the fetch.  This
is the reverse of attack #1 described in the "SECURITY" section of the
gitnamespaces(7) man page, with the addition that the server doesn't
have to know the object IDs in advance.  Is this supposed to be well-
known?  I've been using git since 2006 and it was a surprise to me.

Hopefully it isn't very common for a user to fetch and push with a
server they don't trust to have all the data in their repository.  I
don't think I have any such cases myself; I have unfinished work that
isn't meant for scrutiny by others, but nothing really damaging if it
were released to the server.  This attack presents no new risks if a
user already runs code fetched from the server in such a way that it
can read the repository.  But there might be some users who just review
embargoed security fixes from multiple sources (or something like that)
without running code themselves, and their security expectations might
be violated.

If my analysis is correct, I'd argue for documenting the issue in a
"SECURITY" section in the git-fetch man page.  Shall I submit a patch?

Thanks for your attention.

Matt

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2016-11-14 19:47 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-28 21:39 Fetch/push lets a malicious server steal the targets of "have" lines Matt McCutchen
2016-10-28 22:00 ` Junio C Hamano
2016-10-28 22:16   ` Matt McCutchen
2016-10-29  1:11     ` Junio C Hamano
2016-10-29  3:33       ` Matt McCutchen
2016-10-29 13:39         ` Jeff King
2016-10-29 16:08           ` Matt McCutchen
2016-10-29 19:10             ` Jeff King
2016-10-30  7:53               ` Junio C Hamano
2016-11-13  1:25                 ` [PATCH] fetch/push: document that private data can be leaked Matt McCutchen
2016-11-14  2:57                   ` Junio C Hamano
2016-11-14 18:28                     ` Matt McCutchen
2016-11-14 18:20                       ` [PATCH] doc: mention transfer data leaks in more places Matt McCutchen
2016-11-14 19:19                         ` Junio C Hamano
2016-11-14 19:00                       ` [PATCH] fetch/push: document that private data can be leaked Junio C Hamano
2016-11-14 19:07                         ` Jeff King
2016-11-14 19:47                           ` Junio C Hamano
2016-11-14 19:08                         ` Matt McCutchen
     [not found]         ` <CAPc5daVOxmowdiTU3ScFv6c_BRVEJ+G92gx_AmmKnR-WxUKv-Q@mail.gmail.com>
2016-10-29 16:07           ` Fetch/push lets a malicious server steal the targets of "have" lines Matt McCutchen
2016-10-30  8:03             ` Junio C Hamano
2016-11-13  2:10               ` Matt McCutchen
2016-10-29 17:38       ` Jon Loeliger
2016-10-30  8:16         ` Junio C Hamano
2016-11-13  2:44           ` Matt McCutchen

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).