{"id":"CVE-2026-111367","published":"2026-10-15T22:19:34.703","lastModified":"2026-10-16T18:25:45.343","description":"BillionMail through 4.9 contains a hard-coded cryptographic key vulnerability that allows unauthenticated attackers to forge unsubscribe and subscribe-confirm JWTs by computing the key from shipped configuration constants. Attackers can submit forged tokens to /api/unsubscribe, /api/unsubscribe_new, or /api/subscribe/confirm to deactivate any contact or force confirmed subscriptions.","cvssScore":6.5,"cvssSeverity":"MEDIUM","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L","cwes":["CWE-1394"],"vendors":[],"products":[],"references":[{"url":"https://github.com/aaPanel/BillionMail","tags":[]},{"url":"https://github.com/aaPanel/BillionMail/blob/v4.9/core/internal/service/batch_mail/jwt.go#L98-L123","tags":[]},{"url":"https://github.com/aaPanel/BillionMail/blob/v4.9/core/manifest/config/config.yaml","tags":[]},{"url":"https://hackmd.io/@hieuPenguinnn/billionmail-unsubscribe-subscribe-jwt-deterministic-secret-forgery","tags":[]},{"url":"https://www.vulncheck.com/advisories/billionmail-through-4.9-forgeable-jwts-via-default-signing-key","tags":[]}],"exploitRefs":[{"url":"https://github.com/aaPanel/BillionMail","tags":[]},{"url":"https://github.com/aaPanel/BillionMail/blob/v4.9/core/internal/service/batch_mail/jwt.go#L98-L123","tags":[]},{"url":"https://github.com/aaPanel/BillionMail/blob/v4.9/core/manifest/config/config.yaml","tags":[]}],"hasPoc":true,"ai":null}