{"id":"CVE-2026-109185","published":"2026-10-12T13:17:31.840","lastModified":"2026-10-13T19:18:13.570","description":"jshERP through 3.6 contains a missing authorization vulnerability in the UserController updateUser handler that allows authenticated users to assign arbitrary roles to any user. Low-privilege attackers can send their own user id with the tenant administrator roleId to escalate privileges or rebind other tenant users' roles.","cvssScore":8.8,"cvssSeverity":"HIGH","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cwes":["CWE-862"],"vendors":[],"products":[],"references":[{"url":"https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/jshERP/poc_identity_privilege_write.py","tags":[]},{"url":"https://github.com/jishenghua/jshERP/blob/8f28e7c2fe54d54de3621a414f5df1833dc5a55f/jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java#L342-L350","tags":[]},{"url":"https://github.com/jishenghua/jshERP/blob/8f28e7c2fe54d54de3621a414f5df1833dc5a55f/jshERP-boot/src/main/java/com/jsh/erp/service/UserService.java#L679-L709","tags":[]},{"url":"https://www.vulncheck.com/advisories/jsherp-through-3.6-privilege-escalation-via-put-user-updateuser","tags":[]}],"exploitRefs":[{"url":"https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/jshERP/poc_identity_privilege_write.py","tags":[]},{"url":"https://github.com/jishenghua/jshERP/blob/8f28e7c2fe54d54de3621a414f5df1833dc5a55f/jshERP-boot/src/main/java/com/jsh/erp/controller/UserController.java#L342-L350","tags":[]},{"url":"https://github.com/jishenghua/jshERP/blob/8f28e7c2fe54d54de3621a414f5df1833dc5a55f/jshERP-boot/src/main/java/com/jsh/erp/service/UserService.java#L679-L709","tags":[]}],"hasPoc":true,"ai":{"summary":"The jshERP application has a missing authorization check in its user management functionality that allows low-privilege authenticated users to assign administrator roles to any user account, enabling privilege escalation and cross-tenant role manipulation.","exploitability":"Exploitation requires an authenticated user account with minimal privileges and involves sending a crafted request with a target user ID and tenant administrator role ID, making it moderately easy to execute with available public exploits.","blast_radius":"The vulnerability could allow attackers to gain full administrative access across tenant boundaries, potentially compromising multiple user accounts and enabling widespread privilege escalation within the application.","remediation":"Upgrade to jshERP version 3.7 or later to address this missing authorization vulnerability in the UserController updateUser handler.","detection":"Monitor for unusual role assignment patterns in application audit logs where low-privilege users are observed modifying roles of other users, particularly when assigning tenant administrator roles.","tags":["authorization","privilege-escalation","web-application"],"model":"garnet-coder","analyzedAt":"2026-10-16T08:52:45.300Z"}}