Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure S3 presigned default expires time is not changing #861

Merged

Conversation

j15e
Copy link

@j15e j15e commented Jul 3, 2015

It occurred to us that signatures end up invalid randomly because the default signature time is computed twice and we can end up with a policy that was signed for a policy with an expiration time 1 second earlier.

To be specific, the policy is computed twice inside the fields method which uses the formation_expiration twice too, which in turn computes Time.now at two different times.

https://github.com/didacte/aws-sdk-ruby/blob/bugfix/s3-presigned-default-expires/lib/aws/s3/presigned_post.rb#L345-L351

@see marcel/aws-s3#54 (similar issue)

It occurred to us that signatures end up invalid randomly because the default signature time is computed twice and we can end up with a policy that was signed for a policy with an expiration time 1 second earlier.

To be specific, the policy is computed twice inside the `fields` method which uses the `formation_expiration` twice too, which in turn computes `Time.now` at two different times.

@see marcel/aws-s3#54 (similar issue)
trevorrowe added a commit that referenced this pull request Jul 6, 2015
Ensure S3 presigned default expires time is not changing
@trevorrowe trevorrowe merged commit f5a3664 into aws:aws-sdk-v1 Jul 6, 2015
@trevorrowe
Copy link
Member

Good catch! Thanks for the patch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants