This release includes 6 security fixes for security teams reviewing exposed deployments.
Topics
+11 more
Affected surfaces
Summary
AI summaryBroad release touches All-in-one, BunkerWeb, Scheduler, and Autoconf.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Medium |
Neutralize CSV/XLSX formula injection in bans and reports exports (CWE-1236). Neutralize CSV/XLSX formula injection in bans and reports exports (CWE-1236). Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Security | Medium |
Add data-loss guards in Database.save_config and Database.update_external_plugins. Add data-loss guards in Database.save_config and Database.update_external_plugins. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Security | Medium |
Harden tar/zip extraction with centralized safe_tar_extractall / safe_zip_extractall helpers, pre-extraction validation, and Path.is_relative_to() containment checks. Mitigates CVE-2025-4517 on Python < 3.13.4. Harden tar/zip extraction with centralized safe_tar_extractall / safe_zip_extractall helpers, pre-extraction validation, and Path.is_relative_to() containment checks. Mitigates CVE-2025-4517 on Python < 3.13.4. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Security | Medium |
Harden AIO service log forwarding against terminal injection in docker logs. Harden AIO service log forwarding against terminal injection in docker logs. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Security | Medium |
Harden AIO logstream.sh forwarding for nginx, access, error, and ModSecurity audit logs with the same control-character stripping. Harden AIO logstream.sh forwarding for nginx, access, error, and ModSecurity audit logs with the same control-character stripping. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Security | Medium |
Replace Trivy with Docker Scout for container image vulnerability scanning in the CI/CD pipeline. Replace Trivy with Docker Scout for container image vulnerability scanning in the CI/CD pipeline. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Security | Medium |
Replace unbounded DataTables All page length with capped values and clamp server-side length / start parameters to prevent oversized requests from causing OOM. Replace unbounded DataTables All page length with capped values and clamp server-side length / start parameters to prevent oversized requests from causing OOM. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Security | Medium |
Update NGINX to 1.30.1 to fix various CVEs. Update NGINX to 1.30.1 to fix various CVEs. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: low |
— |
| Security | Medium |
Fix PATCH /global_config accidentally deleting all services, custom configs, and jobs cache. Fix PATCH /global_config accidentally deleting all services, custom configs, and jobs cache. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: low |
— |
| Security | Medium |
Update coreruleset-v3 to v3.3.9 to fix CVE-2026-33691. Update coreruleset-v3 to v3.3.9 to fix CVE-2026-33691. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: low |
— |
| Security | Medium |
Update coreruleset-v4 to v4.26.0, including the CVE-2026-33691 fix. Update coreruleset-v4 to v4.26.0, including the CVE-2026-33691 fix. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: low |
— |
| Bugfix | Medium |
Fix multiple memory leaks and unsafe defaults in metrics, datastore, and modsec. Fix multiple memory leaks and unsafe defaults in metrics, datastore, and modsec. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Pin USE_UI=yes service upstreams to HTTP/1.1 so global REVERSE_PROXY_HTTP_VERSION=2 no longer locks out the Web UI. Pin USE_UI=yes service upstreams to HTTP/1.1 so global REVERSE_PROXY_HTTP_VERSION=2 no longer locks out the Web UI. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Stop USE_MODSECURITY_GLOBAL_CRS=yes from returning 403 on UI POSTs and antibot challenges. Stop USE_MODSECURITY_GLOBAL_CRS=yes from returning 403 on UI POSTs and antibot challenges. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Fix ModSecurity REQUEST_HEADERS:Host and SERVER_NAME being empty for HTTP/3 requests. Fix ModSecurity REQUEST_HEADERS:Host and SERVER_NAME being empty for HTTP/3 requests. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Add MODSECURITY_SEC_REQUEST_BODY_LIMIT and MODSECURITY_SEC_REQUEST_BODY_LIMIT_ACTION to decouple ModSecurity body inspection from MAX_CLIENT_SIZE. Add MODSECURITY_SEC_REQUEST_BODY_LIMIT and MODSECURITY_SEC_REQUEST_BODY_LIMIT_ACTION to decouple ModSecurity body inspection from MAX_CLIENT_SIZE. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Add explicit ModSecurity request-body parsing error rules so truncated or malformed bodies are logged and rejected with the correct status. Add explicit ModSecurity request-body parsing error rules so truncated or malformed bodies are logged and rejected with the correct status. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Add REVERSE_PROXY_MODSECURITY setting to disable ModSecurity per reverse-proxy URL when needed, especially for large uploads. Add REVERSE_PROXY_MODSECURITY setting to disable ModSecurity per reverse-proxy URL when needed, especially for large uploads. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Add WORKER_SHUTDOWN_TIMEOUT, default 30s, to terminate old NGINX workers after reloads and avoid unbounded memory growth. Add WORKER_SHUTDOWN_TIMEOUT, default 30s, to terminate old NGINX workers after reloads and avoid unbounded memory growth. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Add __del__ safety net on the SQLAlchemy Database wrapper so per-job engines dispose cleanly during garbage collection. Add __del__ safety net on the SQLAlchemy Database wrapper so per-job engines dispose cleanly during garbage collection. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Back-fill bw_settings defaults from settings.json at read time when catalogue rows are missing, NULL, or empty. Back-fill bw_settings defaults from settings.json at read time when catalogue rows are missing, NULL, or empty. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Fix DATABASE_URI driver injection corrupting hostnames when the host matches the scheme name. Fix DATABASE_URI driver injection corrupting hostnames when the host matches the scheme name. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Fix PostgreSQL table bloat in bw_plugin_pages and bw_jobs_cache. Fix PostgreSQL table bloat in bw_plugin_pages and bw_jobs_cache. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Fix scheduler memory leak from unbounded job module cache, broken sys.modules cleanup, bulk cache loading, and infrequent garbage collection. Fix scheduler memory leak from unbounded job module cache, broken sys.modules cleanup, bulk cache loading, and infrequent garbage collection. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Disable Gunicorn 25.1.0 control socket to prevent worker deadlocks in UI, TMP-UI, and API. Disable Gunicorn 25.1.0 control socket to prevent worker deadlocks in UI, TMP-UI, and API. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Clean orphaned NGINX temp files on startup after OOM kills or ungraceful shutdowns. Clean orphaned NGINX temp files on startup after OOM kills or ungraceful shutdowns. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Fix entrypoint spinning at 100% CPU when nginx/supervisord is OOM-killed. Fix entrypoint spinning at 100% CPU when nginx/supervisord is OOM-killed. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Throttle repeated Redis-failure logs in metrics, sessions, and badbehavior. Throttle repeated Redis-failure logs in metrics, sessions, and badbehavior. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Fix metrics Redis sync cascading failures after mid-cycle connection drops by adding auto-reconnect with circuit breaker. Fix metrics Redis sync cascading failures after mid-cycle connection drops by adding auto-reconnect with circuit breaker. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
| Bugfix | Medium |
Fix dead Redis connections being returned to the keepalive pool. Fix dead Redis connections being returned to the keepalive pool. Source: granite4.1:8b-q6_K@2026-05-20 Confidence: high |
— |
Full changelog
Documentation : https://docs.bunkerweb.io/1.6.10/
Docker tags :
- All-in-one :
bunkerity/bunkerweb-all-in-one:1.6.10orghcr.io/bunkerity/bunkerweb-all-in-one:1.6.10 - BunkerWeb :
bunkerity/bunkerweb:1.6.10orghcr.io/bunkerity/bunkerweb:1.6.10 - Scheduler :
bunkerity/bunkerweb-scheduler:1.6.10orghcr.io/bunkerity/bunkerweb-scheduler:1.6.10 - Autoconf :
bunkerity/bunkerweb-autoconf:1.6.10orghcr.io/bunkerity/bunkerweb-autoconf:1.6.10 - UI :
bunkerity/bunkerweb-ui:1.6.10orghcr.io/bunkerity/bunkerweb-ui:1.6.10 - API :
bunkerity/bunkerweb-api:1.6.10orghcr.io/bunkerity/bunkerweb-api:1.6.10
Linux packages : https://packagecloud.io/app/bunkerity/bunkerweb/search?q=1.6.10&filter=all&dist=
Changelog :
[SECURITY]
- [SECURITY]
nginx: update NGINX to 1.30.1 to fix various CVEs. - [SECURITY]
ui: neutralize CSV/XLSX formula injection in bans and reports exports (CWE-1236).- Server-side CSV now uses
defusedcsv. - XLSX exports escape cells through the shared
csv_safe()helper. - DataTables
csv,excel, andcopybuttons inherit the same protection throughbwCsvSafe. - Cells starting with
=,+,-,@,|, or%are prefixed with'. - Embedded
|characters are backslash-escaped.
- Server-side CSV now uses
- [API/SECURITY] Fix
PATCH /global_configaccidentally deleting all services, custom configs, and jobs cache. - [API/SECURITY] Add data-loss guards in
Database.save_configandDatabase.update_external_plugins.- Refuse updates that would delete every global setting for a method.
- Refuse plugin cascade-deletion when the incoming plugin list is empty.
- Skip setting/selects/multiselects pruning on same-content plugin reinstalls detected by checksum.
- [SECURITY] Update coreruleset-v3 to v3.3.9 to fix CVE-2026-33691. (Fixes #3402)
- [SECURITY] Update coreruleset-v4 to v4.26.0, including the CVE-2026-33691 fix. (Fixes #3402)
- [SECURITY] Harden tar/zip extraction with centralized
safe_tar_extractall/safe_zip_extractallhelpers, pre-extraction validation, andPath.is_relative_to()containment checks. Mitigates CVE-2025-4517 on Python < 3.13.4. - [SECURITY] Harden AIO service log forwarding against terminal injection in
docker logs.- Strip C0/C1 control characters.
- Disable pathname expansion around
HIDE_SERVICE_LOGS. - Reject
..path-traversal segments inLOG_FILE_PATH.
- [SECURITY] Harden AIO
logstream.shforwarding for nginx, access, error, and ModSecurity audit logs with the same control-character stripping. - [SECURITY] Replace Trivy with Docker Scout for container image vulnerability scanning in the CI/CD pipeline.
- [UI/SECURITY] Replace unbounded DataTables
Allpage length with capped values and clamp server-sidelength/startparameters to prevent oversized requests from causing OOM.
[BUGFIX]
- [BUGFIX]
metrics/datastore/modsec: fix multiple memory leaks and unsafe defaults.- Bound per-worker LRU and per-key event-history arrays with
MAX_LRU_HISTORY, default1k. - Lower
METRICS_MAX_BLOCKED_REQUESTS_REDISdefault from100000to10k. - Lower shared datastore worker-LRU default from
100000to1k. - Add
DATASTORE_LRU_SIZE. - Fix memory leak in ModSecurity-to-Lua variable retrieval.
- Bound per-worker LRU and per-key event-history arrays with
- [BUGFIX]
reverseproxy: pinUSE_UI=yesservice upstreams to HTTP/1.1 so globalREVERSE_PROXY_HTTP_VERSION=2no longer locks out the Web UI. (Fixes #3550) - [BUGFIX]
misc: fix per-service HTTPS handshakes aborting withno ssl_client_hello_by_lua* defined in server <name>whenDISABLE_DEFAULT_SERVER_STRICT_SNI=yes. - [BUGFIX]
modsecurity/ui/antibot: stopUSE_MODSECURITY_GLOBAL_CRS=yesfrom returning403on UI POSTs and antibot challenges. (Fixes #3118) - [BUGFIX] Fix ModSecurity
REQUEST_HEADERS:HostandSERVER_NAMEbeing empty for HTTP/3 requests. (Fixes #3298) - [BUGFIX] Add
MODSECURITY_SEC_REQUEST_BODY_LIMITandMODSECURITY_SEC_REQUEST_BODY_LIMIT_ACTIONto decouple ModSecurity body inspection fromMAX_CLIENT_SIZE. (Fixes #3154) - [BUGFIX] Add explicit ModSecurity request-body parsing error rules so truncated or malformed bodies are logged and rejected with the correct status.
- [BUGFIX] Add
REVERSE_PROXY_MODSECURITYsetting to disable ModSecurity per reverse-proxy URL when needed, especially for large uploads. (Fixes #3154) - [BUGFIX] Add
WORKER_SHUTDOWN_TIMEOUT, default30s, to terminate old NGINX workers after reloads and avoid unbounded memory growth. (Fixes #3153) - [BUGFIX]
database: add a__del__safety net on the SQLAlchemyDatabasewrapper so per-job engines dispose cleanly during garbage collection. - [BUGFIX]
database: back-fillbw_settingsdefaults fromsettings.jsonat read time when catalogue rows are missing, NULL, or empty. (Fixes #3450) - [BUGFIX] Fix
DATABASE_URIdriver injection corrupting hostnames when the host matches the scheme name. (Fixes #3438) - [BUGFIX] Fix PostgreSQL table bloat in
bw_plugin_pagesandbw_jobs_cache. - [BUGFIX] Fix scheduler memory leak from unbounded job module cache, broken
sys.modulescleanup, bulk cache loading, and infrequent garbage collection. - [BUGFIX] Disable Gunicorn 25.1.0 control socket to prevent worker deadlocks in UI, TMP-UI, and API.
- [BUGFIX] Clean orphaned NGINX temp files on startup after OOM kills or ungraceful shutdowns.
- [BUGFIX] Fix entrypoint spinning at 100% CPU when nginx/supervisord is OOM-killed.
- [BUGFIX] Throttle repeated Redis-failure logs in
metrics,sessions, andbadbehavior. - [BUGFIX] Fix metrics Redis sync cascading failures after mid-cycle connection drops by adding auto-reconnect with circuit breaker.
- [BUGFIX] Fix dead Redis connections being returned to the keepalive pool.
- [BUGFIX] Fix
cachestore:set()silently dropping cache writes in non-cosocket phases. - [BUGFIX] Fix
cachestore:del_redis()calling a non-existentclusterstore:del()method. - [BUGFIX] Move
cachestore:update()IPC polling to valid Lua phases to remove repeated retry warnings. - [BUGFIX] Fix
badbehavior:log()crash caused byresty.lockcallingngx.sleep()inlog_by_lua*. - [BUGFIX] Fix whitelist default-server crash caused by
resty.lockcallingngx.sleep()inset_by_lua*. (Fixes #2583) - [BUGFIX] Fix
is_cosocket_available()SSL phase detection and add missing yieldable phases. - [BUGFIX]
badbehavior: do not increment counters for already-banned IPs. (Fixes #3448) - [BUGFIX] Fix
ngx.exit(nil)crash whenDENY_HTTP_STATUSis missing. (Fixes #2516) - [BUGFIX] Fix unbanning IPs for stream services by refreshing local ban cache from Redis after unban. (Fixes #2516)
- [BUGFIX] Fix BunkerNet
log_stream()crash in stream context wherengx.req.get_headers()is unavailable. - [BUGFIX] Fix
robots.txtandsecurity.txtplugins running expensive initialization on every request. (Fixes #3155) - [BUGFIX] Fix
securitytxtRFC 9116 compliance.- Fix default
Canonical:URL. - Emit
Expires:as UTC with trailingZ. - Rename field to
Acknowledgments:. - Cache auto-generated expiry per server.
- Fix default
- [BUGFIX] Fix Post-Quantum Cryptography auto-detection on OpenSSL 3.5+ when
SSL_ECDH_CURVE=auto. - [BUGFIX] Fix RC regression in
@bwerror*handling where real 4xx/5xx rendering could be broken. (Fixes #3490) - [MISC] Improve
JobSchedulerper-job failure tracking.
[FEATURE]
- [FEATURE]
misc: addMAX_HEADERS, default100, to cap request header lines. - [FEATURE]
reverseproxy: add per-backendREVERSE_PROXY_HTTP_VERSION.- Default:
1.1. - Accepted values:
1.0,1.1,2. - WebSocket upstreams remain pinned to HTTP/1.1.
- Default:
- [FEATURE]
templates: bundleduiandapitemplates now setREVERSE_PROXY_KEEPALIVE=yes. - [FEATURE]
ui: align Web UI sessions with the Luasessionsplugin model.SESSION_LIFETIME_HOURS, default12, controls sliding idle TTL.SESSION_ABSOLUTE_HOURS, default168, enforces a hard cap.SESSION_ROLLING_HOURS, default0, optionally regenerates session IDs periodically.
- [FEATURE] Add multisite
SESSIONS_DOMAINto share antibot/challenge state across sibling subdomains. (Fixes #3415) - [FEATURE]
metrics/misc: allowk/mshorthand for metrics and datastore size settings. - [MISC] Accept
g/Gsuffix on shared memory size settings and normalize to megabytes at template rendering time. - [MISC] Allow custom uppercase HTTP methods containing underscores and dashes in
ALLOWED_METHODS. (Fixes #3411) - [MISC] Update default
Permissions-Policywithlocal-network,local-network-access, andloopback-network. - [FEATURE] Let's Encrypt: add
LETS_ENCRYPT_MAX_LOG_BACKUPS, default50, to cap certbot log rotation. - [FEATURE]
installer: add modern inline TUI prompts throughgum.- Dispatch order:
gum→ pre-installedwhiptail→ plainread. - Controlled by
--tui,--no-tui, andBW_INSTALL_TUI.
- Dispatch order:
- [FEATURE]
installer: post-install "Next steps" now prints the detected host IPv4 instead ofyour-server-ip. (Fixes #3527)- Adds
--server-ip <IP>andSERVER_IP_INPUT. - Interactive installs show a menu when multiple global IPv4s are detected.
- Adds
[PERF]
- [PERF]
database: add 18 missing single-column indexes. (Fixes #3368, addresses #3367)
[UI]
- [UI] List pages: restore unrestricted
10/25/50/100page-size dropdown. - [UI] List pages: header checkbox now selects the current page only.
- [UI] List pages: add opt-in "Select all N matching" banner for bulk actions across pages. (Fixes #3513)
- [UI] Reports and Bans pages: CSV/Excel exports now include every column and honor active search and SearchPanes filters. (Fixes #3489)
- [UI] Service edit page: restore non-UI-method settings and template defaults on advanced/raw save.
- [UI] Service edit page: keep raw-mode draft toggle and the
IS_DRAFT=line synchronized. - [UI] Add import/export for custom configurations, including optional
.zipbundles attached to service exports. - [UI] Fix "Blocked Requests by Country" map coloring.
- [UI] Fix service template switching so selected template defaults apply immediately while preserving customized fields. (Fixes #3241)
- [UI] Fix multiselect dropdown being clipped in template wizard steps. (Fixes #3401)
- [UI] Fix multiselect settings not displaying or applying values correctly in the template editor and service creation wizard.
- [UI] Fix multiselect and multivalue settings resetting to defaults when all options are unchecked.
- [UI] Fix Reports page search not matching Request ID.
- [UI] Fix Reports page IP hit counts decreasing when filtering by IP. (Fixes #3407)
- [UI] Prevent reload and worker-restart infinite loops when the database is read-only or configuration flag reset fails.
- [UI] Check the database for
USE_REDISbefore showing the filesystem session backend warning. - [UI] Launch
tmp-gunicornwithenv -u LOG_FILE_PATHso bootstrap UI logs do not collide with main UI logs.
[API]
- [API] Fix
update_config_uploadresetting a custom config's service scope to global when the caller did not request a service move.
[AUTOCONF]
- [AUTOCONF] Fix Docker/Podman instance discovery looping on
No instance found.- Health falls back to run-state when
State.Healthis missing. - Environment parsing is hardened.
- The wait loop now logs exceptions instead of swallowing them.
- Health falls back to run-state when
- [AUTOCONF] Fix Docker socket proxy restarts triggering deletion of all instances and services.
- [AUTOCONF] Fix Docker API errors being silently swallowed as empty container/service lists.
- [AUTOCONF] Fix Docker healthcheck exec events causing endless config regeneration and NGINX reloads.
- [AUTOCONF] Fix multiple Kubernetes Ingress/Route resources for the same hostname overwriting each other instead of merging paths.
- [AUTOCONF] Fix Kubernetes ingress rules being dropped when backend Services are not visible yet.
- Missing backends are retried with exponential backoff.
- Configuration apply is retriggered once backends appear.
- [AUTOCONF] Relax empty
SERVER_NAMEguard for autoconf-owned full teardowns. - [AUTOCONF] Add
AUTOCONF_DISABLE_CLEANUP, defaultno, to convert removed orchestrator services to draft instead of deleting them. - [BUGFIX]
Configuratornow supplements its internal server list from the databaseServicestable in multisite mode.
[ALL-IN-ONE]
- [ALL-IN-ONE] Update CrowdSec to 1.7.8.
- [ALL-IN-ONE] Embedded Redis now boots from generated
/var/lib/bunkerweb/redis-runtime.conf./etc/redis.confremains authoritative.- Environment variables only fill missing directives.
- Supported variables include
REDIS_MAXMEMORY,REDIS_MAXMEMORY_POLICY,REDIS_APPENDONLY,REDIS_SAVE,REDIS_SAVE_<N>, andREDIS_PASSWORD.
- [ALL-IN-ONE] Default Redis
maxmemory-policychanged fromallkeys-lrutovolatile-lru.- Applied to the AIO entrypoint, Linux installer, bundled compose examples, and Redis Best Practices docs.
- Helps preserve sessions and timed bans under memory pressure.
- [ALL-IN-ONE] Python services now log only to container stdout/stderr.
service-log-wrapper.shprefixes each line with[SERVICE].- Control characters are stripped.
HIDE_SERVICE_LOGSis honored.- No on-disk service log files are written.
[LINUX]
- [LINUX] Add Fedora 44 support.
[DOCS]
- [DOCS] Add
llms.txtandllms-full.txtgeneration through a MkDocs post-build hook.
[DEPS]
- [DEPS] NGINX updated to v1.30.1.
- [DEPS] ModSecurity updated to v3.0.15.
- [DEPS] Mbed TLS updated to v4.1.0.
- [DEPS] libinjection updated to v4.0.0.
- [DEPS] coreruleset-v3 updated to v3.3.9.
- [DEPS] coreruleset-v4 updated to v4.26.0.
- [DEPS] LuaJIT updated to v2.1-20260415.
- [DEPS] lua-resty-string updated to v0.17.
- [DEPS] lua-cjson updated to v2.1.0.17.
- [DEPS] Brotli updated to v1.2.0.
- [DEPS] headers-more-nginx-module updated to v0.39.
- [DEPS] CrowdSec updated to v1.7.8.
[CONTRIBUTION]
- [CONTRIBUTION] Thank you @harshadkhetpal for exception handling improvements in the
autoconfentrypoint. (#3421) - [CONTRIBUTION] Thank you @Simonmiz for the German Web UI translation. (#3422)
- [CONTRIBUTION] Thank you @daemon-byte for adding the Cap.js self-hosted proof-of-work antibot mode. (#3454)
Breaking Changes
- Default Redis `maxmemory-policy` changed from `allkeys-lru` to `volatile-lru` in All‑in‑One deployments.
Security Fixes
- CVE‑2026‑33691 – Update coreruleset‑v3 to v3.3.9 and coreruleset‑v4 to v4.26.0.
- CSV/XLSX formula injection (CWE‑1236) neutralized in bans/reports exports using `defusedcsv` and `bwCsvSafe` helper.
- [API/SECURITY] Prevented accidental deletion of all services, configs, and job cache via `PATCH /global_config`.
- CVE-2026-33691
- CVE-2026-33691
- CVE-2025-4517
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Beta — feedback welcome: [email protected]