Pull Requests
- Keep FOS kernels signed for Secure Boot, and make enrolment a short visit by @darksidemilk in #961
- Label FOG's directories and ship a policy module instead of a blanket boolean (dev-branch port) by @mastacontrola in #967
- Give FOG its own SELinux type for /images and snapins (dev-branch port) by @mastacontrola in #969
- Configure the local firewall instead of offering to switch it off (dev-branch port) by @mastacontrola in #971
- Stop recommending permissive SELinux, and stop setting it under -y (dev-branch port) by @mastacontrola in #973
- Add "Enroll Secure Boot Key" PXE menu item (dev-branch port) by @mastacontrola in #977
- docs: working-1.6 first, then port to dev-branch (CLAUDE.md) by @darksidemilk in #974
- Secure Boot: document the ipxe.efi fallback chain, bump fog-ipxe pin by @mastacontrola in #980
- Fix doubled slash in the HTTP-to-HTTPS redirect (GH-978) by @mastacontrola in #982
- Add --no-force-https so -S can be undone (GH-978) by @mastacontrola in #984
- Point the Secure Boot DHCP classes at the snponly chain (dev-branch port) by @mastacontrola in #994
- Pin iPXE to v2.0.0-fog.4 for the restored BIOS command set (1.5) by @mastacontrola in #997
- Hide the Secure Boot enrolment menu item on legacy BIOS boots (1.5) by @mastacontrola in #999
- Define FOG_BASE_DIR on 1.5.x, fixing HTTP 500 on kernel/init update by @mastacontrola in #1000
- Gate the API on uType and stop building the lftp command in a shell (GHSA-2hqx-5ffg-w4c3) by @mastacontrola in #1001
- Stop publishing autoexec.ipxe to the TFTP root, and pin iPXE v2.0.0-fog.5 by @mastacontrola in #1004
- PKI: hang Web and Secure Boot CAs off the existing FOG Server CA (dev-branch port) by @darksidemilk in #1017
- Fix silent Secure Boot/Web CA regeneration when only the CA key is offline by @darksidemilk in #1018
- Stable Release PR For 1.5.10.2253 - 2026-08-11 by @fog-workflows[bot] in #1020
Full Changelog: 1.5.10.2149...1.5.10.2253
Commits
- Version Sync: Increment version from 1.5.10.2149 to 1.5.10.2152 for Patches channel on dev-branch to match commit count since master (b1912aad1)
- Availability probe honours FOG_FTP_PORT (bae85f5a6)
- Stop deriving the Debian docroot from a test the install invalidates (923a74724)
- fix(installer): emit every interface IP as a cert SAN (750f1da04)
- fix(installer): config.class.php host constants take the primary IP (130938980)
- Make a custom webroot actually work (ba41fae1c)
- Install the FOG utilities to the fog path (d3a7079ef)
- Make FOGBackup work, and stop the installer claiming empty backups (717a3c7e0)
- Restrict the maintenance endpoints to same-machine requests (200a5072f)
- Stop a second IP on the FOG interface breaking the apache vhost (b9a970a6f)
- Deny maintenance/ to anything but the server itself (c6c6b705a)
- Keep service logs across restarts and rotate them instead of deleting (1efe787bf)
- Settle what $ipaddress means: one address, with $ipaddresses for the set (62626fcfd)
- Write .fogsettings as soon as the database credentials exist (7c5450196)
- Stop installer helper errors from being written into the DHCP config (ac0709e35)
- fix(installer): survive a master database that offers no TLS (361bacf36)
- fix(installer): stop rejecting a valid root environment on usr-merged distros (c7c262806)
- perf(web): stop querying the database on every hook fire (e827fd1bd)
- build(ipxe): stop overlaying upstream's build system, and pass NO_WERROR (cb9d8d9a2)
- build(ipxe): pin the iPXE clone to a release tag (bd93ae8d5)
- Consume iPXE from FOGProject/fog-ipxe instead of carrying it in git (182701dd6)
- Publish autoexec.ipxe at the TFTP root as well, via a hard link (3c0b4ce37)
- Stage the iPXE Secure Boot binaries at /tftpboot/secureboot (421918f3f)
- Pin iPXE to v2.0.0-fog.2 (6fc1abb94)
- Set the SELinux context on the TFTP root instead of disabling SELinux (2121873d9)
- Keep FOS kernels signed for Secure Boot, and make enrolment a short visit (037af2be4)
- Drop the staging half; keep signing, and accept a DER certificate (f62a592ec)
- Derive the Secure Boot paths from FOG_BASE_DIR, not /opt/fog (d36f94637)
- Label FOG's directories and ship a policy module instead of a blanket boolean (09efe7325)
- Give FOG its own SELinux type for /images and snapins (358fec4c5)
- Configure the local firewall instead of offering to switch it off (450826cb3)
- Stop recommending permissive SELinux, and stop setting it under -y (33d1718f3)
- Allocate multicast ports inside the window the installer firewalls (a678260f9)
- Installer: batch the package state queries and the install transaction (fa46760f7)
- Codify: new features land on working-1.6 first, then port here (3024875ba)
- Secure Boot: generate the signing key by default, and show the page (5d23f2030)
- Fix CLAUDE.md: previous commit accidentally stored base64, not text (e12a1c6bd)
- Fix CLAUDE.md corruption from the base64 round-trip (2c867afba)
- Add "Enroll Secure Boot Key" PXE menu item (08c98aecd)
- Version Sync: Increment version from 1.5.10.2191 to 1.5.10.2198 for Patches channel on dev-branch to match commit count since master (35cd62652)
- Secure Boot: document the ipxe.efi fallback chain, bump fog-ipxe pin (661b23cde)
- Fix doubled slash in the HTTP-to-HTTPS redirect (GH-978) (2c119dc48)
- Add --no-force-https so -S can be undone (GH-978) (8e259237e)
- Version Sync: Increment version from 1.5.10.2198 to 1.5.10.2205 for Patches channel on dev-branch to match commit count since master (2c527624a)
- Point the Secure Boot DHCP classes at the snponly chain (b58039f77)
- Pin iPXE to v2.0.0-fog.4 for the restored BIOS command set (f890e8c96)
- Version Sync: Increment version from 1.5.10.2205 to 1.5.10.2208 for Patches channel on dev-branch to match commit count since master (561bd3141)
- Hide the Secure Boot enrolment menu item on legacy BIOS boots (c01a4d932)
- Define FOG_BASE_DIR on 1.5.x, fixing HTTP 500 on kernel/init update (9c787673e)
- Version Sync: Increment version from 1.5.10.2208 to 1.5.10.2213 for Patches channel on dev-branch to match commit count since master (263fd48f4)
- Gate the API on uType and stop building the lftp command in a shell (3098e4423)
- Version Sync: Increment version from 1.5.10.2213 to 1.5.10.2218 for Patches channel on dev-branch to match commit count since master (4b8a241fd)
- Stop publishing autoexec.ipxe to the TFTP root, and remove it on upgrade (6746e88eb)
- Pin iPXE to v2.0.0-fog.5 (413407991)
- Give each kernel/initrd download its own temp file, and verify what arrives (bfb7df289)
- Invoke the URL-request callback instead of calling a method that isn't there (3bd8cc0bf)
- Run the php-fpm pool as $apacheuser, and re-own its session directory (96299ca4b)
- Render the kernel/initrd update lists as a sortable table (dc77d6cb5)
- Put the kernel/initrd table back inside its card (00bf29bb2)
- Read the kernel/initrd version from the release body's own label (1a3237755)
- Match 1.6's columns on the kernel/initrd table (127c3bd6b)
- Group the kernel/initrd tables by date (9d60d5037)
- Stop the group header's arrow from collapsing the date onto three lines (c7f90fe39)
- Stop the Type cell reading "experimental experimental", and escape it (6eb3309b9)
- Pin iPXE to v2.0.0-fog.6 (ebb4acb88)
- Port the pre-commit tooling-visibility changes from working-1.6 (3caf96467)
- Generated Files Sync: regenerate translations and PSR2 formatting on dev-branch (e4c87b257)
- Emit translation files unwrapped, so gettext versions stop rewriting each other (83fcbcdcd)
- Hang the Web and Secure Boot CAs off the existing FOG Server CA (bc94055b6)
- Harden the Web CA key even when the leaf is ACME-managed (52de951bc)
- Added more fields to be filled for CA and leaf CSRs and added better SAN automations (961a9f687)
- add update-language.sh function for githook so git workflows can utilize the logic. (f5223eff9)
- Merge branch 'dev-branch' of https://github.com/FOGProject/fogproject into dev-branch (8b934f86f)
- fix pki paths (e9f59790d)
- Make the pre-merge-commit hook actually run the pre-commit hook (cdc03cba3)
- Further fixed pki folder structure, added flexible standard renewal timelines. (c1a148bdb)
- Merge branch 'dev-branch' into devbranch-pki-additive (854b14a87)
- Add better guards on not accidentally overwriting web cert (a19a91ab5)
- Add net fetch of mok.der and clarify which private keys should be taken off the server if possible. (aa74b82d4)
- Added sha1 thumbprint to web ui display of secure boot key as that's what is shown in the mok enrollment, kept the sha256 there too. (f6b0abe39)
- Fix silent Secure Boot/Web CA regeneration when only the CA key is offline (90fa740e1)
- Fix PKI installer progress line left without a terminator (873b15dc0)
- Version Sync: Increment version from 1.5.10.2238 to 1.5.10.2252 for Patches channel on dev-branch to match commit count since master (8cfad0494)
- Anchor the FOG CA in the FOG server's own system trust store (bffdf00a0)
- Port --web-ca-cert/-key/-root to the 1.5 line (d4874616c)
Closed Issues Since Last Release
- [Update Workflow] Phase 1: fog_git_path setting + bin/updatefog.sh (#1005)
- Validate FOG under SELinux enforcing (NFS/FTP image storage), then stop defaulting to permissive (#964)
- Installer never SELinux-labels /tftpboot, so PXE boot fails on any enforcing host — and the only SELinux handling offered is to disable it (#963)
- Secure Boot: tracking the signing automation, the grub alternative, and a FOG vendor shim (#962)
- Verify the Secure Boot chain on real hardware (shim to signed iPXE to signed FOS kernel) (#960)
- Split iPXE into its own repository and consume it the way we already consume FOS (#959)
- iPXE BIOS builds link no console driver, so a rebuilt undionly.kpxe shows nothing on real hardware (#958)
- Update to iPXE 2.0, stop overlaying its build system, and decide on Secure Boot (#957)
- listem()/complex() silently drop the requested ORDER BY, so API pagination returns arbitrary rows (#956)
- iPXE HTTPS rebuild fails on binutils >= 2.41: assembler --fatal-warnings kills the build (#955)
- Installer treats $ipaddress as a single address; a second IP on the FOG interface breaks the install (#954)
- installer: Debian/Ubuntu docroot is chosen from a test that the install itself invalidates, producing two web trees (#953)
- refactor(installer): variablize fogprogramdir through installer and derive PHP constants from it (#850)
- Compilation ipxe certificate error (#761)
- BUG: Generating SSL fails in Ubuntu 24.04 container with error message (#729)
- The Scheduled Tasks feature is not functioning in version 1.6.0-beta.2167 (#707)
- Storage Server - Failed Install with no error log (#685)
- DHCP config fails during install (#667)
- Installation script fails at "Creating SSL Certificate" if network interface has multiple addresses (#650)
- fogsettings file not created in /opt/fog which is needed to know what the sql database information is in latest version 1.5.10 (#632)
- Help with updating website (#583)
- In order to facilitate offline installations, provide a way to list all packages that will be installed based on the current platform (#576)
- isc-dhcp-server config not created / How to propperly upgrade from version 1.5.9 to 1.5.10 (#568)
- PrinterManagement: create printer with FQDN (#560)
- Make custom webroot work or remove from the installer (#529)
- Change log file creation of FOG services (#497)
- Script (web services) not launching with PHP8 in Archlinux( /Manjaro Linux) Install (#447)
- Install FOGBackup to fog path (#314)
Security Advisories
- Unconstrained Root CA Injection via FOG Client enables Enterprise-Wide MITM and Code-Signing Spoofing (GHSA-94p8-jg9j-99v4)
- 086 Unauthenticated iPXE boot endpoint leaks host AES session key, authentication secret, and inventory metadata (GHSA-9f5j-q4h6-q43c)
- 065 Root command injection in FOGMulticastManager via unsanitized values in proc_open() shell string (GHSA-2w3h-w42x-ff5g)
- 064 GET-reachable object deletion via CSRF bypass in FOGPage::delete() (GHSA-33jc-q3wj-3h48)
- 050 Unauthenticated AES key clearing in authorize() enables fleet-wide disruption of encrypted client communication (GHSA-5hgc-mxjr-77pc)
- 035 Snapin upload filename
.triggers destructive deletion of snapin storage contents on storage node (GHSA-jrqm-2f74-45vc) - 010 Plaintext Active Directory credentials exposed in unauthenticated iPXE boot script and logs (GHSA-f6r5-w2jw-6gg2)
- 009 Snapin download endpoint IDOR allows any enrolled host to download all snapin binaries and corrupt task state (GHSA-h8r4-h54x-hg5g)
- 070 Unauthenticated
ipxe/schemamanagement dispatch allows pre-auth state-changing actions (GHSA-qc8c-wh88-524g) - 067 Stored XSS in Hosts and Users report via unescaped usertracking.username (GHSA-4v2m-3542-qcc9)
- 018 Path traversal in API-created file delete queue entries can delete files outside storage roots (GHSA-6qch-cjx9-4q5m)