CVE-2026-24038
BaseFortify
Publication date: 2026-01-22
Last updated on: 2026-01-29
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| horilla | horilla | 1.4.0 |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-287 | When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability exists in Horilla HR Software version 1.4.0's two-factor authentication (2FA) system. The flaw is in the OTP (One-Time Password) handling logic, where an equality check is improperly implemented. When an OTP expires, the server returns None. If an attacker omits the otp field in their authentication POST request, the user-supplied OTP is also None. Since both values are None, the comparison passes, allowing the attacker to bypass 2FA without providing a valid OTP. This means an attacker with valid credentials can fully bypass the second authentication factor. [1]
How can this vulnerability impact me? :
An attacker who knows valid user credentials can bypass two-factor authentication entirely, gaining full access to the user's account. This can lead to account takeover, unauthorized access to sensitive HR data, manipulation of employee records, and potentially broader system abuse if administrative accounts are compromised. [1]
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by monitoring authentication POST requests to the Horilla HR Software, specifically looking for requests where the otp field is omitted after the OTP has expired (approximately 10 minutes after issuance). An attacker would send a POST request with valid credentials and session cookies but without the otp field, bypassing 2FA. To detect this, you can capture and analyze HTTP POST requests to the login endpoint and check for missing otp parameters in requests following OTP expiration. For example, using tools like tcpdump or Wireshark to capture traffic, or using web server logs to identify POST requests missing the otp field. A sample command to capture HTTP POST requests to the login endpoint might be: tcpdump -i any -A 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | grep 'POST /login' and then inspect the payload for the otp field. Alternatively, using curl or custom scripts to test sending POST requests without the otp field after OTP expiration can help confirm the vulnerability. [1]
What immediate steps should I take to mitigate this vulnerability?
The immediate mitigation step is to upgrade Horilla HR Software to version 1.5.0 or later, where the OTP handling logic flaw has been fixed. Until the upgrade can be applied, consider enforcing additional server-side validation to ensure the otp field is present and valid in all authentication POST requests. Monitoring and alerting on authentication attempts missing the otp field after OTP issuance can help detect exploitation attempts. Additionally, restrict access to administrative accounts and monitor for suspicious activity to reduce risk. [1]
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
The vulnerability allows attackers to bypass two-factor authentication and potentially compromise administrative accounts, leading to unauthorized access and manipulation of sensitive HR data and employee records. Such unauthorized access and data manipulation could result in non-compliance with data protection regulations like GDPR and HIPAA, which require strict controls on access to personal and sensitive information. Therefore, this vulnerability poses a risk to compliance with these standards by undermining the security measures designed to protect sensitive data. [1]