Vulnerabilities
Thumbs.db vs .DS_Store on Production CDNs
February 16, 2026
Thumbs.db vs .DS_Store on production CDNs is the same OPSEC class in two operating-system costumes. .DS_Store is Apple Finder folder metadata. Thumbs.db (and ehthumbs.db) is a Windows thumbnail cache that can list image names from a folder someone zipped. Neither belongs next to index.html. Autoindex off does not delete them. RoastMyOpsec probes /.DS_Store with a bounded GET and a binary signature. It does not currently treat Thumbs.db as a scored path, does not parse thumbnail databases, and does not crawl every prefix looking for nested leftovers.
The practical difference
Mac teams ship .DS_Store. Windows teams ship Thumbs.db when Explorer cached a folder of screenshots or product photos. Mixed shops ship both. The leak is filenames and sometimes dimensions — not usually the file bytes, but enough to map backups.zip sitting beside them.
desktop.ini is a cousin. Add all three to the publish denylist.
How to choose what to strip
CI: fail the build if Thumbs.db, .DS_Store, or desktop.ini appear in the artifact. CDN: deny those names even if CI is perfect. Do not 'clean once' on a laptop and call it a pipeline.
| Leftover | Typical OS | What it often reveals | Takeaway |
|---|---|---|---|
| /.DS_Store | macOS | Filenames from Finder | Scored path on the roast |
| /Thumbs.db | Windows | Image names from Explorer | Same class; strip anyway |
| desktop.ini | Windows | Folder view leftovers | Deny with the others |
| Index of / | Web server | Every object | See directory listing guide |
What the roast can prove
A .DS_Store signature hit is a finding. A 404 on Thumbs.db is not a certificate that the file is absent under /assets/2024/. Edge deny is cheap. Pair with dump.sql vs backup.zip if archives hitchhiked in the same zip.
Common mistakes
The first mistake is gitignoring .DS_Store and still uploading a Windows zip of the dist folder.
The second mistake is deleting Thumbs.db locally and not denying the name at the CDN.
The third mistake is treating a roast miss on Thumbs.db as 'Windows leftovers are fine.'
Free audit the URL you own
RoastMyOpsec is a defensive public-surface roast: headers, cookies, sensitive paths, and more — no exploit payloads. Start with the free audit, then open the vault if the blurred findings look expensive.
Free audit nowFAQ
- Is Thumbs.db a vulnerability?
- It is an information leak. Remove it and deny the name. It is not a credential dump.
- Does RoastMyOpsec check Thumbs.db?
- The bounded path list includes .DS_Store. Treat Thumbs.db as the same hygiene even if this scan does not score it.
- Will the scanner parse thumbnail files?
- No. Signature checks only. No recursive dump, no exploit payload.
Sources
Related guides
Vulnerabilities
.DS_Store vs Directory Listing for Leftovers on ProductionVulnerabilities
desktop.ini vs Thumbs.db on Production CDNsVulnerabilities
Exposed dump.sql vs backup.zip on Production