Skip to content

bunkerweb

v1.6.10 Security

This release includes 6 security fixes for security teams reviewing exposed deployments.

Published 15d Network Security
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 6 known CVEs

Topics

antibot security devops dnsbl docker hardening
+11 more
hosting kubernetes letsencrypt modsecurity nginx proxy security-tuning swarm waap web-application-firewall web-security

Affected surfaces

auth rbac deps breaking_upgrade crypto_tls

Summary

AI summary

Broad release touches All-in-one, BunkerWeb, Scheduler, and Autoconf.

Changes in this release

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.10 or ghcr.io/bunkerity/bunkerweb-all-in-one:1.6.10
  • BunkerWeb : bunkerity/bunkerweb:1.6.10 or ghcr.io/bunkerity/bunkerweb:1.6.10
  • Scheduler : bunkerity/bunkerweb-scheduler:1.6.10 or ghcr.io/bunkerity/bunkerweb-scheduler:1.6.10
  • Autoconf : bunkerity/bunkerweb-autoconf:1.6.10 or ghcr.io/bunkerity/bunkerweb-autoconf:1.6.10
  • UI : bunkerity/bunkerweb-ui:1.6.10 or ghcr.io/bunkerity/bunkerweb-ui:1.6.10
  • API : bunkerity/bunkerweb-api:1.6.10 or ghcr.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, and copy buttons inherit the same protection through bwCsvSafe.
    • Cells starting with =, +, -, @, |, or % are prefixed with '.
    • Embedded | characters are backslash-escaped.
  • [API/SECURITY] Fix PATCH /global_config accidentally deleting all services, custom configs, and jobs cache.
  • [API/SECURITY] Add data-loss guards in Database.save_config and Database.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_extractall helpers, pre-extraction validation, and Path.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 in LOG_FILE_PATH.
  • [SECURITY] Harden AIO logstream.sh forwarding 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 All page length with capped values and clamp server-side length / start parameters 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, default 1k.
    • Lower METRICS_MAX_BLOCKED_REQUESTS_REDIS default from 100000 to 10k.
    • Lower shared datastore worker-LRU default from 100000 to 1k.
    • Add DATASTORE_LRU_SIZE.
    • Fix memory leak in ModSecurity-to-Lua variable retrieval.
  • [BUGFIX] reverseproxy: pin USE_UI=yes service upstreams to HTTP/1.1 so global REVERSE_PROXY_HTTP_VERSION=2 no longer locks out the Web UI. (Fixes #3550)
  • [BUGFIX] misc: fix per-service HTTPS handshakes aborting with no ssl_client_hello_by_lua* defined in server <name> when DISABLE_DEFAULT_SERVER_STRICT_SNI=yes.
  • [BUGFIX] modsecurity / ui / antibot: stop USE_MODSECURITY_GLOBAL_CRS=yes from returning 403 on UI POSTs and antibot challenges. (Fixes #3118)
  • [BUGFIX] Fix ModSecurity REQUEST_HEADERS:Host and SERVER_NAME being empty for HTTP/3 requests. (Fixes #3298)
  • [BUGFIX] Add MODSECURITY_SEC_REQUEST_BODY_LIMIT and MODSECURITY_SEC_REQUEST_BODY_LIMIT_ACTION to decouple ModSecurity body inspection from MAX_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_MODSECURITY setting to disable ModSecurity per reverse-proxy URL when needed, especially for large uploads. (Fixes #3154)
  • [BUGFIX] Add WORKER_SHUTDOWN_TIMEOUT, default 30s, to terminate old NGINX workers after reloads and avoid unbounded memory growth. (Fixes #3153)
  • [BUGFIX] database: add a __del__ safety net on the SQLAlchemy Database wrapper so per-job engines dispose cleanly during garbage collection.
  • [BUGFIX] database: back-fill bw_settings defaults from settings.json at read time when catalogue rows are missing, NULL, or empty. (Fixes #3450)
  • [BUGFIX] Fix DATABASE_URI driver injection corrupting hostnames when the host matches the scheme name. (Fixes #3438)
  • [BUGFIX] Fix PostgreSQL table bloat in bw_plugin_pages and bw_jobs_cache.
  • [BUGFIX] Fix scheduler memory leak from unbounded job module cache, broken sys.modules cleanup, 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, and badbehavior.
  • [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-existent clusterstore:del() method.
  • [BUGFIX] Move cachestore:update() IPC polling to valid Lua phases to remove repeated retry warnings.
  • [BUGFIX] Fix badbehavior:log() crash caused by resty.lock calling ngx.sleep() in log_by_lua*.
  • [BUGFIX] Fix whitelist default-server crash caused by resty.lock calling ngx.sleep() in set_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 when DENY_HTTP_STATUS is 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 where ngx.req.get_headers() is unavailable.
  • [BUGFIX] Fix robots.txt and security.txt plugins running expensive initialization on every request. (Fixes #3155)
  • [BUGFIX] Fix securitytxt RFC 9116 compliance.
    • Fix default Canonical: URL.
    • Emit Expires: as UTC with trailing Z.
    • Rename field to Acknowledgments:.
    • Cache auto-generated expiry per server.
  • [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 JobScheduler per-job failure tracking.

[FEATURE]

  • [FEATURE] misc: add MAX_HEADERS, default 100, to cap request header lines.
  • [FEATURE] reverseproxy: add per-backend REVERSE_PROXY_HTTP_VERSION.
    • Default: 1.1.
    • Accepted values: 1.0, 1.1, 2.
    • WebSocket upstreams remain pinned to HTTP/1.1.
  • [FEATURE] templates: bundled ui and api templates now set REVERSE_PROXY_KEEPALIVE=yes.
  • [FEATURE] ui: align Web UI sessions with the Lua sessions plugin model.
    • SESSION_LIFETIME_HOURS, default 12, controls sliding idle TTL.
    • SESSION_ABSOLUTE_HOURS, default 168, enforces a hard cap.
    • SESSION_ROLLING_HOURS, default 0, optionally regenerates session IDs periodically.
  • [FEATURE] Add multisite SESSIONS_DOMAIN to share antibot/challenge state across sibling subdomains. (Fixes #3415)
  • [FEATURE] metrics / misc: allow k / m shorthand for metrics and datastore size settings.
  • [MISC] Accept g / G suffix 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-Policy with local-network, local-network-access, and loopback-network.
  • [FEATURE] Let's Encrypt: add LETS_ENCRYPT_MAX_LOG_BACKUPS, default 50, to cap certbot log rotation.
  • [FEATURE] installer: add modern inline TUI prompts through gum.
    • Dispatch order: gum → pre-installed whiptail → plain read.
    • Controlled by --tui, --no-tui, and BW_INSTALL_TUI.
  • [FEATURE] installer: post-install "Next steps" now prints the detected host IPv4 instead of your-server-ip. (Fixes #3527)
    • Adds --server-ip <IP> and SERVER_IP_INPUT.
    • Interactive installs show a menu when multiple global IPv4s are detected.

[PERF]

  • [PERF] database: add 18 missing single-column indexes. (Fixes #3368, addresses #3367)

[UI]

  • [UI] List pages: restore unrestricted 10/25/50/100 page-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 .zip bundles 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_REDIS before showing the filesystem session backend warning.
  • [UI] Launch tmp-gunicorn with env -u LOG_FILE_PATH so bootstrap UI logs do not collide with main UI logs.

[API]

  • [API] Fix update_config_upload resetting 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.Health is missing.
    • Environment parsing is hardened.
    • The wait loop now logs exceptions instead of swallowing them.
  • [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_NAME guard for autoconf-owned full teardowns.
  • [AUTOCONF] Add AUTOCONF_DISABLE_CLEANUP, default no, to convert removed orchestrator services to draft instead of deleting them.
  • [BUGFIX] Configurator now supplements its internal server list from the database Services table 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.conf remains authoritative.
    • Environment variables only fill missing directives.
    • Supported variables include REDIS_MAXMEMORY, REDIS_MAXMEMORY_POLICY, REDIS_APPENDONLY, REDIS_SAVE, REDIS_SAVE_<N>, and REDIS_PASSWORD.
  • [ALL-IN-ONE] Default Redis maxmemory-policy changed from allkeys-lru to volatile-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.sh prefixes each line with [SERVICE].
    • Control characters are stripped.
    • HIDE_SERVICE_LOGS is honored.
    • No on-disk service log files are written.

[LINUX]

  • [LINUX] Add Fedora 44 support.

[DOCS]

  • [DOCS] Add llms.txt and llms-full.txt generation 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 autoconf entrypoint. (#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

Track bunkerweb

Get notified when new releases ship.

Sign up free

About bunkerweb

Open-source and next-generation Web Application Firewall (WAF)

All releases →

Related context

Related CVEs

Beta — feedback welcome: [email protected]