git-annex/NEWS
Joey Hess 28720c795f
limit url downloads to whitelisted schemes
Security fix! Allowing any schemes, particularly file: and
possibly others like scp: allowed file exfiltration by anyone who had
write access to the git repository, since they could add an annexed file
using such an url, or using an url that redirected to such an url,
and wait for the victim to get it into their repository and send them a copy.

* Added annex.security.allowed-url-schemes setting, which defaults
  to only allowing http and https URLs. Note especially that file:/
  is no longer enabled by default.

* Removed annex.web-download-command, since its interface does not allow
  supporting annex.security.allowed-url-schemes across redirects.
  If you used this setting, you may want to instead use annex.web-options
  to pass options to curl.

With annex.web-download-command removed, nearly all url accesses in
git-annex are made via Utility.Url via http-client or curl. http-client
only supports http and https, so no problem there.
(Disabling one and not the other is not implemented.)

Used curl --proto to limit the allowed url schemes.

Note that this will cause git annex fsck --from web to mark files using
a disallowed url scheme as not being present in the web. That seems
acceptable; fsck --from web also does that when a web server is not available.

youtube-dl already disabled file: itself (probably for similar
reasons). The scheme check was also added to youtube-dl urls for
completeness, although that check won't catch any redirects it might
follow. But youtube-dl goes off and does its own thing with other
protocols anyway, so that's fine.

Special remotes that support other domain-specific url schemes are not
affected by this change. In the bittorrent remote, aria2c can still
download magnet: links. The download of the .torrent file is
otherwise now limited by annex.security.allowed-url-schemes.

This does not address any external special remotes that might download
an url themselves. Current thinking is all external special remotes will
need to be audited for this problem, although many of them will use
http libraries that only support http and not curl's menagarie.

The related problem of accessing private localhost and LAN urls is not
addressed by this commit.

This commit was sponsored by Brett Eisenberg on Patreon.
2018-06-16 11:57:50 -04:00

87 lines
3.3 KiB
Text

git-annex (6.20180622) upstream; urgency=high
A security fix has changed git-annex to only support http and https
URL schemes by default. You can enable other URL schemes, at your own risk,
using annex.security.allowed-url-schemes.
The annex.web-download-command configuration has been removed,
use annex.web-options instead.
-- Joey Hess <id@joeyh.name> Fri, 15 Jun 2018 17:54:23 -0400
git-annex (6.20180309) upstream; urgency=medium
Note that, due to not using rsync to transfer files over ssh
any longer, permissions and other file metadata of annexed files
will no longer be preserved when copying them to and from ssh remotes.
Other remotes never supported preserving that information, so
this is not considered a regression.
-- Joey Hess <id@joeyh.name> Fri, 09 Mar 2018 13:22:47 -0400
git-annex (6.20170228) upstream; urgency=medium
This version of git-annex has mitigations for SHA1 hash collision
problems.
A new annex.securehashesonly configuration, when used in combination with
signed git commits, avoids potential hash collision problems in git-annex
repositories. For details, see this web page:
<https://git-annex.branchable.com/tips/using_signed_git_commits/>
-- Joey Hess <id@joeyh.name> Tue, 28 Feb 2017 13:28:50 -0400
git-annex (6.20170101) upstream; urgency=medium
XMPP support has been removed from the assistant in this release.
If your repositories used XMPP to keep in sync, that will no longer
work, and you should enable some other remote to keep them in sync.
A ssh server is one way, or use the new Tor pairing feature.
-- Joey Hess <id@joeyh.name> Tue, 27 Dec 2016 16:37:46 -0400
git-annex (4.20131002) upstream; urgency=low
The layout of gcrypt repositories has changed, and
if you created one you must manually upgrade it.
See /usr/share/doc/git-annex/html/upgrades/gcrypt.html
-- Joey Hess <joeyh@debian.org> Tue, 24 Sep 2013 13:55:23 -0400
git-annex (3.20120123) upstream; urgency=low
There was a bug in the handling of directory special remotes that
could cause partial file contents to be stored in them. If you use
a directory special remote, you should fsck it, to avoid potential
data loss.
Example: git annex fsck --from mydirectory
-- Joey Hess <joeyh@debian.org> Thu, 19 Jan 2012 15:24:23 -0400
git-annex (3.20110624) upstream; urgency=low
There has been another change to the git-annex data store.
Use `git annex upgrade` to migrate your repositories to the new
layout. See <http://git-annex.branchable.com/upgrades/> or
/usr/share/doc/git-annex/html/upgrades.html
The significant change this time is that the .git-annex/ directory
is gone; instead there is a git-annex branch that is automatically
maintained by git-annex, and encapsulates all its state nicely out
of your way.
You should make sure you include the git-annex branch when
git pushing and pulling.
-- Joey Hess <joeyh@debian.org> Tue, 21 Jun 2011 20:18:00 -0400
git-annex (0.20110316) upstream; urgency=low
This version reorganises the layout of git-annex's files in your repository.
There is an upgrade process to convert a repository from the old git-annex
to this version. See <http://git-annex.branchable.com/upgrades/> or
/usr/share/doc/git-annex/html/upgrades.html
-- Joey Hess <joeyh@debian.org> Wed, 16 Mar 2011 15:49:15 -0400