git/list[1] front-page[2] threads[3] people[4] search[5] about
 

bw/transport-protocol-policy

From
Jeff King <peff@peff.net>
Date
Dec 1, 2016, 08:30 UTC
Message-ID
<20161201083005.dui572o4jxsqacas@sigill.intra.peff.net>
In-Reply-To
<xmqqk2bngn03.fsf@gitster.mtv.corp.google.com>
On Mon, Nov 28, 2016 at 04:15:08PM -0800, Junio C Hamano wrote:
Show 10 quoted lines
> * bw/transport-protocol-policy (2016-11-09) 2 commits
>   (merged to 'next' on 2016-11-16 at 1391d3eeed)
>  + transport: add protocol policy config option
>  + lib-proto-disable: variable name fix
> 
>  Finer-grained control of what protocols are allowed for transports
>  during clone/fetch/push have been enabled via a new configuration
>  mechanism.
> 
>  Will cook in 'next'.

I was looking at the way the http code feeds protocol restrictions to CURLOPT_REDIR_PROTOCOLS, and I think this topic is missing two elements:

  1. The new policy config lets you say "only allow this protocol when
     the user specifies it". But when http.c calls is_transport_allowed(),
     the latter has no idea that we are asking it about potential
     redirects (which obviously do _not_ come from the user), and would
     erroneously allow them.
     I think this needs fixed before the topic is merged. It's not a
     regression, as it only comes into play if you use the new policy
     config. But it is a minor security hole in the new feature.
  2. If your curl is too old to support CURLOPT_REDIR_PROTOCOLS, we will
     warn if there is a protocol whitelist in effect. But that check
     only covers the environment whitelist, and we do not warn if you
     restrict other protocols.
     I actually think this should probably just warn indiscriminately.
     Even without a Git protocol whitelist specified, the code serves to
     prevent curl from redirecting to bizarre protocols like smtp. The
     affected curl versions are from 2009 and prior, so I kind of doubt
     it matters much either way (I'm actually tempted to suggest we bump
     the minimum curl version there; there's a ton of #ifdef cruft going
     back to 2002-era versions of libcurl).
-Peff
Previous: Stefan BellerNext: Brandon Williams
Message 29 of 34 in “What's cooking in git.git (Nov 2016, #06; Mon, 28)”
  1. Junio C HamanoNov 29, 2016
  2. Brandon WilliamsNov 29, 2016
  3. Jeff KingNov 29, 2016
  4. Jeff KingNov 29, 2016
  5. Brandon WilliamsNov 30, 2016
  6. Brandon WilliamsNov 30, 2016
  7. Jeff KingNov 30, 2016
  8. Jeff KingNov 30, 2016
  9. Brandon WilliamsNov 30, 2016
  10. Jeff KingNov 30, 2016
  11. Brandon WilliamsNov 30, 2016
  12. Jeff KingNov 30, 2016
  13. Jeff KingDec 1, 2016
  14. Brandon WilliamsDec 1, 2016
  15. Stefan BellerDec 1, 2016
  16. Brandon WilliamsDec 1, 2016
  17. Jeff KingDec 1, 2016
  18. Brandon WilliamsDec 1, 2016
  19. Stefan BellerNov 30, 2016
  20. Johannes SixtDec 1, 2016
  21. Jeff KingDec 1, 2016
  22. Jeff KingNov 29, 2016
  23. Junio C HamanoNov 29, 2016
  24. Jeff KingNov 29, 2016
  25. Stefan BellerNov 29, 2016
  26. Junio C HamanoNov 29, 2016
  27. Stefan BellerNov 29, 2016
  28. Stefan BellerNov 30, 2016
  29. bw/transport-protocol-policyJeff King, Dec 1, 2016
  30. Brandon WilliamsDec 1, 2016
  31. Jeff KingDec 1, 2016
  32. Brandon WilliamsDec 1, 2016
  33. Jeff KingDec 1, 2016
  34. Brandon WilliamsDec 1, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.