Package: src:aptly
Version: 1.4.0+ds1-2
Severity: normal
Control: found -1 1.3.0+ds1-2
Control: tags -1 upstream fixed-upstream
Control: forwarded -1 https://github.com/aptly-dev/aptly/issues/923

Hello,

A year ago I found an issue with aptly with S3 backend: it relies on
ETag always being the MD5 hashsum of a file, while it’s not necessarily
true, as demonstrated in the comments to 
https://github.com/minio/minio/pull/9999:

> The entity tag is a hash of the object. The ETag reflects changes only
> to the contents of an object, not its metadata. The ETag may or may not
> be an MD5 digest of the object data. Whether or not it depends on how
> the object was created and how it is encrypted as described below:
>
> Objects created by the PUT Object, POST Object, or Copy operation,
> or through the AWS Management Console, and are encrypted by SSE-S3 or
> plaintext, have ETags that are an MD5 digest of their object data.
>
> Objects created by the PUT Object, POST Object, or Copy operation,
> or through the AWS Management Console, and are encrypted by SSE-C or
> SSE-KMS, have ETags that are not an MD5 digest of their object data.
>
> If an object is created by either the Multipart Upload or Part Copy
> operation, the ETag is not an MD5 digest, regardless of the method
> of encryption.

I have proposed changes fixing this in a pull request that’s been merged
today. It’s quite self-contained and only affects the S3 backend. The
idea is to store the MD5 of an object in a separate metadata field as well
to make sure it isn’t lost, so when the value returned in ETag clearly
doesn’t look like a valid MD5 hash (length isn’t exactly 32 characters),
this metadata field is used instead.

See https://github.com/aptly-dev/aptly/pull/924 for more details.

Please consider applying these patches and shipping them in Bullseye.

Thanks!

-- 
Cheers,
  Andrej

Reply via email to