distribution/registry/storage
Stephen J Day 55ea440428
registry/{storage,handlers}: limit content sizes
Under certain circumstances, the use of `StorageDriver.GetContent` can
result in unbounded memory allocations. In particualr, this happens when
accessing a layer through the manifests endpoint.

This problem is mitigated by setting a 4MB limit when using to access
content that may have been accepted from a user. In practice, this means
setting the limit with the use of `BlobProvider.Get` by wrapping
`StorageDriver.GetContent` in a helper that uses `StorageDriver.Reader`
with a `limitReader` that returns an error.

When mitigating this security issue, we also noticed that the size of
manifests uploaded to the registry is also unlimited. We apply similar
logic to the request body of payloads that are full buffered.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-07-06 17:13:39 -07:00
..
cache Update registry to use WithName for creating Named values 2017-01-18 13:56:56 -08:00
driver Fix signalling Wait in regulator.enter 2017-06-02 15:41:55 +02:00
blob_test.go registry/storage: clean up zero-length blob comments 2017-01-27 15:28:30 -08:00
blobcachemetrics.go
blobserver.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
blobstore.go registry/{storage,handlers}: limit content sizes 2017-07-06 17:13:39 -07:00
blobwriter.go registry/storage: clean up zero-length blob comments 2017-01-27 15:28:30 -08:00
blobwriter_nonresumable.go
blobwriter_resumable.go
catalog.go Improve catalog enumerate runtime by an order of magnitude 2016-08-09 17:42:26 -07:00
catalog_test.go Update registry to use WithName for creating Named values 2017-01-18 13:56:56 -08:00
digester_resumable_test.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
doc.go
filereader.go
filereader_test.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
garbagecollect.go Update registry to use WithName for creating Named values 2017-01-18 13:56:56 -08:00
garbagecollect_test.go Update registry to use WithName for creating Named values 2017-01-18 13:56:56 -08:00
io.go registry/{storage,handlers}: limit content sizes 2017-07-06 17:13:39 -07:00
linkedblobstore.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
linkedblobstore_test.go Update registry to use WithName for creating Named values 2017-01-18 13:56:56 -08:00
manifestlisthandler.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
manifeststore.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
manifeststore_test.go Update registry to use WithName for creating Named values 2017-01-18 13:56:56 -08:00
paths.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
paths_test.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
purgeuploads.go fixing acronyms case 2017-01-31 01:29:30 +08:00
purgeuploads_test.go
registry.go Fix the build. 2016-07-21 17:16:47 -07:00
schema2manifesthandler.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
schema2manifesthandler_test.go Update schema2 builder to take media type 2016-12-14 16:17:20 -08:00
signedmanifesthandler.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
tagstore.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
tagstore_test.go Update registry to use WithName for creating Named values 2017-01-18 13:56:56 -08:00
util.go
vacuum.go digest: migrate to opencontainers/go-digest 2017-01-06 15:42:03 -08:00
walk.go
walk_test.go