CVE-2026-94501 in jshERPinfo

Summary

by MITRE • 09/21/2026

jshERP through 3.6 contains an authorization bypass vulnerability in the userBusiness CRUD endpoints that allows authenticated users to create, modify, or delete authorization-relation rows without privilege checks. Attackers can manipulate user-role mappings and access controls to escalate privileges, strip access from other accounts, or modify role-function relationships for any user in the tenant.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 09/21/2026

The vulnerability identified within jshERP versions up to 3.6 represents a critical failure in server-side authorization logic, specifically targeting the application's core identity and access management subsystems. This flaw is categorized under CWE-285, which describes Improper Authorization, where an actor is able to perform actions or access resources that they are not explicitly permitted to do. The root cause lies in the implementation of the userBusiness CRUD endpoints, which handle the creation, modification, and deletion of authorization relations between users and their assigned roles or permissions. In a properly secured system, every request modifying these sensitive mappings must undergo rigorous validation against the current session's privileges to ensure that only administrators with specific high-level clearance can alter who has access to what resources. However, in this instance, the application fails to enforce these checks effectively for authenticated users, allowing any logged-in individual to manipulate the underlying data structures regardless of their actual role or permission level.

From a technical perspective, the exploitation mechanism relies on the ability of an attacker to send crafted HTTP requests directly to the affected API endpoints. Because the authorization check is either missing or incorrectly implemented within the business logic layer rather than being enforced at a higher security middleware level, the application processes these modifications without verifying if the requester has the authority to change another user's profile. This allows for direct manipulation of database records that define role-function relationships and user-role mappings. An attacker can inject new entries into the authorization tables or update existing ones to grant themselves elevated privileges, such as administrative rights, which were not originally assigned. Conversely, an adversary could also strip access from legitimate users by deleting their associated roles, effectively locking them out of the system. This lack of object-level and function-level security controls creates a significant gap in the defense-in-depth strategy employed by the application.

The operational impact of this vulnerability is severe due to its direct effect on the confidentiality, integrity, and availability aspects of the information system. Privilege escalation via this flaw allows an attacker to assume the identity of higher-privileged users, potentially gaining full control over the tenant's environment. This can lead to unauthorized access to sensitive business data, modification or destruction of critical records, and the ability to execute administrative functions that should be restricted. Furthermore, the capability to strip access from other accounts introduces a denial-of-service vector against internal stakeholders, disrupting business operations. In multi-tenant architectures like jshERP, compromising one tenant's authorization structure could potentially expose vulnerabilities in data isolation if not properly segmented at the database level, although the primary risk remains within the scope of that specific tenant.

This type of vulnerability aligns with several tactics and techniques observed in real-world attacks as defined by the MITRE ATT&CK framework. Specifically, it facilitates Account Manipulation (T1098) through the alteration of user attributes to maintain persistence or escalate privileges. It also relates to Privilege Escalation (TA0004), where an attacker gains higher-level permissions than initially granted. Additionally, if used to remove access from others, it touches upon Disabling User Accounts (T1531). The absence of proper authorization checks is a common pattern in web applications that prioritize rapid development over security hardening, often resulting in broken object level privileges or insecure direct object references when API endpoints are exposed without adequate gatekeeping.

To mitigate this vulnerability, immediate action must be taken to patch the application to version 3.7 or later where these authorization checks have been corrected. In the interim, organizations should implement strict input validation and enforce role-based access control (RBAC) at the framework level rather than relying solely on business logic implementation. It is crucial that all endpoints handling sensitive identity management data require explicit verification of administrative privileges before processing any changes to user roles or permissions. Additionally, implementing comprehensive logging and monitoring for unusual patterns in authorization-related API calls can help detect exploitation attempts early. Regular security audits focusing on access control mechanisms are recommended to ensure that privilege escalation paths remain closed as the application evolves.

Responsible

VulnCheck

Reservation

09/21/2026

Disclosure

09/21/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!