CVE-2026-24038

8.1 HIGH

📋 TL;DR

This vulnerability allows attackers to bypass two-factor authentication in Horilla HRMS by omitting the OTP field from authentication requests. When the OTP expires, the server returns None, and if the attacker also sends None (by omitting the field), the flawed equality check passes. All Horilla HRMS installations running version 1.4.0 are affected.

💻 Affected Systems

Products:
  • Horilla HRMS
Versions: Version 1.4.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects installations with OTP-based two-factor authentication enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Administrative account compromise leading to full system takeover, manipulation of sensitive HR data, payroll tampering, and unauthorized access to employee personal information.

🟠

Likely Case

Unauthorized access to user accounts, potential data exfiltration of HR records, and manipulation of employee information.

🟢

If Mitigated

Limited impact with proper network segmentation, strong authentication for administrative accounts, and monitoring for suspicious authentication attempts.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires valid username/password credentials but bypasses the OTP requirement. Attackers need to know the authentication endpoint structure.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.5.0

Vendor Advisory: https://github.com/horilla-opensource/horilla/security/advisories/GHSA-hqpv-ff5v-3hwf

Restart Required: Yes

Instructions:

1. Backup your Horilla installation and database. 2. Download version 1.5.0 from the official GitHub repository. 3. Replace the existing installation with the new version. 4. Restart the Horilla service. 5. Verify the fix by testing OTP authentication.

🔧 Temporary Workarounds

Disable OTP Authentication

all

Temporarily disable two-factor authentication until patching is complete.

Modify Horilla configuration to disable OTP-based authentication

Web Application Firewall Rule

all

Block authentication requests missing the OTP field.

Configure WAF to reject POST requests to authentication endpoints without OTP parameter

🧯 If You Can't Patch

  • Implement network-level controls to restrict access to Horilla to trusted IP addresses only.
  • Enable detailed logging of all authentication attempts and monitor for missing OTP fields in requests.

🔍 How to Verify

Check if Vulnerable:

Check Horilla version via admin interface or configuration files. If version is 1.4.0 and OTP authentication is enabled, the system is vulnerable.

Check Version:

Check the version in Horilla's admin dashboard or configuration files.

Verify Fix Applied:

After upgrading to 1.5.0, test OTP authentication by attempting to authenticate without providing an OTP. This should fail.

📡 Detection & Monitoring

Log Indicators:

  • Authentication attempts with missing OTP field
  • Successful logins without OTP validation
  • Multiple failed OTP attempts followed by successful login

Network Indicators:

  • POST requests to authentication endpoints without OTP parameter
  • Unusual authentication patterns from single IP addresses

SIEM Query:

source="horilla_logs" AND (event="authentication" AND NOT otp_present="true")

🔗 References

📤 Share & Export