Cloud Storage Exposure Check: What StackShield Tests
Detects public AWS S3, GCP, and DigitalOcean buckets.
What This Check Detects
Detects public AWS S3, GCP, and DigitalOcean buckets.
Full Documentation
What this check looks for
StackShield probes your storage surfaces: the Laravel storage symlink and public disk, and where detectable, the cloud buckets your application serves from. It checks whether files that should require authorization are instead readable by anyone with the URL, and whether directory contents can be enumerated.
Why it matters
Application storage holds user uploads, generated exports, invoices and documents, the material most likely to be sensitive and least likely to be reviewed for access control. When a storage path or bucket is world-readable, those files are one guessed or leaked URL away from disclosure. When it is also listable, an attacker does not even need to guess.
The risk compounds with predictable paths. A storage layout that names files by sequential ID or by unpadded user identifier lets an attacker walk from one file to the next, turning a single leaked link into a full dump.
What a failed check means
A failed check means storage content was reachable without the authorization it should require, or a storage path was enumerable. Depending on what you store, that ranges from minor to a serious data-exposure incident.
The fix is serving private files through authorized routes rather than public URLs, disabling listing, and using unguessable paths, covered in the exposed storage guide.
See the step-by-step remediation: how to fix this.
Related Security Checks
Is your Laravel app exposed right now?
34% of Laravel apps we scan have at least one critical issue, and most teams do not find out until something breaks. The free scan checks your live app in 60 seconds. Then StackShield re-runs every check after each deploy, so a fix you ship today does not quietly regress next week.