CVE-2025-66291

4.3 MEDIUM

📋 TL;DR

OrangeHRM versions 5.0 to 5.7 have an authorization bypass vulnerability in the Recruitment module's interview attachment endpoint. Authenticated ESS-level users without recruitment permissions can access confidential interview documents like candidate CVs and evaluations by guessing predictable file identifiers. This affects all OrangeHRM deployments using vulnerable versions.

💻 Affected Systems

Products:
  • OrangeHRM
Versions: 5.0 to 5.7
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployments with Recruitment module enabled. Requires authenticated session but no recruitment permissions.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Mass exfiltration of all interview documents containing sensitive candidate information, potentially violating data protection regulations and exposing confidential HR processes.

🟠

Likely Case

Unauthorized access to specific interview documents by curious or malicious employees, compromising candidate privacy and internal recruitment confidentiality.

🟢

If Mitigated

Limited exposure if strong access controls and monitoring are in place, but still represents a data protection compliance risk.

🌐 Internet-Facing: MEDIUM - While authentication is required, exposed instances could be targeted by attackers who obtain valid credentials.
🏢 Internal Only: HIGH - Internal users with basic ESS access can exploit this to access confidential recruitment data they shouldn't see.

🎯 Exploit Status

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

Exploitation requires authenticated session but is trivial once authenticated. Attackers need to guess or enumerate predictable file identifiers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 5.8

Vendor Advisory: https://github.com/orangehrm/orangehrm/security/advisories/GHSA-v32g-r8xx-4g6g

Restart Required: Yes

Instructions:

1. Backup your OrangeHRM installation and database. 2. Download OrangeHRM version 5.8 from the official repository. 3. Follow the upgrade instructions in the OrangeHRM documentation. 4. Restart the web server service. 5. Verify the fix by testing interview attachment access with ESS users.

🔧 Temporary Workarounds

Disable Recruitment Module

all

Temporarily disable the Recruitment module to prevent exploitation while planning upgrade.

Restrict Attachment Directory Access

linux

Configure web server to deny direct access to interview attachment directories.

# Apache: Add Deny from all to interview attachment directory
# Nginx: location ~ /interview_attachments { deny all; }

🧯 If You Can't Patch

  • Implement strict access controls and monitoring for interview attachment endpoints
  • Regularly audit access logs for unauthorized attempts to access interview documents

🔍 How to Verify

Check if Vulnerable:

1. Log in as ESS user without recruitment permissions. 2. Attempt to access interview attachment URLs with predictable IDs. 3. If files are accessible, system is vulnerable.

Check Version:

Check OrangeHRM version in admin panel or examine source code files for version markers.

Verify Fix Applied:

1. Upgrade to version 5.8. 2. Repeat the vulnerable test with ESS user. 3. Verify access is properly denied with authorization error.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authorization attempts for interview attachments
  • ESS users accessing interview attachment endpoints
  • Unusual pattern of file downloads from recruitment directories

Network Indicators:

  • HTTP requests to interview attachment endpoints from non-recruitment users
  • Burst of GET requests with sequential file IDs

SIEM Query:

source="orangehrm" AND (url="*interview*attachment*" OR url="*recruitment*file*") AND user_role="ESS" AND response_code=200

🔗 References

📤 Share & Export