{"id":"CVE-2026-110214","published":"2026-10-13T19:18:45.477","lastModified":"2026-10-13T20:17:27.613","description":"Snowy 3.6.5 contains a hard-coded HMAC key vulnerability that allows unauthenticated attackers to forge download signatures for the /dev/file/download endpoint by using the published FILE_DOWNLOAD_SIGN_SECRET constant. Attackers can compute HMAC-SHA256 signatures of guessed file ids offline to download stored files such as avatars, editor images and attachments.","cvssScore":3.7,"cvssSeverity":"LOW","cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","cwes":["CWE-321"],"vendors":[],"products":[],"references":[{"url":"https://github.com/xiaonuobase/Snowy/blob/v3.6.5/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java#L419-L445","tags":[]},{"url":"https://github.com/xiaonuobase/Snowy/blob/v3.6.5/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java#L78","tags":[]},{"url":"https://github.com/xiaonuobase/Snowy/blob/v3.6.5/snowy-web-app/src/main/java/vip/xiaonuo/core/config/GlobalConfigure.java#L174-L175","tags":[]},{"url":"https://hackmd.io/@1ExmmukzRMWN7B4gQ4W-4Q/snowy-dev-file-access-control","tags":[]},{"url":"https://www.vulncheck.com/advisories/snowy-3.6.5-hard-coded-download-signature-key-allows-unauthenticated-file-download","tags":[]},{"url":"https://hackmd.io/@1ExmmukzRMWN7B4gQ4W-4Q/snowy-dev-file-access-control","tags":[]}],"exploitRefs":[{"url":"https://github.com/xiaonuobase/Snowy/blob/v3.6.5/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java#L419-L445","tags":[]},{"url":"https://github.com/xiaonuobase/Snowy/blob/v3.6.5/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/file/service/impl/DevFileServiceImpl.java#L78","tags":[]},{"url":"https://github.com/xiaonuobase/Snowy/blob/v3.6.5/snowy-web-app/src/main/java/vip/xiaonuo/core/config/GlobalConfigure.java#L174-L175","tags":[]}],"hasPoc":true,"ai":null}