CVE-2026-86066
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
Horilla przed wersją 2.0.0 zawiera podatność CSRF w punkcie końcowym /attendance/approve-validate-attendance-request/, gdzie zmiany stanu wniosku są wykonywane przez żądanie GET przed zapisem, przez co Django nie wymaga walidacji CSRF. Nieuwierzytelniony atakujący może nakłonić zalogowanego menedżera do wysłania żądania, które po cichu zatwierdza obecność z uprawnieniami ofiary i przypisuje jej zatwierdzenie w dzienniku audytu.
Ocena ryzyka
Ryzyko obejmuje nieautoryzowane zatwierdzanie obecności przez atakującego z uprawnieniami menedżera, co może prowadzić do manipulacji danymi kadrowymi i naruszenia integralności procesów HR.
Rekomendacja
Zaleca się natychmiastową aktualizację Horilla do wersji 2.0.0 lub nowszej, która zawiera poprawkę eliminującą podatność CSRF.
Inne podatności w Horilla
Zobacz wszystkie- CVE-2026-40867Wysokie
Horilla w wersji 1.5.0 ma podatność związaną z uszkodzoną kontrolą dostępu w przeglądarce załączników helpdesk, która pozwala każdemu uwierzytelnionemu użytkownikowi na przeglądanie załączników z innych zgłoszeń poprzez zmianę ID załącznika. Może to ujawnić wrażliwe pliki wsparcia i dokumenty wewnętrzne.
- CVE-2026-40866Wysokie
Horilla w wersji 1.5.0 ma podatność IDOR w punkcie końcowym przesyłania dokumentów pracownika, która pozwala każdemu uwierzytelnionemu użytkownikowi na nadpisanie, zastąpienie lub uszkodzenie dokumentu innego pracownika poprzez zmianę ID dokumentu w żądaniu. Umożliwia to nieautoryzowaną modyfikację danych HR.
- CVE-2026-40865Wysokie
Horilla w wersji 1.5.0 ma podatność IDOR w przeglądarce dokumentów pracownika, która pozwala każdemu uwierzytelnionemu użytkownikowi na dostęp do dokumentów innych pracowników poprzez zmianę ID dokumentu w żądaniu. Ujawnia to wrażliwe pliki HR, takie jak dokumenty tożsamości, umowy, certyfikaty i inne prywatne dane.
- CVE-2026-24038Wysokie
Horilla w wersji 1.4.0 zawiera podatność w logice obsługi OTP, gdzie błędne porównanie może zostać ominięte. Gdy OTP wygaśnie, serwer zwraca None, a jeśli atakujący pominie pole otp w żądaniu POST, porównanie user_otp == otp przechodzi, co pozwala na całkowite ominięcie uwierzytelniania dwuskładnikowego bez podania ważnego OTP.
- CVE-2026-24010Wysokie
Horilla przed wersją 1.5.0 zawiera krytyczną podatność związaną z przesyłaniem plików, która przy wykorzystaniu socjotechniki pozwala uwierzytelnionym użytkownikom na przeprowadzanie ataków phishingowych. Poprzez przesłanie złośliwego pliku HTML udającego zdjęcie profilowe, atakujący może stworzyć przekonującą kopię strony logowania i kraść poświadczenia użytkowników.
- CVE-2026-96795Wysokie
Horilla to oprogramowanie HR i CRM. Przed wersją 2.0.0 funkcja HorillaListView.export_data w horilla_views/generic/cbv/views.py akceptuje parametr columns od uwierzytelnionego użytkownika, interpoluje go do dynamicznego kodu Pythona i przekazuje do exec(). Specjalnie spreparowany ciąg znaków może wstrzyknąć składnię Pythona do domyślnego argumentu, co pozwala na wykonanie dowolnych poleceń systemu operacyjnego z uprawnieniami procesu aplikacji, w tym root w oficjalnym obrazie Docker. Problem naprawiono w wersji 2.0.0.
- CVE-2026-71483Wysokie
Horilla to oprogramowanie HR i CRM. Przed wersją 1.6.0 parametr search w /employee/employee-filter-view jest odzwierciedlany przez jQuery .html() w employee/templates/employee_nav.html bez neutralizacji HTML. Zewnętrzny atakujący może stworzyć i dostarczyć link, który powoduje wykonanie JavaScript, gdy uwierzytelniony pracownik lub administrator dotrze do filtra pracowników, umożliwiając dostęp do danych sesji widocznych w przeglądarce i działań z uprawnieniami ofiary. Problem naprawiono w wersji 1.6.0.
- CVE-2026-63432Średnie
Horilla od wersji 1.0.0 do 1.6.0 i 2.0.0 zawiera podatność w handlerach get_mail_preview w recruitment/views/actions.py i employee/not_in_out_dashboard.py, które renderują kontrolowane przez użytkownika treści z pełnym obiektem żądania w kontekście szablonu Django. Uwierzytelniony użytkownik z ważnym tokenem CSRF może użyć trawersji atrybutów szablonu, aby odczytać request.user.password, request.META i powiązane atrybuty, ujawniając hashe haseł, dane osobowe i metadane żądań serwera.
- CVE-2026-63431Średnie
Horilla w wersji 1.5.0-85 i wcześniejszych nie autoryzuje spójnie dostępu w payroll/views/component_views.py w funkcjach allowances_deductions_tab, view_single_allowance i view_single_deduction przed załadowaniem rekordów wybranych przez emp_id, allowance_id lub deduction_id. Uwierzytelniony pracownik może podmienić te identyfikatory, aby odczytać strukturę wynagrodzeń, kwoty dodatków i potrąceń, wypłaty pożyczek osobistych i harmonogramy spłat innego pracownika bez posiadania rekordu lub uprawnień do przeglądania płac.
- CVE-2025-48868Wysokie
Horilla to darmowy system HRMS. W wersji 1.3.0 występuje podatność zdalnego wykonania kodu (RCE) wynikająca z niebezpiecznego użycia funkcji eval() na parametrze zapytania kontrolowanym przez użytkownika w widoku project_bulk_archive. Uprzywilejowani użytkownicy (np. administratorzy) mogą wykonać dowolne polecenia systemowe na serwerze. Podatność została naprawiona w wersji 1.3.1.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

