EspoCRM through 10.0.8 uses PHP's rand() function to generate tokens for lead-capture opt-in, event invitation, and campaign URLs instead of a cryptographically secure generator. Remote unauthenticated attackers can guess these roughly 31-bit tokens to confirm opt-ins, accept or decline event invitations on behalf of other contacts, and access event details.
https://www.vulncheck.com/advisories/espocrm-through-10.0.8-weak-token-generation-via-rand
https://github.com/espocrm/espocrm/commit/8e5555c1ee0ed1e92a9ad54e62f735ac2c4051a1
https://github.com/espocrm/espocrm/blob/10.0.8/application/Espo/Repositories/UniqueId.php#L47
https://github.com/espocrm/espocrm/blob/10.0.8/application/Espo/Core/Utils/Util.php#L585-L590
https://github.com/espocrm/espocrm
https://gist.github.com/kazisabu/9e3109aab24245fde19b88f53f965e93
Published: 2026-09-16
Updated: 2026-09-16
Base Score: 4
Vector: CVSS2#AV:N/AC:H/Au:N/C:P/I:P/A:N
Severity: Medium
Base Score: 4.8
Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Severity: Medium
Base Score: 6.3
Vector: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Severity: Medium
EPSS: 0.00324