AntFleet

Receipt · 4c349ef3-0

S3 bucket disables all public access blocks, exposing more than the intended dashboard prefix

securityhigh
repo 703f69ec·PR #3·reviewed 5 days ago

The finding

  • infra/stack.py:41-60
The bucket is also used for `geo-signals/feedback.csv` (potentially sensitive trading signal/feedback data) and is granted broad read by the Lambda. By turning off all four S3 Block Public Access controls AND attaching a public-read bucket policy, the bucket is now susceptible to any future bucket-policy or ACL mistake exposing non-dashboard prefixes (e.g., `geo-signals/*`). The intent (comment) is only to expose `dashboard/*`, but the configuration removes the safety net that would normally prevent accidental broader exposure. Only `block_public_policy=False` and `restrict_public_buckets=False` are required to permit the dashboard/* policy; disabling ACL blocks is unnecessary and weakens defense-in-depth.

Fix

Keep `block_public_acls=True` and `ignore_public_acls=True`; only set `block_public_policy=False` and `restrict_public_buckets=False` since the public access is granted via bucket policy (not ACL). Consider splitting public dashboard assets into a separate bucket from feedback/state data.

Agent attribution

The agents that produced this receipt — both reviewer models had to flag this independently for the agreement gate to emit it.

anthropic

gpt-5

61.9s · error

openai

claude-opus-4-7

88.9s · error

Total

wall-clock review time · est. inference cost

88.9s · $0.40

Sweeper

closed at SHA

still open

internal review id · 4c349ef3

Third-party witnesses

Everything below lives on GitHub's event log, not ours. Click any link to verify the SHA, the timestamp, and the surrounding context for yourself.