RoastMyOpsec

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.

LeftoverTypical OSWhat it often revealsTakeaway
/.DS_StoremacOSFilenames from FinderScored path on the roast
/Thumbs.dbWindowsImage names from ExplorerSame class; strip anyway
desktop.iniWindowsFolder view leftoversDeny with the others
Index of /Web serverEvery objectSee 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 now

FAQ

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