Invoice storage readable by anyone on the internet
Cloud storage bucket “adminsoehne-invoices” (AWS, eu-central-1)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Description
All customer invoices are saved as PDF files in a cloud storage bucket. The bucket is set to “public”, so anyone can list its contents and download every invoice without logging in. The setting was probably switched on to make invoice links in emails work.
Steps to reproduce
- Open an invoice link from a test order email and note the storage address.
- Remove the file name from the address and open the bucket’s root address in a browser.
- The full list of invoice files appears, and each one downloads without a login.
GET / HTTP/1.1
Host: adminsoehne-invoices.s3.eu-central-1.amazonaws.com
HTTP/1.1 200
<ListBucketResult> <Key>2024/INV-100001.pdf</Key> … Business impact
Every invoice ever issued, with names, addresses and purchases, is public. Automated scanners look for open buckets around the clock, so a copy may already exist elsewhere. Reportable under GDPR within 72 hours, fines possible.
Remediation
Turn on “Block public access” for the bucket and the whole account. Serve invoices through short-lived signed links created after the customer logs in. Check the bucket’s access logs to find out whether anyone has already downloaded the files.
OWASP Top 10 2021: A01 Broken Access Control · CWE-284 (Improper Access Control) · MITRE ATT&CK T1530 (Data from Cloud Storage)