CVE-2026-86066 PUBLISHED

Horilla attendance approval endpoint is vulnerable to cross-site request forgery

Assigner: GitHub_M
Reserved: 04.09.2026 Published: 25.09.2026 Updated: 25.09.2026

Horilla is an HR and CRM software. Prior to 2.0.0, approve_validate_attendance_request at /attendance/approve-validate-attendance-request/ changes attendance_validated, is_validate_request_approved, approved_by, and related pending-request state through an HTTP GET before calling attendance.save(), so Django does not require CSRF validation for the action. An unauthenticated attacker can cause a logged-in manager with attendance.change_attendance to make a top-level request that carries the manager's SameSite=Lax session cookie, silently approving attendance with the victim's privileges and attributing the approval to the victim in the audit trail. This issue is fixed in version 2.0.0.

Metrics

CVSS Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
CVSS Score: 5.9

Product Status

Vendor horilla
Product horilla-hr
Versions
  • Version < 2.0.0 is affected

References

Problem Types

  • CWE-352: Cross-Site Request Forgery (CSRF) CWE