CVE-2026-76902: CordysCRM: Unauthenticated arbitrary file disclosure via `/attachment/preview/{id}` and `/pic/preview/{id}`
CordysCRM is an open source AI-powered customer relationship management system that supports private deployment. Prior to 1.7.4, ShiroFilter configures /attachment/preview/{id} and /pic/preview/{id} as anonymous, and both routes call AttachmentService.getResource, which performs a bare primary-key lookup without ownership, organization, or permission checks. An unauthenticated caller who guesses or observes an id generated by IDGenerator.nextStr can download files uploaded by users in other organizations because the stored organization id is used only to locate the file rather than authorize the caller. This issue is fixed in version 1.7.4.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
CordysCRMto a version that resolves this vulnerability.Fixed in 1.7.4
Event History
Frequently Asked Questions
Which deployments are exposed?
CordysCRM deployments running versions prior to 1.7.4 are affected because the attachment and picture preview routes are configured for anonymous access.
What does an attacker need to exploit this issue?
An attacker does not need to authenticate, but must guess or observe a valid attachment or picture ID generated by IDGenerator.nextStr. The affected endpoints then retrieve the resource by primary key without ownership, organization, or permission checks.
What is the impact across organizations?
A caller can download files uploaded by users in other organizations if they provide a valid ID. The stored organization ID is used to locate the file, not to authorize access.
What should be done if the deployment cannot be upgraded immediately?
The provided information identifies version 1.7.4 as the fix, but does not specify an interim mitigation. Restricting unauthenticated access to the affected preview routes would address the anonymous exposure described.