CVE-2026-90499 Overview
CVE-2026-90499 is an improper authorization vulnerability in lenve vhr version 1.0-SNAPSHOT. The flaw resides in the HrInfoController.updatePass function exposed at the /hr/pass endpoint of the Password Update Handler component. An authenticated attacker can manipulate the hrid parameter to change the password of another user account. The vulnerability is exploitable remotely across the network and requires only low-level privileges. According to the disclosure, exploit details have been released publicly and the vendor did not respond to contact attempts. The weakness is classified under CWE-266: Incorrect Privilege Assignment.
Critical Impact
An authenticated user can change other users' passwords by tampering with the hrid parameter, enabling account takeover of HR personnel within the vhr application.
Affected Products
- lenve vhr 1.0-SNAPSHOT
- Component: Password Update Handler (HrInfoController.updatePass)
- Endpoint: /hr/pass
Discovery Timeline
- 2026-09-13 - CVE-2026-90499 published to NVD
- 2026-09-14 - Last updated in NVD database
- Public disclosure - Exploit released publicly per the GitHub Security Advisory VHR-VULN-009
Technical Details for CVE-2026-90499
Vulnerability Analysis
The vulnerability is an Insecure Direct Object Reference (IDOR) in the password change workflow of the vhr HR management application. The HrInfoController.updatePass handler accepts an hrid argument identifying the HR user whose password should be updated. The handler fails to verify that the authenticated session owner matches the hrid targeted by the request. As a result, any authenticated low-privilege user can submit a crafted request that sets a new password for an arbitrary account. Successful exploitation grants the attacker full access to the victim's account, including any administrative privileges that account holds.
Root Cause
The root cause is missing authorization enforcement on a state-changing operation, mapped to [CWE-266: Incorrect Privilege Assignment]. The application trusts a client-supplied identifier (hrid) to determine which record to modify, rather than deriving the target account from the authenticated session context. No ownership check or role-based authorization gate is applied before the password is written to the database.
Attack Vector
Exploitation requires network access to the vhr application and valid credentials for any HR account. The attacker sends an HTTP request to /hr/pass with the hrid parameter set to the numeric identifier of the victim account and a new password value. The server processes the request under the attacker's session but writes the password to the victim's record. See the GitHub Security Advisory VHR-VULN-009 and the VulDB entry for CVE-2026-90499 for full request details.
Detect Identity Attacks the Moment Authentication Fails
Singularity™ Identity surfaces credential misuse, lateral movement, and privilege escalation in real time, so you can contain the breach before it spreads.
Stop Identity AttacksDetection Methods for CVE-2026-90499
Indicators of Compromise
- POST requests to /hr/pass where the submitted hrid value does not match the authenticated user's own HR identifier.
- Unexpected password change events in application logs for HR accounts that did not initiate the change.
- Reports from HR users of sudden inability to log in, followed by successful logins from unfamiliar source addresses.
Detection Strategies
- Instrument the HrInfoController.updatePass method to log the authenticated principal alongside the requested hrid and alert on mismatches.
- Correlate /hr/pass requests with subsequent authentication events from new source IPs within a short time window.
- Review web server access logs for high-frequency or automated requests to /hr/pass from a single session.
Monitoring Recommendations
- Forward vhr application logs and web server access logs to a centralized analytics platform for correlation and retention.
- Baseline normal password-change frequency per user and alert on statistical deviations.
- Monitor for privileged account logins that follow a password change event within minutes.
How to Mitigate CVE-2026-90499
Immediate Actions Required
- Restrict network access to the vhr application to trusted internal networks until a fix is available.
- Force a password reset for all HR accounts and require re-authentication of active sessions.
- Deploy a web application firewall rule that blocks requests to /hr/pass where the hrid parameter differs from the authenticated user's identifier.
- Audit application logs for prior exploitation attempts against the /hr/pass endpoint.
Patch Information
No vendor patch is available. The disclosure notes that the vendor was contacted early but did not respond. Organizations running lenve vhr 1.0-SNAPSHOT should apply a source-code fix that resolves the target account from the authenticated session rather than the client-supplied hrid, and add a server-side authorization check before writing the new password. Refer to the GitHub Security Advisory VHR-VULN-009 for remediation guidance.
Workarounds
- Modify HrInfoController.updatePass to ignore the hrid parameter and use the session-bound user identifier.
- Add a role check that only permits administrators to change passwords for accounts other than their own.
- Place the vhr application behind an authenticating reverse proxy that enforces per-user request validation.
# Example WAF rule (ModSecurity) blocking cross-user hrid values on /hr/pass
# Requires custom scripting to compare session user to submitted hrid parameter
SecRule REQUEST_URI "@streq /hr/pass" \
"id:1029049,phase:2,deny,status:403,\
msg:'Blocked potential IDOR on vhr password change (CVE-2026-90499)',\
chain"
SecRule ARGS:hrid "!@streq %{SESSION.hrid}"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

