Zwalidowany kontekst sesji WHM
CGI WHM zachowuje zwalidowany cp_security_token wymagany przez natywną sesję cPanel. Pozostają dotychczasowe kontrole żądań, taint mode i granice odpowiedzi same-origin.
DH20.29 odpowiada technicznemu pakietowi DCSF 15.10.32. Publiczny bootstrap przyjmuje wyłącznie to dokładne podpisane wydanie i jego zamknięty wykaz artefaktów.
Wydanie łączy poprawki kontekstu WHM, stanu LFD i instalatora z naprawą regresji znalezionej na canary. Zastępuje DH20.28; 51 pozycji rejestru bezpieczeństwa pozostaje oddzielną liczbą, bez doliczania testów jako podatności.
CGI WHM zachowuje zwalidowany cp_security_token wymagany przez natywną sesję cPanel. Pozostają dotychczasowe kontrole żądań, taint mode i granice odpowiedzi same-origin.
LFD kompaktuje csf.temppids w ramach istniejących limitów rozmiaru i liczby rekordów, używając LF_FLUSH do usuwania przeterminowanego stanu procesów. Nagromadzony stan tymczasowy nie blokuje zapisu nowych tożsamości procesów.
Poprawka zgodności ustawia właściwe prawa wyłącznie publicznych modułów META cPanel. Nie rozszerza dostępu do prywatnej konfiguracji ani całego drzewa cPanel.
DH20.29 bezpiecznie uzupełnia brakujący końcowy LF w csf.resellers i poprawia błąd powłoki wykryty na canary. DH20.28 / 15.10.31 zostało zastąpione z powodu błędu tej ścieżki naprawy.
Porównanie uwzględnia inną kolejność prezentacji niezależnych łańcuchów, zachowując kolejność reguł w każdym łańcuchu i pozostałe kontrole polityki. Samo przestawienie niezależnych łańcuchów nie powoduje już fałszywej rozbieżności.
Kwalifikacja projektu zaliczyła wszystkie 77 plików testowych Linux. Aktualizacja canary autossltest2 zakończyła się z aktywnymi CSF/LFD i zachowaną konfiguracją. Oddzielnie sprawdzony host produkcyjny przeszedł tylko dry-run; nie oznacza to wykonanej aktualizacji produkcji.
Modele dostępne do wyboru w tym wydaniu: gpt-5-mini, gpt-5.4-mini, gpt-5.6-terra. Dostępność zależy od konta OpenAI API administratora.
Po włączeniu wybrane lokalne dane diagnostyczne bezpieczeństwa są wysyłane do OpenAI. Rozpoznane sekrety są maskowane, ale nie jest to gwarancja anonimowości. store=false nie gwarantuje Zero Data Retention; nadal obowiązują ustawienia konta API i zasady dostawcy. Opcjonalne użycie API jest rozliczane osobno od bezpłatnego DCSF. Wnioski wymagają oceny administratora i nie gwarantują wykrycia wszystkich problemów bezpieczeństwa.
Kwalifikacja wydania Linux: 77/77. Kontrole publicznego bootstrapu: 85/85.
Pakiet 15.10.32 dodaje JSON::PP do preflightu instalatora i kontroli runtime os.pl, zachowując rozdział systemowego Perla, prywatnego środowiska cPanel oraz jawnego fallbacku CPAN.
Poza cPanel DCSF naprawia zamkniętą listę modułów przez dokładne możliwości RPM lub mapowanie pakietów Debiana. DNF i YUM zachowują weryfikację GPG, a APT odrzuca repozytoria nieuwierzytelnione i niezabezpieczone.
Instalator inwentaryzuje wymagane moduły przed preflightem i po naprawie. Próby są ograniczone, muszą wykazać postęp, a powodzenie wymaga ponownego importu całej zamkniętej listy.
Systemowy fallback CPAN jest domyślnie wyłączony. Operator musi podać --allow-cpan-fallback; używany jest stały mirror MetaCPAN przez HTTPS, zamknięte nazwy modułów i zweryfikowane katalogi robocze.
Na cPanel DCSF zawsze sprawdza /usr/local/cpanel/3rdparty/bin/perl, wyznacza pasujący wersjonowany cpanm i uruchamia go jawnie przez ten sam prywatny interpreter, bez mieszania bibliotek z /usr/bin/perl.
Runtime OLSPanel wymaga JSON::PP. RPM wybiera podpisaną możliwość perl(JSON::PP), Debian pakiet libjson-pp-perl, cPanel używa prywatnego cpanm, a systemowy CPAN nadal wymaga jawnego --allow-cpan-fallback.
Canary PASS: Wcześniejszy publiczny test canary --dryrun uwierzytelnił sprawdzane wtedy wydanie, wybrał właściwy instalator i pozostawił każdy zwykły plik bezpośrednio w /etc/csf bez zmian.
Pakiet 15.10.32 ogranicza iframe do 640–1200 pikseli, przewija go wewnętrznie i wraca na górę po nawigacji. Maskowany modal, Watch System Logs, Search for IP i Firewall Allow pozostają widoczne, a zaufana polityka i rzeczywisty test backendu są zachowane.
Katalog modules jest opcjonalny. Detektor przyjmuje wyłącznie wspierane katalogi kanoniczne i bezpieczną deklarację /etc/olspanel/base_dir należącą do roota.
Przed zapisem adapter tylko odczytuje metadane /etc/csf, /etc/csf/csf.conf i /etc/csf/csf.cloudflare. Tryb --dryrun wykonuje tę samą kontrolę bez zmiany plików.
Symlinki, pliki inne niż zwykłe, własność inną niż root, zapis grupy lub świata oraz chronione pliki z więcej niż jednym hardlinkiem są odrzucane przed instalacją ze wskazaniem dokładnej ścieżki.
Po instalacji /etc/csf otrzymuje root:root 0700, a csf.conf i csf.cloudflare root:root 0600 z dokładnie jednym hardlinkiem. Istniejąca treść obu plików pozostaje identyczna bajtowo.
Jeżeli csf.cloudflare nie istnieje, może pochodzić wyłącznie ze zweryfikowanego, podpisanego pakietu; istniejący plik nie jest zastępowany.
Instalator ogólny kończy pracę błędem, gdy rekurencyjny chmod lub chown nie powiedzie się, zamiast kontynuować do komunikatu PASS.
Brakujący katalog powstaje dopiero podczas rzeczywistej instalacji jako root:root 0755. DCSF zapisuje prywatną informację, że sam go utworzył.
Uninstall usuwa katalog nadrzędny wyłącznie wtedy, gdy utworzył go DCSF i katalog nadal jest pusty. Obce lub niepuste dane pozostają nietknięte.
Preflight i kontrola os.pl wymagają JSON::PP. Naprawa korzysta z podpisanej możliwości RPM perl(JSON::PP), pakietu Debian libjson-pp-perl, prywatnego cpanm cPanel lub jawnie włączonego fallbacku systemowego CPAN.
Po instalacji ogólnej, lecz przed publikacją lub restartem integracji panelu, adapter wykonuje izolowany test backendu perl -T -c. Błąd zatrzymuje integrację OLSPanel.
OLSPanel podaje obrazy z uwierzytelnionego drzewa /usr/local/csf/lib/webmin/csf/images, w którym podpisany pakiet umieszcza między innymi ikonę csf.svg.
Backend ładuje /usr/local/csf/lib/ConfigServer/panel-action-policy.json z require_trusted => 1 zamiast używać domyślnej ścieżki CyberPanelu. Cały łańcuch nadrzędny i plik muszą być kontrolowane przez roota i niezapisywalne dla innych.
Instalator wysyła ograniczone żądanie binarne tylko do odczytu przez rzeczywisty backend w taint mode. Odpowiedź nie może przekroczyć 16 MiB i musi zawierać marker interfejsu DCSF, zanim integracja zostanie opublikowana lub zrestartowana. Po aktualizacji extmail.uck.katowice.pl pełna ścieżka Django do backendu Perla zwróciła HTTP 200.
Chronione działania używają osobnego okna z ograniczonym polem type="password" zamiast window.prompt(). Escape, przycisk anulowania i kliknięcie tła bezpiecznie przerywają operację, a widoczne pole jest czyszczone natychmiast po przekazaniu danych do żądania.
Search System Logs i Watch System Logs przyjmują wyłącznie nocache o długości od jednej do dwudziestu cyfr. Stan postępu kończy się po każdej odpowiedzi, błąd pokazuje status HTTP, a produkcyjne testy wyszukiwania i podglądu zwróciły HTTP 200.
Przechwycona nawigacja jest deduplikowana, odraczana do następnego obrotu pętli zdarzeń i jawnie wysyłana do _self z widocznym postępem. Quick Allow i zapis konfiguracji zachowują pełną, niepustą odpowiedź zamiast pustej ramki.
Testy przez rzeczywisty backend Perla potwierdziły wyszukanie dodanego adresu, listę Firewall Allow oraz kontrolki Done i Return. Tymczasowy wpis testowy został usunięty, a końcowy skrót csf.allow wrócił dokładnie do wartości sprzed testu.
Iframe działań pozostaje między 640 a 1200 pikseli, przewija długą treść wewnętrznie i wraca na górę po każdej nawigacji. Test produkcyjny utrzymał zewnętrzną stronę na wysokości 1000 pikseli i pozycji przewijania zero, dzięki czemu wyniki Search for IP, Firewall Allow, Watch System Logs i modal reautoryzacji pozostały widoczne.
Instalator, podpisany manifest aktualizacji, publiczny klucz weryfikacyjny, skrót pakietu i tożsamość wydania są publikowane razem.
Archiwum 15.10.32 jest związane skrótem z podpisanym manifestem.
Bootstrap przypina klucz RSA-3072, podpis, SHA-256, rozmiar i zamknięty wykaz plików.
JSON::PP jest wymagane przez preflight i runtime os.pl; RPM używa podpisanej możliwości perl(JSON::PP), a Debian pakietu libjson-pp-perl.
Systemowy CPAN działa wyłącznie po podaniu --allow-cpan-fallback i korzysta ze stałego mirroru MetaCPAN przez HTTPS.
Instalator sprawdza /usr/local/cpanel/3rdparty/bin/perl i używa pasującego cpanm uruchomionego przez ten sam interpreter.
Backend ładuje /usr/local/csf/lib/ConfigServer/panel-action-policy.json z require_trusted => 1; cały łańcuch ścieżki musi być pod kontrolą roota.
Po instalacji ogólnej i przed publikacją lub restartem integracji adapter wykonuje perl -T -c i rzeczywiste żądanie ramkowe tylko do odczytu. Odpowiedź ma limit 16 MiB i musi zawierać marker interfejsu DCSF.
Chronione działania używają ograniczonego pola type="password" bez window.prompt(); Escape, anulowanie i kliknięcie tła przerywają operację, a widoczne pole jest natychmiast czyszczone.
Search System Logs i Watch System Logs poprawnie kończą stan postępu. Odroczona nawigacja _self zachowuje wyniki Quick Allow, zapisu konfiguracji, Search for IP i Firewall Allow.
Iframe pozostaje między 640 a 1200 pikseli, przewija się wewnętrznie i wraca na górę po nawigacji, dzięki czemu wyniki i modal reautoryzacji są widoczne.
Obrazy są podawane z /usr/local/csf/lib/webmin/csf/images; podpisany pakiet dostarcza tam również csf.svg.
Detekcja nie wymaga katalogu modules, sprawdza bezpieczny base_dir i cp.service, a ten sam preflight działa w --dryrun.
Preflight tylko odczytuje metadane /etc/csf, csf.conf i csf.cloudflare; symlinki oraz niebezpieczne hardlinki są odrzucane z dokładną ścieżką.
/etc/csf jest finalizowane jako root:root 0700, a csf.conf i csf.cloudflare jako root:root 0600 bez zmiany istniejącej treści.
Błąd rekurencyjnego chmod lub chown w instalatorze ogólnym zatrzymuje instalację.
Modules powstaje jako root:root 0755 dopiero podczas instalacji; uninstall usuwa go tylko z zapisem pochodzenia i gdy pozostaje pusty.
Wydanie zachowuje ograniczony replay, audyt, korelację i odizolowany kolektor logu OpenLiteSpeed.
DH20.29 jednoznacznie odpowiada technicznej wersji DCSF 15.10.32.
Pakiet przeszedł 77 z 77 bramek, a publiczny bootstrap 85 z 85 testów.
Bootstrap rozpoznaje stan serwera przed zmianą plików i nie traktuje aktualizacji jak nowej instalacji.
Wymaga jawnego wyboru --testing albo --production. Zalecany pierwszy przebieg to --testing.
Instalator wykrywa bieżącą wersję, odmawia obniżenia wersji i prosi o potwierdzenie aktualizacji lub reinstalacji.
Najpierw weryfikuje cały podpisany pakiet i prywatny Perl cPanel z pasującym cpanm, potem prosi o zgodę. Po potwierdzeniu tworzy prywatną kopię konfiguracji i reguł, sprawdza rollback, usuwa RPM cPanelu i instaluje DCSF.
Dla nowej instalacji zacznij od --testing. Przy aktualizacji uruchom skrypt bez flagi profilu, aby zachować istniejące TESTING, i odpowiedz na pytanie instalatora.
Pobierz skrypt do pliku, sprawdź podaną sumę i treść, a następnie uruchom go jawnie.
curl -fsSLo dcsf-install.sh https://dcsf.pl/install.sh
printf '%s %s\n' '86cf07a9c45c1cc9a5eab7b8f9b360af98455a67927f7e52c78be2c5ff7d34f8' dcsf-install.sh | sha256sum -c -
less dcsf-install.sh
sudo sh dcsf-install.sh --testingKażda z trzech domen udostępnia te same bajty z jednego, chronionego katalogu publikacyjnego.
| Wydanie publiczne | DH20.29 |
|---|---|
| Wersja techniczna | 15.10.32 |
| SHA-256 pakietu | ba8e5a738dec83bf4ef3abd8b59add85e88f495555f5dd8f116d837b70f86268 |
| Rozmiar pakietu | 5 869 701 bajtów |
| Zamknięty inwentarz | 585 wpisów · SHA-256 be8bc9f4b9a04c505394c0ca3a6aa5a79aa3a819dcbb1e687daf687f7cdbc1a9 |
| SHA-256 manifestu | 60c115a5d63f91725c40c66ce0647436a500cc27930edbf8614d22b4463c003f |
| Bramki wydania | 77/77 PASS |
| Testy publicznego bootstrapu | 85/85 PASS |
| Commit źródłowy pakietu | 784481c2223e709ec9ab0a3e9bcc8cc41071293f |
| Commit tagu wydania | 3849ed6a3f0b58cd5f1afaca1241d0e73f6fb90a |
| Gałąź wydania | fix/centos6-compat |
| Tag | DH20.29 |
| Manifest | manifest.txt · podpis |
| Metadane publiczne | release.json · install.sh.sha256 |
| Licencja | GNU GPLv3 |