hMailServer 6.3.8 was published on 2 November 2026. It is a security release: upgrade every server running 6.3.7 or earlier. Its installers, packages and notes are on the release’s page on GitLab, and its announcement is on the forum. The 6.3.8 installer refuses an installation of the original hMailServer’s 5.7 releases before it changes anything.
Read this first
Do not run these installers over the original hMailServer’s 5.7. Its builds of August and September 2026 (the 5.7.0 pre-releases 2788 and 2843, 5.7.0 build 3013, 5.7.1 and 5.7.2) keep their database at version 5709 or 5711, which this hMailServer’s upgrade has no step from, and the installers of 6.3.7 and earlier do not check for them: run over one, setup replaces the original’s programs and then either leaves a database the server refuses or sets up a new, empty database beside the original’s. Install this hMailServer on another machine instead, make the domains and accounts there, and bring each mailbox’s mail across over IMAP, as Migration.md, “From the original hMailServer”, describes. The original’s releases up to 5.6 are upgraded in place as before; where the notes below say that the upgrade chain runs from every earlier hMailServer version, the original’s 5.7 is not among them.
This is not the current release. hMailServer 6.3.8 is the one to install unless you need this exact version.
Downloads for 6.3.6
Windows
Windows 10 (version 1607 or later) and Windows 11, or Windows Server 2016 and newer; 64-bit only. The x64 installer is the one for an x64 server; the ARM64 installer is a preview for Windows on ARM, cross-compiled and never yet run on ARM64 hardware, and a new ARM64 installation is set up against SQL Server or PostgreSQL. Run the installer as an administrator: it upgrades an installation older than this version in place, and it cannot go backwards — an older server refuses a database a newer one has upgraded, so back up the database and the data directory first. The installer is Authenticode-signed by Progressive Robot Ltd.
SHA-25659f8edd259bd…ff84227c Verified against release notesSigstore bundle: .cosign.bundle / .sigstore.json(same bundle, two names)
Debian and Ubuntu
A .deb for Debian 12 and 13 and Ubuntu 24.04 and 26.04, on x86-64 and AArch64. The generic package, built on Ubuntu 26.04, is the one an installed server's update check asks for; it asks for glibc 2.38 or later, so Debian 12 takes its own package. Each listed release has a package of its own, named for it and built and tested in that release's container, the AArch64 ones cross-compiled and tested under emulation. The package needs ca-certificates, which apt installs with it. It sets up the service, its systemd unit and the configuration under /etc/hmailserver.
An .rpm for Fedora 43 and 44, Enterprise Linux 9 and 10, and openSUSE Leap 16.0 and Tumbleweed, on x86-64 and AArch64. The generic package is the one an installed server's update check asks for; it does not install on Enterprise Linux 9, which takes its own package. Each listed release has a package of its own, named for it and built and tested in that release's container, the AArch64 ones cross-compiled and tested under emulation. Every .rpm requires glibc's extra character-set converters, glibc-gconv-extra (glibc-gconv-modules-extra on openSUSE), which dnf and zypper install with it.
For seeing hMailServer run on a laptop, not for running mail: it runs as whoever starts it, with no service user, no systemd unit and no hardening, and it cannot bind port 25. Install the .deb or the .rpm to run mail. On Fedora, Enterprise Linux or openSUSE, install glibc-gconv-extra (glibc-gconv-modules-extra on openSUSE) first; the server says when they are missing.
SHA-256a6bfafb1c4b5…fe0cf1a6 Verified against SHA256SUMSSigstore bundle: .cosign.bundle / .sigstore.json(same bundle, two names)
Installchmod +x hMailServer-6.3.6-x86_64.AppImage
Also published as a container image, registry.gitlab.com/hmailserver/hmailserver:6.3.6, one index over linux/amd64 and linux/arm64, each built from this release’s .deb of its architecture and signed with cosign as the release pipeline; the Helm chart is among the files below. ContainerImage.md gives the pull, the check of the project’s id and the Compose file.
What’s new in 6.3.6
hMailServer 6.3.6 fixes security flaws the project's own review found in every earlier version, and is the last release for the time being. It was published on 6 October 2026, built and signed by the project's GitLab CI pipeline from the tag v6.3.6 (commit e3c448aa), and it carries every file that pipeline makes: the x64 and ARM64 Windows installers, .deb and .rpm packages for x86-64 and AArch64 with one package for each of ten distribution releases, both AppImages, the source tarball, the Helm chart, the PowerShell module, an SBOM for each compiled file and SLSA build provenance, with a Sigstore bundle beside every file. It is also the first release published as a container image. 6.3.6 takes OpenSSL 4.0.3 into the Windows installers, fixes what 6.3.5's release and the first live updates from 6.3.4 found, and replaces with the project's own code the last code in the server whose licence a distribution would have had to settle. The schema moves from 6105 to 6108 in three one-way steps. After 6.3.6 the project makes security releases only; the 6.3 line receives security fixes until 30 September 2027.
Read this first
Read this first: upgrade every server running 6.3.5 or earlier. The security section below says why. On 6.3.4 or 6.3.5 the live update installs 6.3.6: on the Control Panel's Status page, Check for updates, Download update, Install update. Every file of 6.3.6 is signed as the release's pipeline at the project's group path, https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.6, which every server from 6.3.4 on trusts. The update is applied by the version already installed, so three things of 6.3.4 and 6.3.5 still hold for it. A Windows service running as NT SERVICE\hMailServer downloads and verifies the installer, then leaves the install to an administrator (HM7463): download hMailServer-6.3.6-x64.exe, check that Get-AuthenticodeSignature answers Valid for CN=Progressive Robot Ltd, and run it as an administrator, keeping the service account on the installer's Service account page; from 6.3.6 on, Install update in the Control Panel on the server installs the next release with one Windows prompt. On Linux, install 6.3.6 with apt, dnf or zypper rather than by the live update, whose apply step on 6.3.4 and 6.3.5 is the one fixed in this release (CVE-2026-104658), or turn the apply off until then with systemctl disable --now hmailserver-update.path; from 6.3.6 its own helper applies the next release. A server whose UpdateSigningIdentity, UpdateSigningIssuer and UpdateSourceRepository still name the project's first path, set so that a 6.2.28 to 6.3.3 server could install 6.3.5, refuses 6.3.6: clear the three first, in the Control Panel, with DELETE /api/v1/settings/ini/<name> or on Linux with hmailserver --set-setting <name>=, not in the file, which 6.3.4 and 6.3.5 put back.
Read this too
Read this too: a server from 6.2.28 to 6.3.3, or one installed from 6.3.3's AArch64 packages or AppImages, upgrades by hand, once. Those versions trust only the GitHub workflow that signed the releases up to 6.3.3. On Windows run hMailServer-6.3.6-x64.exe over the existing installation; on Linux install the package with apt or dnf, or replace the AppImage with 6.3.6's. Until then keep UpdateAutoDownload off on such a server, or it downloads the installer at every check and refuses it. A server older than 6.2.28 runs the installer, as always: the upgrade chain runs from every earlier hMailServer version. A server installed from one of 6.3.6's per-distribution packages is offered the next release's generic package by its live update, which apt refuses on Debian 12 and dnf on Enterprise Linux 9; there, upgrade with the package manager and your release's own package of the next version.
Read this too
Read this too: back up the database and the data directory first. The three schema steps are one-way. 6106 changes no column and gives every external account's days to keep messages the one meaning both fetchers now read, keeping each account doing what it did or stopping it deleting; 6107 finishes the greylisting key that schema 6072 began, so a sender whose old row it deletes is greylisted once more; 6108 adds the never-ban list by reverse name and, for each SMTP listener, what it does with AUTH, On for every listener an upgrade finds. From 6.3.3 or older the upgrade runs 6.3.4's steps first, and 6.3.4's notes apply: on MySQL and MariaDB step 6102 rebuilds every table as utf8mb4, and at the first start the [Settings] section of hMailServer.ini moves into the database.
Read this too
Read this too: mail can stop flowing if your DNS resolver strips DNSSEC. With DANE on, as it is by default, an MX or TLSA lookup that does not come back whole (no answer, SERVFAIL, a signed zone's answer without its signatures or without its proof that no records exist) no longer counts as unsigned: the host is not used, and a delivery with no host left is deferred with 4.7.0. A server whose resolver cannot answer DNSSEC queries, or behind a firewall that drops DNS answers longer than 512 octets, now defers its mail to most domains and says so in each deferral and in the application log ("DNSSEC: the root zone's keys did not validate"). Make the resolver answer DNSSEC queries (any current public or ISP resolver does), or set DaneEnforcementEnabled to 0. A private name under a signed public domain, answered by an internal DNS server, needs a route. Outbound TLS defers more too: a host that the destination's TLSA records or MTA-STS policy require TLS of, and that offers no STARTTLS, is deferred with 450 4.7.0 where the message bounced.
Read this too
Read this too: external accounts' days to keep messages means one thing now. -1 deletes each message on the remote server once collected, 0 leaves every message there, N deletes it N days after collection, for POP3 and IMAP alike. From 6.2.25 to 6.3.5 the IMAP fetcher read 0 and -1 the other way round, and the Control Panel, the Deck, the webmail and the REST API described that reversed meaning. The upgrade keeps every account doing what it did or stops it deleting. Afterwards, look at your IMAP external accounts (one that was emptying its remote INBOX now shows -1 and goes on until you set 0) and your POP3 accounts at -1 (they go on deleting until you set 0).
Read this too
Read this too: on Windows, the data, log, temp, database and event folders and hMailServer.INI become private to SYSTEM, the Administrators and the service, at every installation and upgrade, whatever account the service runs as; on a large message store the first run takes minutes. A script, a backup program or a monitoring agent that read the logs or the message store as an ordinary account needs an entry of its own (icacls "<folder>" /grant "<account>:(OI)(CI)RX"), which later runs keep. An editor that saves hMailServer.INI by replacing the file gives it Bin's permissions again: run hMailServer.exe /ProtectFolders as an administrator after it. A script outside the service that uses COM on a server with an administrator password must sign in first: Utilities.BlowfishEncrypt, BlowfishDecrypt, ResolveMXRecords, GetMailServer, IsLocalHost, CheckSieveSyntax, EvaluateSieveScript and CriteriaMatch answer only a caller that has called Authenticate, and a message or fetch account the script creates itself works only while the same program holds an Application it signed in on. Event scripts in the service, the Control Panel and the shipped DecryptBlowfish.vbs need no change. The installer now exits 10 when a step after its files did not complete and the database is as the earlier version left it, and 11 once its database step has changed the database; it exited 0.
Read this too
Read this too: behind a reverse proxy, the REST listener's loopback port now answers only localhost, an IP address, the server's host name and the host of each configured outside address of the webmail, and refuses any other Host with 421. If your proxy forwards the browser's own Host, set that name as the webmail's outside address (for example confidential_base_url) or as the server's host name before upgrading. The proxy must pass the Control Deck's page through unchanged.
Full release notes for 6.3.69 sections
Security
Each of these was found by the project's own review, and each is fixed in 6.3.6 unless it says otherwise. The Security section of CHANGELOG.md at the tag and the work items it links give the details; the project's GitLab group is the CVE Numbering Authority's route for them, and several identifiers were still requested when 6.3.6 was published. Upgrade every server running 6.3.5 or earlier.
CVE-2026-103011: a heap buffer overflow in the encryption routine of the legacy Blowfish code of stored secrets, inherited from the original hMailServer, in every version up to 6.3.5. 6.3.6 replaces that code with the project's own. CVE-2026-103010 is the overflow in the decryption routine of the same code, in every version up to 6.3.3, fixed in 6.3.4, whose notes did not say so.
CVE-2026-104660: on Windows, COM objects that carry no credential (a message, its attachments or a fetch account that a program creates itself, and the objects an Application handed out once a later Authenticate on it failed) were not refused what only a signed-in caller may do, so with an administrator password set a local Windows user with no hMailServer credential could queue mail, read and write files as the service's account, and attach a fetch account to any account; every version up to 6.3.5.
CVE-2026-104658: on Linux, the live update's apply step, which runs as root, took the unit to stop and, for an AppImage, the verifying program from the request the service account writes, and wrote its log and its outcome by names through which a symbolic link that account planted could lead them elsewhere; 6.3.4 and 6.3.5.
CVE requested (work item 71): the commands an administrator runs elevated on Windows wrote by path into folders the service's account can change, and on Linux the store commands run as root followed links that account planted and every command run as root wrote its error reports into that account's log directory by name; on Windows 6.3.4 and 6.3.5, on Linux every version from 6.3.0 to 6.3.5.
CVE requested (work item 77): on Windows, the installer left the Data, Logs, Temp, Database and Events folders and hMailServer.INI with the permissions Program Files hands down, so every account that could sign in to the computer could read the mail, the logs, the event scripts and the database's password; every version from 6.0.0 to 6.3.5. The installer now makes them private to SYSTEM, the Administrators and the service, and on Linux the AppImage makes its folders 0700.
CVE-2026-104659: the REST administration listener's loopback port answered a request whatever its Host, so a web page could reach the console through a browser on the same machine, and a wrong administrator password over REST from the loopback address was not slowed down. Such a request is now refused with 421, and a wrong password costs a growing delay of up to ten seconds.
CVE-2026-103647: the webmail handed the browser an attachment it had decrypted itself (S/MIME or OpenPGP) under the type the message named; 6.3.2 to 6.3.5. It is now always a file the browser only saves.
CVE-2026-104704: outbound DANE used DANE-EE records alone, so a host whose validated TLSA records were of another kind was delivered to as if it published none; every version up to 6.3.5. DANE-TA is now verified too. CVE requested (work item 64): outbound DANE read a DNS lookup that did not come back whole as unsigned, so whoever could disturb a recipient domain's DNS could take it out of DANE; every version up to 6.3.5.
CVE requested (work items 62 and 63): the REST listener's table of browser sessions dropped its least recently used session whoever held it, so one account holder signing in over and over signed out every webmail tab on the server that sat idle for a minute (6.2.28 to 6.3.5, and the Control Deck with them from 6.3.0); and the pending halves of single sign-on and passkey sign-ins, which anybody may start, were held the same way, so a client asking for sign-in starts a few times a second made other people's OpenID Connect, SAML and passkey sign-ins fail (6.3.4 and 6.3.5). The browser now carries a pending sign-in, sealed.
CVE requested (work items 65, 66, 67, 68, 69, 70, 72, 73, 74, 75 and 76): code that took time growing with the square of its input, which one message or one request could use to hold a thread that serves everybody: the webmail's embedded images and a stranger's S/MIME certificate kept without a trust check (6.3.2 to 6.3.5); the server's string replacement, reached by a message with an HTML part full of entities and by the DMARC test verifying a DKIM signature full of spaces (6.0.0 to 6.3.5); parsing one IMAP FETCH (6.0.0 to 6.3.5); a returned bounce or complaint report begun by very many blank lines (6.3.4 and 6.3.5); a header field with very many line breaks, which the DMARC test reads for each received message (6.0.0 to 6.3.5); a MIME header parameter whose value is empty and directly followed by a semicolon, which never ended (6.0.0 to 6.3.5); verifying DKIM or ARC signatures over a very large header (6.0.0 to 6.3.5); expanding a macro in a sender's SPF record into a name too long to look up (6.3.4 and 6.3.5); an account holder's own Sieve filter, whose :matches test backtracked and whose deleteheader erased fields one at a time (6.2.22 to 6.3.5); and the JSON reader, which reads the REST API's bodies and, where domain reports are on, a TLS report of up to 16 MB that anyone may mail in, where a 4 MB report took about 300 seconds (6.3.2 to 6.3.5).
CVE-2026-103649: on Linux, some network waits had no timeout: the MTA-STS policy fetch, the DANE TLSA query, the OAuth2 token request, the ACME client and its http-01 responder, and the ManageSieve and metrics listeners, and in 6.3.0 to 6.3.2 the server's own DNS resolver; 6.3.0 to 6.3.5.
The same release fixes or hardens more without a CVE request: calendar messages delivered by mail now change a stored event only from a sender the server verified (6.3.4 and 6.3.5 did not check); the Control Deck and the webmail are served under stricter page policies; attachments, files sent as links and contact photos keep their declared type only when no browser runs or renders it; ManageSieve serves its connections side by side and holds each to deadlines; and a mailbox key and the stored-secrets key no longer stay whole in memory freed without being written over, as they could in 6.3.4 and 6.3.5. The Windows installers carry OpenSSL 4.0.3 (CVE-2026-84783 and others) and libpq from PostgreSQL 18.6, and event scripts on Linux run in QuickJS 2026-06-04 (CVE-2025-62494, CVE-2025-62493, CVE-2025-62492).
What changes without a switch
The full list is the 6.3.6 section of CHANGELOG.md, under "What changes on upgrade without a switch". Beside the notices above, in short:
Spam checks: the MX-record test and the SURBL test cut host names by the Public Suffix List compiled into the server, so a sender at a public suffix itself with no MX (github.io, co.uk) now fails the MX test; the SURBL test reads a link's host as a browser does, asks each list about every domain a message links to (up to 200; more scores the new SurblTooManyDomainsScore, 5 by default), and a list's error answers are never a listing; tlds.txt is removed.
Port 25 stays as it was: an upgraded server's SMTP listeners still take AUTH on port 25, so nobody is banned on the morning of the upgrade. The setup checklist's new item, No password on port 25, says to move clients that sign in on 25 to 587, then set port 25 to Honeypot or Off. A new installation's port 25 is a Honeypot.
Backups leave out the live update's Updates folder, and a destination inside the data directory works; up to 6.3.5 it failed every backup. A full restore of messages, which failed on every installation made new with 6.3.4 or 6.3.5, now copies the archive's store in first; it keeps this installation's own self-signed certificate and key when the archive's key is not this installation's.
More web requests go through HttpProxy when it is set: the OAuth2 token, the MTA-STS policy, ACME, brand logos, Web Key Directory, Web Push, one-click unsubscribe and an inbound webhook route held to public addresses.
The live update keeps its outcome after the start, tries a failed scheduled check again once ten minutes later, and keeps a verified installer across a restart. Its trust settings (UpdateSigningIdentity, UpdateSigningIssuer, UpdateSourceRepository, UpdateTrustRootsFile, UpdateLogPublicKeyFile) are read from hMailServer.ini alone, and COM and the REST API refuse a change to them.
Calendars: a cancellation of some occurrences of a series takes those out of a guest's calendar and leaves the rest.
ManageSieve (off by default) is held to deadlines: a command line within 30 seconds, sign-in within 60, a literal 300; an account has at most four sessions.
IP addresses written in text are read the same way on Windows as on Linux: four decimal parts, or IPv6 as RFC 4291 writes it. A value kept in an older form (192.168.1, 010.0.0.1, an address with a port) is read the new way from the first start, and an AutoBanNeverBan entry so written protects nothing (HM6524).
Sign-in limits: an account, or the administrator, holds at most fifty REST browser sessions.
Webmail S/MIME: a correspondent's certificate is kept for encrypting replies only when its chain is trusted, under the message's From address; review the certificates kept before the upgrade on the webmail's Security page. From 6.2.25 to 6.3.5 an account saved through a webmail's password or out-of-office plugin could have its retention overwritten: check those accounts' retention after upgrading.
What the auto-ban put below the server (the Linux firewall hook, AutoBanCommand) is lifted after a stop too, and Windows' uninstaller removes the auto-ban's firewall rules.
On Linux the backup and event logs are UTF-8, converted in place the first time. The .deb and the .rpm require ca-certificates.
Text in the Control Panel can be selected and copied on every page and dialogue. Scripting off runs no script engine. The project's address is gitlab.com/hmailserver/hmailserver in the Control Panel's links, security.txt, the systemd units and the packages.
The packaging Compose file runs PostgreSQL 18: if you take the new docker-compose.yml, move the PostgreSQL 16 data once, with a dump and a load. A monitor that matches "The response carried no HTTP headers." needs the new sentence, which says who ended the connection, after how many bytes and seconds.
What is new
A never-ban list by reverse name: spare a provider whose outbound hosts share a reverse name from every auto-ban, checked forward and back.
Port 25 takes no password: each SMTP listener's AUTH is On, Off or Honeypot.
An auto-ban can be widened to its reverse-name neighbours in the same /24, off by default.
A HELO name or a sender's domain that is not a name can be refused, two settings, off by default.
One-click install of an update from the Control Panel on a Windows server whose service is not an administrator.
A Nix flake with a NixOS module, an APKBUILD and an OpenRC service for Alpine Linux, and a snap are in the tree, built without the live update; none is published in a distribution's archive or store yet.
Downloads
The release carries 62 files, each with its Sigstore bundle, <file>.cosign.bundle, beside it, and each file but a compiled file's SBOM has that bundle a second time as <file>.sigstore.json, the name Sigstore's own clients look for.
Windows: hMailServer-6.3.6-x64.exe, and hMailServer-6.3.6-arm64.exe for Windows on ARM, both Authenticode-signed by Progressive Robot Ltd. The ARM64 installer is a preview: it is cross-compiled on the project's x64 Windows runner and has never run on ARM64 hardware. SQL Server Compact has no ARM64 build, so a new ARM64 installation is set up against SQL Server or PostgreSQL, and a silent one is given its database on the command line. If you install it on an ARM64 machine, please say how it went, working or not, in an issue on GitLab.
Linux, x86-64 and AArch64: the generic hmailserver_6.3.6_amd64.deb, hmailserver_6.3.6_arm64.deb, hmailserver-6.3.6-1.x86_64.rpm and hmailserver-6.3.6-1.aarch64.rpm, the names an installed server's update check asks for; and each Debian 12 and 13, Ubuntu 24.04, Fedora 44 and 43, Enterprise Linux 10 and 9, openSUSE Leap 16.0 and Tumbleweed release's own package for both architectures, named hmailserver_6.3.6-1~<release>_<arch>.deb or hmailserver-6.3.6-1.<release>.<arch>.rpm, each built in that release's own container and installed and run in a clean one. The generic .deb asks for glibc 2.38 or later, so Debian 12 takes its own package, and the generic .rpm does not install on Enterprise Linux 9, which takes its own. Every .rpm requires glibc's extra character-set converters, glibc-gconv-extra (glibc-gconv-modules-extra on openSUSE), which dnf and zypper install with it. The AArch64 files are cross-compiled and tested under emulation: no AArch64 machine has run them.
The AppImages, hMailServer-6.3.6-x86_64.AppImage and hMailServer-6.3.6-aarch64.AppImage, with the project's own AppImage runtime, and beside them the source of the libraries they carry and of those their runtime links, as their licences ask.
The source tarball, hmailserver-6.3.6.tar.gz, reproducible and with nothing non-free in it; the Helm chart, hmailserver-chart-6.3.6.tgz; and the PowerShell module, HmailServer.psd1 and HmailServer.psm1, Authenticode-signed.
An SBOM for each compiled file and the tarball, <file>.cdx.json (CycloneDX 1.6, its subject that file by its SHA-256), and the source tree's two, hmailserver.spdx.json and hmailserver.cyclonedx.json; hmailserver-linux-6.3.6-SHA256SUMS.txt, the SHA-256 of every Linux file, the two AppImage sources files and the chart; and hmailserver-6.3.6.intoto.sigstore.json, SLSA v1 build provenance that names every file by its SHA-256.
The container image, the first the project has published: registry.gitlab.com/hmailserver/hmailserver:6.3.6, also tagged 6.3 and latest, one index over linux/amd64 and linux/arm64, each built from this release's .deb of its architecture and signed with cosign as this release's pipeline, with its SBOM attested to it. In the container the update check names the image to pull and installs nothing. ContainerImage.md in the repository's hmailserver/docs gives the pull, the check of the project's id and the Compose file.
No channel publishes 6.3.6 yet: the apt and dnf repositories, Docker Hub, Quay.io, the AUR, the Ubuntu PPA, Copr, the openSUSE Build Service, Chocolatey, the Snap Store, PyPI and the PowerShell Gallery publish from master once their keys and accounts exist.
The newest stable release's files are also at fixed addresses that never lead to a pre-release: updates.progressiverobot.com/download/hMailServer-x64.exe, /download/hMailServer-arm64.exe, /download/hmailserver_amd64.deb, /download/hmailserver_arm64.deb, /download/hmailserver.x86_64.rpm, /download/hmailserver.aarch64.rpm, /download/hMailServer-x86_64.AppImage and /download/hMailServer-aarch64.AppImage; add .cosign.bundle for the bundle. updates.progressiverobot.com/download/ leads to that release's page.
Verification
Every file is signed with Sigstore by the project's GitLab CI pipeline for the tag v6.3.6, and was checked before publication with hmailserver --verify-update, built from the same commit. The certificate's identity is https://gitlab.com/hmailserver/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.6, its issuer https://gitlab.com, and it carries the project's id, 86730559. With cosign and the file and its bundle beside you, the first command must say Verified OK, and the second must print the project's id, which cosign does not check, since the identity is a path and a path could pass to another project were the group or the project renamed:
If your cosign has the --new-bundle-format option and does not use it by default, add it. 6.3.5, signed before the project moved into the group hmailserver on 29 September 2026, names https://gitlab.com/Progressiverobot/hmailserver//.gitlab-ci.yml@refs/tags/v6.3.5 instead. To check that a file is one this release's pipeline built, against its build provenance, which says Verified OK only when the file's SHA-256 is one the provenance names:
Then sha256sum -c --ignore-missing hmailserver-linux-6.3.6-SHA256SUMS.txt must say OK for each Linux file you downloaded. On Windows, Get-AuthenticodeSignature on either installer must answer Valid, with a signer certificate for CN=Progressive Robot Ltd; the x64 installer's published SHA-256 is 2f673913e5f127d688090e98f6001ca567cd45560d452aebc74421b5533cfe53 and the ARM64 installer's 59f8edd259bdef2e31dd83da152c3f748d67a27a19e6c3c8f5a2ade2ff84227c. On Linux a server from 6.3.4 on makes the same check its live update makes, hmailserver --verify-update <file>, with the bundle beside the file. In a clone, git -c gpg.ssh.allowedSignersFile=.gitlab/allowed_signers verify-tag v6.3.6 must report a good signature by the one key that file lists. The release's own notes, under Verification, give each file's SHA-256 and the certificate the pipeline was given; SECURITY.md's "Verifying a release", "Build provenance" and "Software bills of materials" have the rest.
How it was checked
The tag's pipeline ran every gate before anything was published: the Windows suite on the project's Windows runner, 4,110 tests, 4,031 passed, 0 failed, 78 skipped and 1 inconclusive; the Linux suite on the project's Linux runner, 2,409 tests, 2,066 passed, 0 failed, 343 skipped; the rebuild of the x86-64 .deb and .rpm byte for byte; the install and start of every Linux package in a clean container of its release, the AArch64 ones under emulation; the static analysis, Semgrep and the dependency scan. It then checked every signature with the server's own verifier. The signed installer went through the installer smoke test: an upgrade from 6.3.5 passed 93 checks and a new installation 59, none failed. The server's build stamp is 6.3.6.45.
Known issues
The ARM64 installer has never run on ARM64 hardware, and no ARM64 Windows server has a live update to 6.3.6, since no release before it carried the ARM64 installer; from 6.3.6 one finds its own installer by name, and an x64 server is never offered it.
No channel publishes the release yet (above); none is live as this release is made.
An AppImage on Fedora, Enterprise Linux or openSUSE runs on the host's glibc and cannot require its extra character-set converters: install glibc-gconv-extra (Fedora, EL) or glibc-gconv-modules-extra (openSUSE) by hand; the server says when they are missing.
A server from 6.2.28 to 6.3.3 pointed at the project's feed with UpdateFeedUrl downloads the installer at every check and refuses it, since it trusts only GitHub's signer: keep UpdateAutoDownload off there until it is upgraded by hand.
Releases pause after this one
6.3.6 is the last release for the time being, by the owner's decision of 28 September 2026, and no feature release follows it until the maintainers say otherwise in SECURITY.md, "While releases pause". A confirmed vulnerability still ships, in a release of its own that is 6.3.6 with fixes (6.3.7, 6.3.8 and so on): a critical or high one as soon as its fix has passed the gates, and none held past 90 days. Other defects are fixed on master and ship with the next security release, or when releases resume. The 6.3 line receives security fixes until 30 September 2027; before that date the maintainers write in SECURITY.md whether support continues, and if nothing is written, it ends then. There are still no maintenance branches: an installation of 6.3.5, 6.2 or anything older is upgraded in place to the newest release. To hear of a security release, switch the server's update check on (UpdateCheckEnabled), or follow the releases' feed at updates.progressiverobot.com/releases.atom.
The project, and reporting a vulnerability
The project's home is GitLab, at gitlab.com/hmailserver/hmailserver, where it moved from gitlab.com/Progressiverobot/hmailserver on 29 September 2026, with issue templates for a bug, a feature, a question and a security report, and a Service Desk address for anyone without a GitLab account: a bug report or a question for the maintainers emailed to contact-project+hmailserver-hmailserver-86730559-issue-@incoming.gitlab.com becomes a confidential issue, which only the maintainers see. Report a vulnerability privately, by one of the two routes in SECURITY.md: a confidential GitLab issue with the Security template, or an email to that Service Desk address, which GitLab files as a confidential issue. Never in a forum thread or a public issue.
Full SHA-256 of each file as recomputed on this server, with its Sigstore bundle beside it. The SBOM and the provenance are not needed to install: the SBOM lists every component in the build, and the provenance records how and where it was built.
SLSA build provenanceSLSA v1 build provenance naming every file of the release by its SHA-256, signed by the release pipeline; cosign verify-blob-attestation checks a file against it.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.