CVE-2026-24010

8.0 HIGH

📋 TL;DR

Horilla HRMS versions before 1.5.0 contain a critical file upload vulnerability that allows authenticated users to upload malicious HTML files disguised as profile pictures. This enables phishing attacks where victims are tricked into entering credentials on fake login pages, leading to account takeover. All organizations running affected Horilla versions are at risk.

💻 Affected Systems

Products:
  • Horilla HRMS
Versions: All versions prior to 1.5.0
Operating Systems: All platforms running Horilla
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user access to exploit, but any authenticated user can perform the attack.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of the HRMS system with stolen administrator credentials leading to exposure of sensitive employee data, payroll information, and potential lateral movement to other systems.

🟠

Likely Case

Multiple user accounts compromised through credential theft, leading to unauthorized access to HR data, potential data exfiltration, and business disruption.

🟢

If Mitigated

Limited impact with only low-privilege accounts potentially compromised if proper network segmentation and monitoring are in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is straightforward once access is obtained. Social engineering element increases effectiveness.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.5.0

Vendor Advisory: https://github.com/horilla-opensource/horilla/security/advisories/GHSA-5jfv-gw8w-49h3

Restart Required: Yes

Instructions:

1. Backup your Horilla database and configuration. 2. Download version 1.5.0 from GitHub releases. 3. Replace existing installation with new version. 4. Restart the Horilla service. 5. Verify functionality.

🔧 Temporary Workarounds

Restrict File Upload Types

all

Configure web server or application to block HTML file uploads at profile picture endpoint

# Configure nginx: location ~* \.(html|htm)$ { deny all; }
# Configure Apache: <FilesMatch "\.(html|htm)$"> Require all denied </FilesMatch>

Implement Content-Type Validation

all

Add server-side validation to reject non-image content types for profile picture uploads

# Example Python validation: if not file.content_type.startswith('image/'): raise ValidationError('Only image files allowed')

🧯 If You Can't Patch

  • Implement strict WAF rules to block HTML file uploads and monitor for suspicious upload attempts
  • Disable profile picture upload functionality entirely until patching is possible

🔍 How to Verify

Check if Vulnerable:

Check Horilla version in admin panel or via package manager. Versions below 1.5.0 are vulnerable.

Check Version:

# Check version in Horilla admin interface or via: python manage.py --version

Verify Fix Applied:

After upgrading to 1.5.0, attempt to upload an HTML file as a profile picture - this should be rejected.

📡 Detection & Monitoring

Log Indicators:

  • HTML file upload attempts to profile picture endpoint
  • Unusual file size or type for profile pictures
  • Multiple failed upload attempts

Network Indicators:

  • Outbound connections to suspicious domains following file uploads
  • Unusual POST requests to upload endpoints with HTML content

SIEM Query:

source="horilla_logs" AND (file_extension="html" OR file_extension="htm") AND endpoint="*/upload/profile_picture"

🔗 References

📤 Share & Export