Changelog¶
15.10 Feb 28 2026¶
feat(conf): preserve custom user comments in config files across CSF updatesfeat(cyberpanel): footer theme toggle now syncs CyberPanel and CSF WebUI themesfeat(webui): add new RBLCheck interface withinfoandwarningmessage types during testsfeat(cpanel): implement new header layoutbuild(deps): remove external Perl dependencyURI::Escaperefactor(core): consolidate codename detection into a single Perl subroutinerefactor(webui): use lookup table for RBLCheck processingfix(cpanel): correct alternating table row colors in dark themefix(webui): hide Cloudflare Integration button whenCF_ENABLE = "0"fix(webui): hide Statistics buttons whenGD::Graphdependency is missingfix(webui): fix Sponsor container class causing excessive paddingfix(webui): fix main navigation text alignment in Chromium / Edge browsersfix(webui): remove unsafeinnerHTMLusage to prevent potential XSSfix(webui): strip ANSI SGR sequences from exec command outputfix(webui): enforce monospace font in config editor inputsfix(cpanel): add Ace Editor support for light and dark themesfix(core): properly escape and encode form input valuesfix(messenger): prevent reCAPTCHA response truncation by increasing HTTP limit to4096feat(communication): created Mattermost server https://mm.configserver.dev- Add Bridge between Discord and Mattermost servers
- Discord server will remain online.
- Mattermost server is for users wishing to not give their personal info to discord.
15.09 Feb 23 2026¶
feat(webui): added dark themefeat(webui): urls in/etc/csf/csf.confare now clickable in the Firewall Configuration web interface.feat(webui): page Firewall Configuration now supportsSECTION:tags as independent element.feat(csf): correctly detect interactive--versioninput in the CLI.feat(sponsor): sponsor icon updates:- new setting
SPONSOR_ICON_HIDEin/etc/csf/csf.conf; hides sponsor icon in web footer. - new setting
SPONSOR_ICON_ANIMin/etc/csf/csf.conf; enable/disable beating heart icon. - sponsor icon automatically hidden if user provides licensekey.
- removed the beating animation for the sponsor icon.
- new setting
feat(csf): added AbuseIPDB service template to the blocklist file/etc/csf/csf.blocklists.feat(sponsor): added timeout functionality to ensure csf does not wait on sponsor confirmation.feat(webmin): added settingUI_WEBMIN_SHOW_BUTTON_CONFIGto restore Firewall Configuration button in Webmin.chore(directadmin): updatedplugin.conffor CSF:- added
update_urlandversion_urlso DirectAdmin can fetch the latest version.
- added
chore(cwp): re-brandCentOS Web PaneltoControl Web Panelto reflect correct app name.docs(install): added DirectAdmin instructions to the Install chapter in the documentation.docs(integration): added AbuseIPDB integration to the documentation.refactor(sponsor): re-wrote and migrated sponsorship functionality.refactor(blocklists): CSF blocklist service files migrated to new Github repository:refactor(repo): CSF repo size compressed after migrating blocklist service to seperate github repository.refactor(docker): re-wrote POSIX compliant docker integration script inextras/docker.sh- added caching for docker container list generation.
- added optional
--flagssuch as--help,--dryrun, etc.
refactor(openvpn): re-wrote POSIX compliant openvpn integration script inextras/openvpn.sh.refactor(install): added optional--flagssuch as--help,--dryrun, etc.refactor(integration): added AbuseIPDB template to/etc/csf/csf.blocklistsfor improved integration.security(csf): re-wrote backend after initial transition from CSF old developer to newfix(directadmin): corrected an install script error:- fixed an improperly closed
ifcondition in theinstall.directadminscript.
- fixed an improperly closed
fix(cwp): segregate formatted--versionoutput with no ANSI colors.fix(cwp): properly sanitize version information sent between CSF and Control Web Panel.- XSS injection exists in Control Web Panel which could potentially allow for commands to be ran.
- Ensure CSF itself cannot be part of the potential risk.
fix(webmin): support for almalinux, redhat, rocky10 based distros.- Debian, Ubuntu, ZorinOS:
/usr/share/webmin - Redhat, AlmaLinux, Rocky 10:
/usr/libexec/webmin
- Debian, Ubuntu, ZorinOS:
fix(webmin): descriptions for settings in interface now render correctly on the page with proper structure.fix(webmin): correct numerous interface issues related to the authentic theme.fix(regex): update ssh regex patterns to match changes in openssh >= 9.8 @Wolfgangasdffix(webui): bare-metal wallpaper positioning.fix(webui): footer positioning issue.
15.08 Dec 12 2025¶
feat(cron): Perl croncsgetre-written- Now compatible with all distros
- Utilizes tertiary redundancy system for fetching updates:
/usr/bin/wget/usr/bin/curl/usr/bin/GET
- New flags added:
-r, --response-n, --nosleep-k, --kill-l, --list-d, --diag-D, --debug-v, --version-h, --help
feat(cli): new port management console commands via PR https://github.com/Aetherinox/csf-firewall/issues/57--addport,-ap: Add a new port to your whitelist--removeport,-rp: Remove an existing whitelisted port--listports,-lp: List all ports that are whitelisted within your/etc/csf/csf.conf
feat(install): install scriptsinstall.*.shnow detailed and proper output to userfeat(cwp): add logic to mitigate immutable flag +i on cwp installs; restore flag after install completefeat(webmin): automatically installwebminmodule/usr/local/csf/csfwebmin.tgz- No longer requires webmin module to be manually imported
pref(blocklist): optimize blocklist generation scriptsrefactor(cwp): centos web panel nav menu label for CSF changed- Renamed from
ConfigServer ScriptstoConfigServer Firewall
- Renamed from
refactor(license): update json response structure for license / insiders servicerefactor(scripts): bash scriptprotect.shnow POSIX compliantrefactor(install): make all bashinstall.*.shinstallation scripts POSIX compliantfeat(core): add warning message ifLF_MODSEC_PERMthreshold below3600seconds (1 hour)chore(core): add comment tocsf.conffiles to specifyinput value type forLF_MODSEC_PERMchore(core): update config description forLF_MODSECchore(webmin): add propertylongdesctomodule.infoin CSF webmin modulechore(general): clean up files no longer used by applicationchore(general): revisecsf.blocklistswith updated urls to the various blocklist servicesfix(cwp): centos control panel menu linkcsfofficialreturned blank pagefix(core): prevent output if latest version and no terminal present, stops unnecessary update notifications; adds#no criticfix(blocklist): remove duplicate entries from highrisk static blocklistfix(scripts): add shellcheck directive to extras/scripts/protect.shfix(cron): croncsgetincorrectly assigned wrong user:group to file; triggered SELinux security error- update
install.*.shscripts to assignroot:root
- update
docs(mkdocs): add new chapter Advanced
15.07 Oct 24 2025¶
feat(webui): new "Resources" tab interface.feat(webui): new release type "Insiders".docs: add Privacy Policy to CSF.chore: add Discord serverchore: Remove spamhaus edrop list, merged with drop.refactor: Cyberpanel installation script to ensure POSIX compliant.refactor: Update functionality to support both numerical and tagged releases.perf: optimized logic to make restarts faster when using resource intense pre/post scriptsfix: Cyberpanel integration error:"address form post error Data supplied is not accepted"
fix(webui): Dark-reader causing login page to not render properly.fix(blocklists): Whitespace in ipset blocklist definitions causing entire blocklist to not load.
15.06 Oct 16 2025¶
fix(webmin): restore compatibility with Webmin v2.111 / Authentic v21.10fix(webui): prevent misdetection as Generic, missing header icon, and generic footer
15.05 Oct 16 2025¶
fix: Correct HTML escaping in the Firewall Configuration page to ensure settings are processed safely and correctly.refactor: Refactoredcsf.shinit.d script; POSIX compliant.
15.04 Oct 15 2025¶
feat: Added new settingUI_LOGS_REFRESH_TIME- How frequently CSF automatically refreshes the displayed logs
feat: Added new settingUI_LOGS_START_PAUSED- Define if automatic log refreshing on page load starts off running 0 or paused 1
fix: Corrected an issue in the Webmin control panel where the log textbox height was set incorrectly on page loaddocs: Update Webmin installation
15.03 Oct 15 2025¶
feat: Reduced the minimum font size allowed for FontMinus / FontPlus from 12px to10pxrefactor: Rewrote the JavaScript librarycsfajaxtail.jsfor improved optimization and maintainabilityfix: Restored missing Module Config and Help buttons in the Webmin headerdocs: Release blogs now support comments integrated from Github
15.02 Oct 14 2025¶
feat: New login page for Generic installations- Light & Dark theme
- New csf.conf setting:
UI_RETRY_SHOW_REMAINING
feat: New footer design for improved consistency and navigation- Added logout button to footer for Generic installations
feat: Integratedcsfpre.shandcsfpost.shdirectly into CSF for native pre/post script supportfeat: Configuration files now include headers visible in the GUI for easier file identification; called withHEADER:feat: New codename detection helper func for conditional statements depending on the installer used by end-userfeat: Added an official help page to the download servicefeat: Implemented Light/Dark mode toggle in the footer for better theme controlfeat: Added optionalContent Security Policy (CSP)protection to web interface- New csf.conf settings:
UI_CSP_ENABLEDUI_CSP_ADVANCED_ENABLEDUI_CSP_ADVANCED_RULE
- New csf.conf settings:
style: Rewrote configuration file comments for clarity; now more descriptive, organized, and include practical examplesrefactor: re-writeports-blacklistto be POSIX compliantrefactor: Download service now fetches version from Github repo; no longer requires manual bumpsrefactor: Overhauled the baseinstall.shscript- Ensured full POSIX compliance
- Added support for both absolute and relative execution paths
- Introduced new flags:
--dryrun,--detect,--help,--version
chore: Update CSF SSL certificate and keyperf: Implement CSS optimization to pre-load required stylesheetsdocs: Completed several pages, including:- Installation instructions for: vestacp, cyberpanel, cpanel, interworx, centos web panel (cwp)
- Revised package / depenency commands to fix inconsistencies
fix: Resolved missing VestaCP header on the/list/csfadmin pagefix: Restored CyberPanel integration functionalityfix: Resolved regex pattern issues when dealing with strict conditions
15.01 Oct 06 2025¶
feat: Register new domain https://configserver.devfeat: New blocklist service at https://blocklist.configserver.devchore: Bring new update server online at https://download.configserver.devrefactor: Changed csf update server code to point to new csf domainfix: Invalid sessions still being able to access backend web interface assets
15.00 Aug 28 2025¶
chore: Download and update servers taken offlinechore: Disabled automatic updates within csfchore: Added country code validation and warning outputrefactor: Updated regex to extract client ip from logsdocs: Changed license to GPLv3
14.24 Aug 02 2025¶
fix: regression bug in v14.23 "Modified UI HTTP header checks to be case agnostic"
14.23 July 21 2025¶
change: Modify Apache regex to detect "remote" or "client" as the IP triggerchange: Mdified UI HTTP header checks to be case agnostic
14.22 Sep 20 2024¶
build: Updates ConfigServer Firewall to v14.22remove: session IP match check from DA loginadded: example spamassassin temp file regex to csf.fignore for new installations
14.21 Aug 30 2024¶
change: add header animations, app name returns user homechange: clicking app logo or name now returns user to home pagechange: add faviconchange: silence curl in openvpn patchchange: removal ofNETWORK_MANUAL_MODE,NETWORK_ADAPT_NAMEchange: new animated checkbox input for firewall profileschange: clicking logo in header now re-directs user to homechange: enhanced login screen animationschange: enhanced mobile viewbuild: update main source release to CSF v14.21build: dark theme now compatible with CSF v14.21fix: docker inspect error when container has more than one network #1fix: extended sized buttons with text cutting offdocs: removal of manual mode values no longer needed
14.20 Aug 28 2024¶
feat: add new patchopenvpnfeat: add new command-line arguments:- add
-d, --devfor advanced logging - add
-f, --flushto completely remove iptable rules - add
-r, --reportto display dependency stats, app information, etc. - add
-v, --versionto display patcher version
- add
feat: added new login page to dark themefeat: add dark themefeat: add traefik integrationfeat: add authentik integrationchange: docker patch now allows for multiple ip blocks to be whitelistedchange: optimizations to load orderchange: updated toggle switches for various setting pageschange: start migration of in-line style properties over to stylesheetchange: new ruleset for openvpn integrationchange: auto disable csf TESTING mode when patch ranchange: add-r, --reportto display status of dependencies and setuprefactor: re-write of scriptrefactor: merge all scripts into onefix: interface bug which existed in light theme which caused certain divs to breakfix: openvpn ip detectionfix: issue with manual mode being disabled - #1fix: error"docker network inspect" requires at least 1 argument.- #1fix: errorinvalid port/service '-j' errorci: dark theme now included with all releases as .zipci: auto-update /docs/ on push to repoci: add workflow to automatically grab latest version of ConfigServer Firewall and append to each releasedocs: update to include traefik and authentic integrationdocs: rewrite documentation to include better instructions
14.19 May 06 2024¶
change: switch to using iptables-nft if it exists in/usr/sbin/iptables-nftadded:IO::Handle::clearerr()call before reading data from a log fileadded: "Require all granted" to the MESSENGER .htaccess fileaddedUID/GID rules to IPv6 if enabledmodified: dovecot regex to look for "failed: Connection reset by peer"