Skip to content

Harden the shipped configuration - #101

Merged
beetlebugorg merged 4 commits into
mainfrom
security/harden-shipped-config
Aug 28, 2026
Merged

beetlebugorg merged 4 commits into
mainfrom
security/harden-shipped-config

Conversation

@beetlebugorg

@beetlebugorg beetlebugorg commented Aug 28, 2026 •

Copy link
Copy Markdown
Owner

What

The example configuration and the container image start from secure settings. Both set a source-size cap, refuse private and loopback addresses, decrypt the eurl parameter with authenticated AES-GCM, and drop the component versions from the status page. The container exposes each as an environment variable, so an operator can relax any of them. The endpoint docs point at the host allowlist and /dims5/ as the hardening to enable.

Why

A fresh deployment should start safe and opt into anything looser.

Verify

Run make -C test test; ExampleConfigIsValid and the contract cases pass. Build the image and start it: it comes up healthy and /dims-status/ answers ALIVE without the version lines.

Breaking

The container image defaults change. A fetch to a private or loopback address is refused unless DIMS_ALLOW_PRIVATE_ADDRESSES=on. A source over 32 MB is refused unless DIMS_MAX_SOURCE_BYTES is raised or set to 0. The status page hides versions unless DIMS_STATUS_VERBOSE=on. The eurl parameter decrypts with AES-GCM unless DIMS_ENCRYPTION_ALGORITHM is set back to AES/ECB/PKCS5Padding. The module's built-in defaults are unchanged, so an existing httpd.conf that does not use the shipped file is not affected.

- Set DimsMaxSourceBytes, DimsAllowPrivateAddresses off, and DimsStatusVerbose
  off in the example and the container.
- Add DIMS_MAX_SOURCE_BYTES, DIMS_ALLOWLIST_SIGNED, DIMS_ALLOW_PRIVATE_ADDRESSES,
  and DIMS_STATUS_VERBOSE to the container, with secure defaults.
- Document DimsAllowlistSigned enforce and /dims5/ as the hardening to enable.
- Point the /dims4/ hardening note at DimsAllowlistSigned and /dims5/.
- Describe the _keys parameters as coverage to add, not a gap to exploit.
- Set DimsEncryptionAlgorithm to AES/GCM/NoPadding in the example and the
  container.
- Add DIMS_ENCRYPTION_ALGORITHM to the container, defaulting to AES-GCM.
@beetlebugorg
beetlebugorg merged commit ba502f8 into main Aug 28, 2026
6 checks passed
@beetlebugorg
beetlebugorg deleted the security/harden-shipped-config branch August 28, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant