feature/parity: S3 PostObject does not validate the POST policy signature or reject form fields not covered by policy conditions #82
Replies: 1 comment
|
Correction: I said this regressed in 2026.10.0 and worked in 2026.09.0. That was wrong, sorry for the noise. Re-testing This looks like a long-standing gap rather than a regression. The last open-source So this is a parity request:
If either is already available behind a setting, a docs pointer would be appreciated. The repro in the original post is unchanged. |
Uh oh!
There was an error while loading. Please reload this page.
Versions
localstack/localstack-pro:2026.10.0(build 2026-10-13, git738d58ee); alsolocalstack/localstack-pro:2026.10.1(same result).localstack/localstack-pro:2026.09.0.Config
Inside the container,
localstack.pro.core.config.S3_SKIP_SIGNATURE_VALIDATIONisFalseandS3_VALIDATE_SIGNATURESisTrue.Expected (AWS, and LocalStack 2026.09.0): a browser-based POST upload (
PostObject) must be rejected with 403 when:X-Amz-Signaturedoesn't match the policy (SignatureDoesNotMatch); orx-amz-meta-foo. AWS: "Each form field … (except x-amz-signature, file, policy, and x-ignore-*) must appear in the list of conditions."Actual (2026.10.0): both requests return 204 and the object is stored. The other policy checks still work:
eq $key/eq $Content-Typemismatch: 403;content-length-range: 400EntityTooLarge.So only the signature check and the extra-field check appear to be skipped.
Repro (AWS SDK for JavaScript v3,
@aws-sdk/s3-presigned-post)Logs (2026.10.0)
Notes
S3_SKIP_SIGNATURE_VALIDATIONinpro/core/config.pysays "TODO: rename to be explicitly about pre-signed URL". If the flag was deliberately narrowed to query-string pre-signed URLs, please document how to enable POST policy signature validation now.All reactions