CVE-2026-56126
ŚrednieCVSS 5.4Streszczenie
pfSense Plus przed 26.07 i CE przed 2.9.0 pozwalają uwierzytelnionym użytkownikom z uprawnieniem Status: Monitoring na wstrzykiwanie dowolnego JavaScript przez parametry konfiguracji wykresów w /status_monitoring.php. Wiele parametrów POST, w tym graph-left, graph-right, time-period, resolution, start-date, end-date, start-time, end-time, graph-type, invert i refresh-interval, jest łączonych i zapisywanych do globalnej konfiguracji XML pfSense bez sanityzacji, a następnie wyświetlanych bez sanityzacji w kontekście ciągu JavaScript podczas renderowania strony. Ponieważ ustawienie jest przechowywane w globalnej konfiguracji, payload wykonuje się w przeglądarce każdego użytkownika odwiedzającego stronę Status: Monitoring.
Ocena ryzyka
Ryzyko to trwałe wstrzyknięcie XSS, które dotyka wszystkich użytkowników odwiedzających stronę monitorowania, co może prowadzić do kradzieży sesji, przejęcia konta lub innych złośliwych działań.
Rekomendacja
Zaleca się aktualizację pfSense do wersji Plus 26.07 lub CE 2.9.0 oraz wdrożenie sanityzacji i kodowania danych wejściowych dla parametrów konfiguracji wykresów.
Inne podatności w pfSense
Zobacz wszystkie- CVE-2026-56128Średnie
pfSense Plus przed 26.07 i CE przed 2.9.0 pozwalają uwierzytelnionym użytkownikom z uprawnieniem Firewall: Schedules: Edit na wstrzykiwanie dowolnego JavaScript przez parametr descr w /firewall_schedule_edit.php. Opis harmonogramu jest przechowywany bez sanityzacji HTML i następnie wstawiany do wartości atrybutu HTML w /firewall_rules.php z zastosowaniem tylko escapowania pojedynczych cudzysłowów, co umożliwia wyjście poza podwójny cudzysłów. Payload wykonuje się w przeglądarce każdego użytkownika z uprawnieniem Firewall: Rules, który przegląda listę reguł z dotkniętym harmonogramem.
- CVE-2026-56127Średnie
pfSense Plus przed 26.07 i CE przed 2.9.0 pozwalają uwierzytelnionym użytkownikom z uprawnieniem Firewall: Rules: Edit na wstrzykiwanie dowolnego JavaScript przez parametr descr w /firewall_rules_edit.php. Opis reguły jest przechowywany w konfiguracji XML pfSense z zastosowaniem tylko escapowania backslash i bez sanityzacji HTML, a następnie renderowany bez kodowania w tabeli logów firewalla w /status_logs_filter.php. Payload wykonuje się w przeglądarce każdego użytkownika z uprawnieniem Status: Logs: Firewall, który przegląda dotknięte wpisy logów.
- CVE-2026-67189Średnie
pfSense Plus (przed 26.07) i pfSense CE (do 2.8.1) zawierają podatność XSS (przechowywane) w funkcji Traffic Graphs top-talkers. Rekordy PTR z odwrotnego DNS są wstawiane bez sanityzacji do odpowiedzi AJAX i renderowane jako HTML w interfejsie administratora. Atakujący kontrolujący rekord PTR i generujący wystarczający ruch może wykonać dowolny JavaScript w przeglądarce administratora, uzyskując dostęp do sesji i możliwość tworzenia kont oraz wykonywania poleceń OS.
- CVE-2024-57273Średnie
Podatność XSS w usłudze automatycznego tworzenia kopii zapasowych konfiguracji (ACB) w systemie pfSense CE (przed wersją 2.8.0 beta) i odpowiadających mu wersjach Plus pozwala zdalnym atakującym na wykonanie dowolnego kodu JavaScript, usunięcie kopii zapasowych lub wyciek wrażliwych informacji poprzez niesanitowane pole 'reason' oraz pochodny klucz urządzenia generowany z publicznego klucza SSH.
Oryginalny opis (angielski, źródło NVD)
pfSense Plus before 26.07 and CE before 2.9.0 allow authenticated users with the Status: Monitoring privilege to inject arbitrary JavaScript via graph configuration parameters in /status_monitoring.php. Multiple POST parameters including graph-left, graph-right, time-period, resolution, start-date, end-date, start-time, end-time, graph-type, invert, and refresh-interval are concatenated and written to the global pfSense XML configuration without sanitization, then echoed unsanitized into a JavaScript string context on page render. Because the setting is stored in the global configuration, the payload executes in the browser of every user who visits the Status: Monitoring page.

