CVE-2025-66435
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 25 - wyżej niż 25% wszystkich znanych CVE
Streszczenie
W Frappe ERPNext do wersji 15.89.0 istnieje podatność SSTI (Server-Side Template Injection) w metodzie get_contract_template. Funkcja renderuje kontrolowane przez atakującego szablony Jinja2 (contract_terms) za pomocą frappe.render_template() z kontekstem dostarczonym przez użytkownika (doc). Mimo że Frappe używa niestandardowego SandboxedEnvironment, niektóre niebezpieczne globalne obiekty, takie jak frappe.db.sql, są nadal dostępne w kontekście wykonania przez get_safe_globals(). Uwierzytelniony atakujący z dostępem do tworzenia lub modyfikowania szablonu umowy może wstrzyknąć dowolne wyrażenia Jinja do pola contract_terms, co prowadzi do wykonania kodu po stronie serwera w ograniczonym, ale wciąż niebezpiecznym kontekście. Podatność może być wykorzystana do wycieku informacji z bazy danych.
Ocena ryzyka
Ryzyko polega na możliwości wykonania kodu po stronie serwera i wycieku danych z bazy danych, co może prowadzić do naruszenia poufności i integralności systemu.
Rekomendacja
Zaleca się zaktualizowanie Frappe ERPNext do wersji nowszej niż 15.89.0, która zawiera poprawkę. Należy również ograniczyć uprawnienia do tworzenia i modyfikowania szablonów umów.
Inne podatności w Frappe ERPNext
Zobacz wszystkie- CVE-2026-109674Średnie
Frappe ERPNext przed 15.98.0 oraz 16.x przed 16.6.0 zawiera podatność SQL injection w niektórych endpointach spowodowaną brakiem walidacji danych wejściowych.
- CVE-2026-109673Wysokie
Frappe ERPNext przed wersją 15.103.0 oraz 16.x przed 16.12.0 zawiera podatność typu stored XSS, ponieważ nazwy niektórych rekordów nie są prawidłowo neutralizowane podczas renderowania na niektórych pulpitach, narzędziach i portalach. Uwierzytelniony atakujący może tworzyć złośliwe nazwy rekordów, które wykonują skrypty w przeglądarkach innych użytkowników.
- CVE-2026-109672Średnie
Frappe ERPNext przed 15.118.0 oraz 16.x przed 16.27.0 zawiera podatność braku autoryzacji w niektórych endpointach, które nie egzekwują właściwych kontroli uprawnień.
- CVE-2026-109671Wysokie
Frappe ERPNext przed wersją 15.113.0 oraz 16.x przed 16.24.0 zawiera podatność typu stored XSS w polu profilu, które jest renderowane bez escapowania na stronach portalu. Atakujący z niskimi uprawnieniami może zapisać złośliwy skrypt, który wykona się w przeglądarce administratora przeglądającego te strony.
- CVE-2026-109670Średnie
Frappe ERPNext przed 15.110.0 oraz 16.x przed 16.21.0 zawiera podatność trwałego cross-site scripting (stored XSS) spowodowaną renderowaniem nazw rekordów bez escapowania.
- CVE-2026-109669Średnie
Frappe ERPNext przed 15.110.0 oraz 16.x przed 16.21.0 zawiera podatność braku autoryzacji, w której niektóre endpointy nie egzekwują właściwych kontroli uprawnień przy zmianach statusu rekordów.
- CVE-2026-109668Średnie
Frappe ERPNext przed 15.110.0 oraz 16.x przed 16.21.0 zawiera podatność braku autoryzacji w niektórych endpointach obsługujących rekordy stron (party records), pozwalającą uwierzytelnionym użytkownikom modyfikować dane wykraczające poza ich rolę.
- CVE-2026-109667Wysokie
Frappe ERPNext przed wersją 15.111.0 oraz 16.x przed 16.22.0 zawiera podatność typu privilege escalation w punkcie końcowym tworzenia rekordów, który pobiera typ rekordu z żądania i wstawia rekord z wyłączonymi kontrolami uprawnień. Każdy uwierzytelniony użytkownik, nawet bez roli operacyjnej, może podać uprzywilejowany typ rekordu, aby utworzyć uprzywilejowane konta.
- CVE-2026-109666Średnie
Frappe ERPNext przed 15.110.0 oraz 16.x przed 16.21.0 zawiera podatność braku autoryzacji w niektórych endpointach, które nie egzekwują właściwych kontroli uprawnień na rekordach inwentarza.
- CVE-2026-109665Średnie
Frappe ERPNext przed 15.108.0 oraz 16.x przed 16.18.0 zawiera podatność braku autoryzacji w niektórych endpointach, które nie egzekwują właściwych kontroli uprawnień.
Oryginalny opis (angielski, źródło NVD)
An SSTI (Server-Side Template Injection) vulnerability exists in the get_contract_template method of Frappe ERPNext through 15.89.0. The function renders attacker-controlled Jinja2 templates (contract_terms) using frappe.render_template() with a user-supplied context (doc). Although Frappe uses a custom SandboxedEnvironment, several dangerous globals such as frappe.db.sql are still available in the execution context via get_safe_globals(). An authenticated attacker with access to create or modify a Contract Template can inject arbitrary Jinja expressions into the contract_terms field, resulting in server-side code execution within a restricted but still unsafe context. This vulnerability can be used to leak database information.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

