Validated WHM session context
The WHM CGI preserves the validated cp_security_token required by the native cPanel session. Existing request validation, taint mode and same-origin response boundaries remain in place.
DH20.29 / 15.10.32 preserves validated WHM session context, compacts bounded LFD process state and limits permission repair to public cPanel META modules. It corrects the reseller-file shell error found on canary and compares equivalent nftables policies despite reordered independent chains. DH20.28 is superseded; migration safeguards and rollback are retained.
DH20.29 / 15.10.32. Published: 2026-10-08T13:33:03Z. Documentation reviewed: 2026-10-08.
The 51 P-01–P-51 identifiers describe internal remediations, not 51 assigned CVEs. Static Messenger notices are supported; legacy reCAPTCHA self-unblock is disabled.
CVE-2026-65638 / CVE-2026-67402: exact-package assessment
This assessment applies only to the authentic reviewed package and its managed templates. It does not assess every installation or guarantee the absence of every vulnerability. Earlier releases are not assigned a status without separate verification.
Changelog JSON | Security JSON | OpenVEX | llms.txt | llms-full.txt
This release combines WHM context, LFD state and installer repairs with the regression fix found on canary. It supersedes DH20.28; the 51-item security register remains a separate count, without counting tests as vulnerabilities.
The WHM CGI preserves the validated cp_security_token required by the native cPanel session. Existing request validation, taint mode and same-origin response boundaries remain in place.
LFD compacts csf.temppids within its existing size and record limits, using LF_FLUSH to age process records. Accumulated temporary state no longer prevents normal tracking from recording new process identities.
The compatibility repair sets appropriate permissions only for public cPanel META modules. It does not broaden access across private configuration or the complete cPanel tree.
DH20.29 safely repairs a missing final LF in csf.resellers and corrects the shell error found on the canary. DH20.28 / 15.10.31 is superseded because its reseller repair path was faulty.
The comparison accepts a different listing order for independent chains while preserving rule order inside each chain and the remaining policy checks. Reordering independent chains alone no longer causes a false policy mismatch.
Maintainer qualification passed all 77 Linux test files. The autossltest2 canary update completed with CSF/LFD active and configuration preserved. The separately checked production host has passed dry-run only; this is not a production-upgrade claim.
Model choices offered by this release: gpt-5-mini, gpt-5.4-mini, gpt-5.6-terra. Availability depends on the administrator’s OpenAI API account.
Selected local security diagnostics are sent to OpenAI after activation. Recognised secret values are redacted, but this is not an anonymity guarantee. store=false is not a Zero Data Retention guarantee; the API account and provider data policies still apply. Optional API usage is billed separately from the free DCSF software. Findings need administrator review and do not guarantee that every security issue is detected.
Linux release qualification: 77/77. Public-bootstrap checks: 85/85.
Package 15.10.32 adds JSON::PP to installer preflight and the os.pl runtime check while preserving the separation between system Perl, cPanel private Perl and explicit CPAN fallback.
Outside cPanel, DCSF repairs the closed module list through exact RPM capabilities or Debian package mappings. DNF and YUM retain GPG verification, while APT rejects unauthenticated and insecure repositories.
The installer inventories required modules before preflight and after repair. Attempts are bounded, must make measurable progress and succeed only when the entire closed list imports again.
The system CPAN fallback is disabled by default. The operator must pass --allow-cpan-fallback; DCSF uses a fixed HTTPS MetaCPAN mirror, closed module names and validated work directories.
On cPanel, DCSF always validates /usr/local/cpanel/3rdparty/bin/perl, derives the matching versioned cpanm and explicitly invokes it through that same private interpreter without mixing /usr/bin/perl libraries.
OLSPanel requires JSON::PP. RPM selects the signed perl(JSON::PP) capability, Debian selects libjson-pp-perl, cPanel uses private cpanm and system CPAN still requires explicit --allow-cpan-fallback.
Canary PASS: An earlier public --dryrun canary authenticated the release under test, selected the correct installer and left every regular file directly below /etc/csf byte-identical.
Package 15.10.32 bounds the iframe to 640–1,200 pixels, scrolls it internally and returns it to the top after navigation. The masked modal, Watch System Logs, Search for IP and Firewall Allow remain visible while trusted-policy and real-backend checks are retained.
The modules directory is optional. Detection accepts only supported canonical roots and a safe root-owned /etc/olspanel/base_dir declaration.
Before writing, the adapter only reads metadata for /etc/csf, /etc/csf/csf.conf and /etc/csf/csf.cloudflare. --dryrun executes the same checks without changing files.
Symlinks, non-regular files, non-root ownership, group/world writable metadata and protected files with more than one hard link are rejected before installation with the exact failing path.
After installation, /etc/csf becomes root:root 0700 while csf.conf and csf.cloudflare become root:root 0600 with exactly one hard link. Existing contents remain byte-identical.
If csf.cloudflare is missing, it may be installed only from the verified signed package; an existing file is not replaced.
The generic installer stops when recursive chmod or chown fails instead of continuing to a PASS message.
A missing directory is created only during a real installation as root:root 0755. DCSF records privately that it created the path.
Uninstall removes the parent only when DCSF created it and it remains empty. Foreign or non-empty content is preserved.
Preflight and the os.pl runtime check require JSON::PP. Repair uses signed RPM capability perl(JSON::PP), Debian package libjson-pp-perl, cPanel private cpanm or the explicitly enabled system CPAN fallback.
After generic installation but before publishing or restarting panel integration, the adapter runs an isolated perl -T -c backend check. Failure stops OLSPanel integration.
OLSPanel serves images from the authenticated /usr/local/csf/lib/webmin/csf/images tree, where the signed package installs assets including csf.svg.
The backend loads /usr/local/csf/lib/ConfigServer/panel-action-policy.json with require_trusted => 1 instead of using the CyberPanel-specific default path. The complete parent chain and file must be root-controlled and non-writable by others.
The installer sends a bounded read-only binary request through the actual taint-mode backend. The response may not exceed 16 MiB and must contain the DCSF interface marker before integration is published or restarted. After the extmail.uck.katowice.pl upgrade, the complete Django-to-Perl-backend path returned HTTP 200.
Protected actions use a dedicated modal with a bounded type="password" field instead of window.prompt(). Escape, the cancel control and backdrop cancellation safely stop the operation, and the visible field is cleared immediately after the credential is handed to the request.
Search System Logs and Watch System Logs accept only a one-to-twenty digit nocache value. Progress ends after every response, failed requests display their HTTP status, and live search and watch checks returned HTTP 200.
Intercepted navigation is deduplicated, deferred to the next event turn and explicitly submitted to _self with visible progress. Quick Allow and configuration save retain a complete nonempty response instead of an empty frame.
Tests through the real Perl backend found the newly added address, displayed the Firewall Allow list and returned normal Done and Return controls. The temporary entry was removed and the final csf.allow digest exactly matched its pre-test value.
The action iframe stays between 640 and 1,200 pixels, scrolls long content internally and returns to the top after every navigation. The live test kept the outer page at 1,000 pixels with scroll position zero, so Search for IP, Firewall Allow, Watch System Logs and the reauthentication modal remained visible.
DH20.29 maps to signed package 15.10.32: validated WHM session context, bounded csf.temppids compaction, public-only cPanel META permissions, corrected reseller-file repair and equivalent nftables policy comparison. All 77 Linux test files passed and the autossltest2 canary update succeeded. DH20.28 is superseded. Optional AI System Scan, the LFD exclusion editor and public download resources are retained.
The signed public package and installer are available.
The DataHouse public number remains operator-facing, while the technical version preserves compatibility with the CSF/LFD update mechanism.
| Public release | DH20.29 |
|---|---|
| Technical version | 15.10.32 |
| Security remediations | 51 of 51 verified |
| Perl dependencies | JSON::PP through perl(JSON::PP), libjson-pp-perl, cPanel private cpanm or explicit --allow-cpan-fallback |
| OLSPanel policy | /usr/local/csf/lib/ConfigServer/panel-action-policy.json loaded explicitly with require_trusted => 1 |
| OLSPanel backend | perl -T -c plus a real read-only binary frame bounded to 16 MiB and the DCSF interface marker |
| OLSPanel reauthentication | masked type="password" field without window.prompt(), with Escape, cancellation and immediate visible-field clearing |
| OLSPanel system logs | Search System Logs and Watch System Logs end progress for every response and allow only a one-to-twenty digit nocache value |
| OLSPanel action results | deferred _self navigation preserves responses for Quick Allow, configuration save, Search for IP and Firewall Allow |
| OLSPanel action viewport | iframe bounded from 640 to 1,200 pixels, internal scrolling and return to the top after every navigation |
| OLSPanel assets | /usr/local/csf/lib/webmin/csf/images with the signed csf.svg icon |
| OLSPanel | clean layout, safe base_dir and read-only /etc/csf metadata preflight |
| Configuration finalization | /etc/csf root:root 0700; csf.conf and csf.cloudflare root:root 0600; contents preserved byte-for-byte |
| Installer integrity | symlinks and unsafe hard links rejected with the exact path; chmod or chown failure stops installation |
| WebGuard | hard replay and audit ceilings, isolated OLS collector, disabled by default |
| Release qualification | 77 of 77 gates |
| Public bootstrap | 85 of 85 checks |
| Stable channel | update.dcsf.net/v1/stable/ |
The update client separates checking, downloading and applying, allowing operators to inspect each stage.
Fetch signed metadata from the fixed DCSF update origin without inheriting ambient proxy settings.
Validate the manifest signature, version policy, package name, digest and archive structure.
Extract into a private location and run release and compatibility checks before activation.
Activate only an accepted candidate and preserve a controlled rollback path.
The installed client checks, downloads and applies a signed release from the pinned channel as separate operations.
dcsf-update check
dcsf-update download
dcsf-update applyStable channel metadata · Versioned release metadata 15.10.32. release.json is informational. Package authenticity is established by the signed manifest, pinned key and checksums.
12 recent releases verified against signed manifests. This is a bounded history, not the complete project archive.