{"id":"CVE-2026-109562","published":"2026-10-12T21:17:12.560","lastModified":"2026-10-16T18:25:45.343","description":"SnapOtter 1.15.10 through 2.2.0 contains a missing authorization vulnerability that allows any authenticated principal to call the /api/v1/upload, /api/v1/preview and /api/v1/preview/generate handlers without permission checks. Attackers holding even a settings:read-scoped API key can stage arbitrary files outside storage quota, served unauthenticated via /api/v1/download, and feed crafted input to image and video decoders.","cvssScore":5.4,"cvssSeverity":"MEDIUM","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L","cwes":["CWE-862"],"vendors":[],"products":[],"references":[{"url":"https://github.com/snapotter-hq/SnapOtter","tags":[]},{"url":"https://github.com/snapotter-hq/SnapOtter/blob/v2.2.0/apps/api/src/routes/files.ts","tags":[]},{"url":"https://github.com/snapotter-hq/SnapOtter/commit/1544966b52b8f2b40ef3794e43ffd4f0214550ba","tags":[]},{"url":"https://www.vulncheck.com/advisories/snapotter-1.15.10-through-2.2.0-missing-authorization-via-upload-and-preview-api","tags":[]}],"exploitRefs":[{"url":"https://github.com/snapotter-hq/SnapOtter","tags":[]},{"url":"https://github.com/snapotter-hq/SnapOtter/blob/v2.2.0/apps/api/src/routes/files.ts","tags":[]},{"url":"https://github.com/snapotter-hq/SnapOtter/commit/1544966b52b8f2b40ef3794e43ffd4f0214550ba","tags":[]}],"hasPoc":true,"ai":null}