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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-352"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/86xxx/CVE-2026-86066.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "2.0.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "87a23ecaf2944c15dc5c131f813d2b83fd56eaa0"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "2.0.0",
"range": [
{
"fixed": "edf0a1d18cec6b3d83437ce0ba93950973615e82"
}
],
"source": "REFERENCES_TAG"
}
]
}