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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-306",
"CWE-862"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/76xxx/CVE-2026-76902.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-76902.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "3348423628549828312750038272685437111",
"length": 146
},
"id": "CVE-2026-76902-088cd002",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackDingTalkOauth"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "95871642183877179095850695255115821047",
"length": 167
},
"id": "CVE-2026-76902-1573ef03",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/system/controller/LoginController.java",
"function": "logout"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"137471538476864579559879744228251273482",
"268331911174843861286610357216828548480",
"84260064242909266304165098406215317979",
"170798005108372734410061819834309319561",
"56321149054744593603945921276198242748",
"7197837565392682064515812705630693809",
"54261250860481544038343076080753351535",
"157506366144683023890955151197883868063"
],
"threshold": 0.9
},
"id": "CVE-2026-76902-1799e6d1",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/config/ShiroConfig.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "3348423628549828312750038272685437111",
"length": 146
},
"id": "CVE-2026-76902-2691f509",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackLark"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"322856797642326094794542592133640649763",
"274464224692554614241650580048209933098",
"47654083737151028031343268795474117998",
"247145538147207762682924421606525374677",
"222984420421730388238995243297087608279",
"331363177183362680888042803899961377966",
"120113027512357582798922787347061335606",
"143524413660179914911443864182845249302",
"145374786176722330530197923944647242787",
"34201617248888208131579855588787938378",
"96750089831516225811485820916502120508",
"147952649212499449061033074098878035523",
"229594338456224183760188289933264622193",
"174743816854286673446849676984212580041",
"301800332854477096821763004228907349036",
"224505465547730896562455899919265895649",
"221875662684730387422832288994904196215",
"162957308186484231631979170766023342288",
"60074716399339033341486620211703526804",
"31272475156642172211165049899065734132",
"56336868391144945323476537849450437718",
"115686550821627417588981361816989802442",
"195014358294361217582832720529883609455",
"212351694978961825608340176161998912477",
"180525368091931532472888015029974766535",
"14154806900121401084568856790595016083",
"244416618484175303914537462598331310370",
"209979250084975161995927364321116796709",
"28760777368947662556888344963603346651",
"280359103563493102396575773232256836635",
"213903746396181964723214669898576304529",
"236177031911114203667857215398609191260",
"50178097234201986727492840886972807620",
"42491601782919146975690295442283067293",
"99761891174598286050862849441446949202",
"160108332242087700728759658786975807321",
"241254701243357236996985412558327172400",
"104328631342257289192503450630684359185",
"169790782067815525871223896149812693341",
"116560828579439969883717352460097898471",
"102107210205201227651216866238393990382",
"229612699426124862987984577530415879725",
"314324069874253989143333810780925579774"
],
"threshold": 0.9
},
"id": "CVE-2026-76902-365b8a46",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "83946019071025207395592426871236601294",
"length": 154
},
"id": "CVE-2026-76902-4798157c",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackLarkOauth"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "336510094046358878399414985752237065228",
"length": 513
},
"id": "CVE-2026-76902-5be60ba0",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/system/controller/LoginController.java",
"function": "login"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "292609700625210280784989543262349177190",
"length": 278
},
"id": "CVE-2026-76902-6d92148e",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackOauth"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "19641449443040538881601851850617124159",
"length": 533
},
"id": "CVE-2026-76902-8121ca14",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/config/ShiroConfig.java",
"function": "shiroFilterFactoryBean"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "338752533705204521167832996692242394830",
"length": 116
},
"id": "CVE-2026-76902-8be80ee3",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/framework/src/main/java/cn/cordys/security/ShiroFilter.java",
"function": "loadBaseFilterChain"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"174673718011159929991722273683668989061",
"195591198564657630522013672848595576867",
"162151851543765449242897624524723055340",
"125375592480506054444188761380956353979",
"30973924315071487939418827289278244133",
"40313236503289468041656333770450021238"
],
"threshold": 0.9
},
"id": "CVE-2026-76902-8d7aa4ca",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/framework/src/main/java/cn/cordys/security/ShiroFilter.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "3348423628549828312750038272685437111",
"length": 146
},
"id": "CVE-2026-76902-94aa2a3c",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackWeCom"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "3348423628549828312750038272685437111",
"length": 146
},
"id": "CVE-2026-76902-b6cf6ab9",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackWeComOauth"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "34022605427068670561043909071173724731",
"length": 153
},
"id": "CVE-2026-76902-ba6f72c3",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackLarkOauthByMobile"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"122949565509241879480376674200919081554",
"288182919293119385535083848678258666338"
],
"threshold": 0.9
},
"id": "CVE-2026-76902-c3b67810",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/framework/src/main/java/cn/cordys/security/SessionUtils.java"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"297035554684689859976900268137718555754",
"170303434073081179366561086831023795378",
"45846805413225389400126786608722788331",
"137435120986061611741588412491777321525",
"269534725956125332894559569595136165384",
"117988473800182647043574568235015816399"
],
"threshold": 0.9
},
"id": "CVE-2026-76902-c81882a1",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/83bd0bf7422c0391af6c2f798f62c624a056bf6b",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/follow/service/BaseFollowUpService.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "320144658412324829475839133206321393830",
"length": 1596
},
"id": "CVE-2026-76902-c823bc9d",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/83bd0bf7422c0391af6c2f798f62c624a056bf6b",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/follow/service/BaseFollowUpService.java",
"function": "checkRecordPermission"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"185694716837410421357368178254000090414",
"20358152068011068032745330999377531943",
"221871673580619478358855014794084082353",
"249229303424646174275552359193990773309",
"77089734863463828465318311662330567592",
"172114774635396160312126738289219455246",
"286154975667581471570915617095850386082",
"285397854829917409549081693037042478909",
"287976434791996925620198590542215760313",
"320992245601058667073939992635104398585",
"334944915011504797464370313546133327994",
"48242671624227446753976021469802976132",
"104016044848276006751755576102199136883",
"256915023649795791134766389633610734964",
"70938844220842040038330645105237146278",
"126052411711795007485073158886692440710",
"316649778128001504663972492954208457882",
"338916216667650906997713315264155629878",
"235491359811693459891184022503503262915",
"215474391857255982206693083449572563267",
"89005201956511742723310616216251106061",
"329343155466074762800107848317243915025",
"26872875162917884754168865343064768308",
"307716372563969780796586191132337942155"
],
"threshold": 0.9
},
"id": "CVE-2026-76902-d5442dab",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/system/controller/LoginController.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "3348423628549828312750038272685437111",
"length": 146
},
"id": "CVE-2026-76902-e97054b9",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/1panel-dev/cordyscrm/commit/3d1f68be0778ce35362688296bf355c1cb2d86fb",
"target": {
"file": "backend/crm/src/main/java/cn/cordys/crm/integration/sso/controller/SSOController.java",
"function": "callbackDingTalk"
}
}
]
"2026-09-26T08:12:03Z"