Описание
Security update for caddy
This update for caddy fixes the following issues:
-
Update to version 2.8.4:
- cmd: fix regression in auto-detect of Caddyfile (#6362)
- Tag v2.8.3 was mistakenly made on the v2.8.2 commit and is skipped
-
Update to version 2.8.2:
- cmd: fix auto-detetction of .caddyfile extension (#6356)
- caddyhttp: properly sanitize requests for root path (#6360)
- caddytls: Implement certmagic.RenewalInfoGetter
- build(deps): bump golangci/golangci-lint-action from 5 to 6 (#6361)
-
Update to version 2.8.1:
- caddyhttp: Fix merging consecutive
client_ip
orremote_ip
matchers (#6350) - core: MkdirAll appDataDir in InstanceID with 0o700 (#6340)
- caddyhttp: Fix merging consecutive
-
Update to version 2.8.0:
- acmeserver: Add
sign_with_root
for Caddyfile (#6345) - caddyfile: Reject global request matchers earlier (#6339)
- core: Fix bug in AppIfConfigured (fix #6336)
- fix a typo (#6333)
- autohttps: Move log WARN to INFO, reduce confusion (#6185)
- reverseproxy: Support HTTP/3 transport to backend (#6312)
- context: AppIfConfigured returns error; consider not-yet-provisioned modules (#6292)
- Fix lint error about deprecated method in smallstep/certificates/authority
- go.mod: Upgrade dependencies
- caddytls: fix permission requirement with AutomationPolicy (#6328)
- caddytls: remove ClientHelloSNICtxKey (#6326)
- caddyhttp: Trace individual middleware handlers (#6313)
- templates: Add
pathEscape
template function and use it in file browser (#6278) - caddytls: set server name in context (#6324)
- chore: downgrade minimum Go version in go.mod (#6318)
- caddytest: normalize the JSON config (#6316)
- caddyhttp: New experimental handler for intercepting responses (#6232)
- httpcaddyfile: Set challenge ports when http_port or https_port are used
- logging: Add support for additional logger filters other than hostname (#6082)
- caddyhttp: Log 4xx as INFO; 5xx as ERROR (close #6106)
- Second half of 6dce493
- caddyhttp: Alter log message when request is unhandled (close #5182)
- chore: Bump Go version in CI (#6310)
- go.mod: go 1.22.3
- Fix typos (#6311)
- reverseproxy: Pointer to struct when loading modules; remove LazyCertPool (#6307)
- tracing: add trace_id var (
http.vars.trace_id
placeholder) (#6308) - go.mod: CertMagic v0.21.0
- reverseproxy: Implement health_follow_redirects (#6302)
- caddypki: Allow use of root CA without a key. Fixes #6290 (#6298)
- go.mod: Upgrade to quic-go v0.43.1
- reverseproxy: HTTP transport: fix PROXY protocol initialization (#6301)
- caddytls: Ability to drop connections (close #6294)
- build(deps): bump golangci/golangci-lint-action from 4 to 5 (#6289)
- httpcaddyfile: Fix expression matcher shortcut in snippets (#6288)
- caddytls: Evict internal certs from cache based on issuer (#6266)
- chore: add warn logs when using deprecated fields (#6276)
- caddyhttp: Fix linter warning about deprecation
- go.mod: Upgrade to quic-go v0.43.0
- fileserver: Set 'Vary: Accept-Encoding' header (see #5849)
- events: Add debug log
- reverseproxy: handle buffered data during hijack (#6274)
- ci: remove
android
andplan9
from cross-build workflow (#6268) - run
golangci-lint run --fix --fast
(#6270) - caddytls: Option to configure certificate lifetime (#6253)
- replacer: Implement
file.*
global replacements (#5463) - caddyhttp: Address some Go 1.20 features (#6252)
- Quell linter (false positive)
- reverse_proxy: Add grace_period for SRV upstreams to Caddyfile (#6264)
- doc: add
verifier
inClientAuthentication
caddyfile marshaler doc (#6263) - caddytls: Add Caddyfile support for on-demand permission module (close #6260)
- reverseproxy: Remove long-deprecated buffering properties
- reverseproxy: Reuse buffered request body even if partially drained
- reverseproxy: Accept EOF when buffering
- logging: Fix default access logger (#6251)
- fileserver: Improve Vary handling (#5849)
- cmd: Only validate config is proper JSON if config slice has data (#6250)
- staticresp: Use the evaluated response body for sniffing JSON content-type (#6249)
- encode: Slight fix for the previous commit
- encode: Improve Etag handling (fix #5849)
- httpcaddyfile: Skip automate loader if disable_certs is specified (fix #6148)
- caddyfile: Populate regexp matcher names by default (#6145)
- caddyhttp: record num. bytes read when response writer is hijacked (#6173)
- caddyhttp: Support multiple logger names per host (#6088)
- chore: fix some typos in comments (#6243)
- encode: Configurable compression level for zstd (#6140)
- caddytls: Remove shim code supporting deprecated lego-dns (#6231)
- connection policy: add
local_ip
matcher (#6074) - reverseproxy: Wait for both ends of websocket to close (#6175)
- caddytls: Upgrade ACMEz to v2; support ZeroSSL API; various fixes (#6229)
- caddytls: Still provision permission module if ask is specified
- fileserver: read etags from precomputed files (#6222)
- fileserver: Escape # and ? in img src (fix #6237)
- reverseproxy: Implement modular CA provider for TLS transport (#6065)
- caddyhttp: Apply auto HTTPS redir to all interfaces (fix #6226)
- cmd: Fix panic related to config filename (fix #5919)
- cmd: Assume Caddyfile based on filename prefix and suffix (#5919)
- admin: Make
Etag
a header, not a trailer (#6208) - caddyhttp: remove duplicate strings.Count in path matcher (fixes #6233) (#6234)
- caddyconfig: Use empty struct instead of bool in map (close #6224) (#6227)
- gitignore: Add rule for caddyfile.go (#6225)
- chore: Fix broken links in README.md (#6223)
- chore: Upgrade some dependencies (#6221)
- caddyhttp: Add plaintext response to
file_server browse
(#6093) - admin: Use xxhash for etag (#6207)
- modules: fix some typo in conments (#6206)
- caddyhttp: Replace sensitive headers with REDACTED (close #5669)
- caddyhttp: close quic connections when server closes (#6202)
- reverseproxy: Use xxhash instead of fnv32 for LB (#6203)
- caddyhttp: add http.request.local{,.host,.port} placeholder (#6182)
- chore: upgrade deps (#6198)
- chore: remove repetitive word (#6193)
- Added a null check to avoid segfault on rewrite query ops (#6191)
- rewrite:
uri query
replace operation (#6165) - logging: support
ms
duration format and add docs (#6187) - replacer: use RWMutex to protect static provider (#6184)
- caddyhttp: Allow
header
replacement with empty string (#6163) - vars: Make nil values act as empty string instead of
'<nil>'
(#6174) - chore: Update quic-go to v0.42.0 (#6176)
- caddyhttp: Accept XFF header values with ports, when parsing client IP (#6183)
- reverseproxy: configurable active health_passes and health_fails (#6154)
- reverseproxy: Configurable forward proxy URL (#6114)
- caddyhttp: upgrade to cel v0.20.0 (#6161)
- chore: Bump Chroma to v2.13.0, includes new Caddyfile lexer (#6169)
- caddyhttp: suppress flushing if the response is being buffered (#6150)
- chore: encode: use FlushError instead of Flush (#6168)
- encode: write status immediately when status code is informational (#6164)
- httpcaddyfile: Keep deprecated
skip_log
in directive order (#6153) - httpcaddyfile: Add
RegisterDirectiveOrder
function for plugin authors (#5865) - rewrite: Implement
uri query
operations (#6120) - fix struct names (#6151)
- fileserver: Preserve query during canonicalization redirect (#6109)
- logging: Implement
log_append
handler (#6066) - httpcaddyfile: Allow nameless regexp placeholder shorthand (#6113)
- logging: Implement
append
encoder, allow flatter filters config (#6069) - ci: fix the integration test
TestLeafCertLoaders
(#6149) - vars: Allow overriding
http.auth.user.id
in replacer as a special case (#6108) - caddytls: clientauth: leaf verifier: make trusted leaf certs source pluggable (#6050)
- cmd: Adjust config load logs/errors (#6032)
- reverseproxy: SRV dynamic upstream failover (#5832)
- ci: bump golangci/golangci-lint-action from 3 to 4 (#6141)
- core: OnExit hooks (#6128)
- cmd: fix the output of the
Usage
section (#6138) - caddytls: verifier: caddyfile: re-add Caddyfile support (#6127)
- acmeserver: add policy field to define allow/deny rules (#5796)
- reverseproxy: cookie should be Secure and SameSite=None when TLS (#6115)
- caddytest: Rename adapt tests to
*.caddyfiletest
extension (#6119) - tests: uses testing.TB interface for helper to be able to use test server in benchmarks. (#6103)
- caddyfile: Assert having a space after heredoc marker to simply check (#6117)
- chore: Update Chroma to get the new Caddyfile lexer (#6118)
- reverseproxy: use context.WithoutCancel (#6116)
- caddyfile: Reject directives in the place of site addresses (#6104)
- caddyhttp: Register post-shutdown callbacks (#5948)
- caddyhttp: Only attempt to enable full duplex for HTTP/1.x (#6102)
- caddyauth: Drop support for
scrypt
(#6091) - Revert 'caddyfile: Reject long heredoc markers (#6098)' (#6100)
- caddyauth: Rename
basicauth
tobasic_auth
(#6092) - logging: Inline Caddyfile syntax for
ip_mask
filter (#6094) - caddyfile: Reject long heredoc markers (#6098)
- chore: Rename CI jobs, run on M1 mac (#6089)
- update comment
- improved list
- fix: add back text/*
- fix: add more media types to the compressed by default list
- acmeserver: support specifying the allowed challenge types (#5794)
- matchers: Drop
forwarded
option fromremote_ip
matcher (#6085) - caddyhttp: Test cases for
%2F
and%252F
(#6084) - bump to golang 1.22 (#6083)
- fileserver: Browse can show symlink target if enabled (#5973)
- core: Support NO_COLOR env var to disable log coloring (#6078)
- build(deps): bump peter-evans/repository-dispatch from 2 to 3 (#6080)
- Update comment in setcap helper script
- caddytls: Make on-demand 'ask' permission modular (#6055)
- core: Add
ctx.Slogger()
which returns anslog
logger (#5945) - chore: Update quic-go to v0.41.0, bump Go minimum to 1.21 (#6043)
- chore: enabling a few more linters (#5961)
- caddyfile: Correctly close the heredoc when the closing marker appears immediately (#6062)
- caddyfile: Switch to slices.Equal for better performance (#6061)
- tls: modularize trusted CA providers (#5784)
- logging: Automatic
wrap
default forfilter
encoder (#5980) - caddyhttp: Fix panic when request missing ClientIPVarKey (#6040)
- caddyfile: Normalize & flatten all unmarshalers (#6037)
- cmd: reverseproxy: log: use caddy logger (#6042)
- matchers:
query
now ANDs multiple keys (#6054) - caddyfile: Add heredoc support to
fmt
command (#6056) - refactor: move automaxprocs init in caddycmd.Main()
- caddyfile: Allow heredoc blank lines (#6051)
- httpcaddyfile: Add optional status code argument to
handle_errors
directive (#5965) - httpcaddyfile: Rewrite
root
andrewrite
parsing to allow omitting matcher (#5844) - fileserver: Implement caddyfile.Unmarshaler interface (#5850)
- reverseproxy: Add
tls_curves
option to HTTP transport (#5851) - caddyhttp: Security enhancements for client IP parsing (#5805)
- replacer: Fix escaped closing braces (#5995)
- filesystem: Globally declared filesystems,
fs
directive (#5833) - ci/cd: use the build tag
nobadger
to exclude badgerdb (#6031) - httpcaddyfile: Fix redir html (#6001)
- httpcaddyfile: Support client auth verifiers (#6022)
- tls: add reuse_private_keys (#6025)
- reverseproxy: Only change Content-Length when full request is buffered (#5830)
- Switch Solaris-derivatives away from listen_unix (#6021)
- build(deps): bump actions/upload-artifact from 3 to 4 (#6013)
- build(deps): bump actions/setup-go from 4 to 5 (#6012)
- chore: check against errors of
io/fs
instead ofos
(#6011) - caddyhttp: support unix sockets in
caddy respond
command (#6010) - fileserver: Add total file size to directory listing (#6003)
- httpcaddyfile: Fix cert file decoding to load multiple PEM in one file (#5997)
- build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#5994)
- cmd: use automaxprocs for better perf in containers (#5711)
- logging: Add
zap.Option
support (#5944) - httpcaddyfile: Sort skip_hosts for deterministic JSON (#5990)
- metrics: Record request metrics on HTTP errors (#5979)
- go.mod: Updated quic-go to v0.40.1 (#5983)
- fileserver: Enable compression for command by default (#5855)
- fileserver: New --precompressed flag (#5880)
- caddyhttp: Add
uuid
to access logs when used (#5859) - proxyprotocol: use github.com/pires/go-proxyproto (#5915)
- cmd: Preserve LastModified date when exporting storage (#5968)
- core: Always make AppDataDir for InstanceID (#5976)
- chore: cross-build for AIX (#5971)
- caddytls: Sync distributed storage cleaning (#5940)
- caddytls: Context to DecisionFunc (#5923)
- tls: accept placeholders in string values of certificate loaders (#5963)
- templates: Offically make templates extensible (#5939)
- http2 uses new round-robin scheduler (#5946)
- panic when reading from backend failed to propagate stream error (#5952)
- chore: Bump otel to v1.21.0. (#5949)
- httpredirectlistener: Only set read limit for when request is HTTP (#5917)
- fileserver: Add .m4v for browse template icon
- Revert 'caddyhttp: Use sync.Pool to reduce lengthReader allocations (#5848)' (#5924)
- go.mod: update quic-go version to v0.40.0 (#5922)
- update quic-go to v0.39.3 (#5918)
- chore: Fix usage pool comment (#5916)
- test: acmeserver: add smoke test for the ACME server directory (#5914)
- Upgrade acmeserver to github.com/go-chi/chi/v5 (#5913)
- caddyhttp: Adjust
scheme
placeholder docs (#5910) - go.mod: Upgrade quic-go to v0.39.1
- go.mod: CVE-2023-45142 Update opentelemetry (#5908)
- templates: Delete headers on
httpError
to reset to clean slate (#5905) - httpcaddyfile: Remove port from logger names (#5881)
- core: Apply SO_REUSEPORT to UDP sockets (#5725)
- caddyhttp: Use sync.Pool to reduce lengthReader allocations (#5848)
- cmd: Add newline character to version string in CLI output (#5895)
- core: quic listener will manage the underlying socket by itself (#5749)
- templates: Clarify
include
args docs, add.ClientIP
(#5898) - httpcaddyfile: Fix TLS automation policy merging with get_certificate (#5896)
- cmd: upgrade: resolve symlink of the executable (#5891)
- caddyfile: Fix variadic placeholder false positive when token contains
:
(#5883)
- acmeserver: Add
-
CVEs:
- CVE-2024-22189 (boo#1222468)
- CVE-2023-45142
-
Update to version 2.7.6:
- caddytls: Sync distributed storage cleaning (#5940)
- caddytls: Context to DecisionFunc (#5923)
- tls: accept placeholders in string values of certificate loaders (#5963)
- templates: Offically make templates extensible (#5939)
- http2 uses new round-robin scheduler (#5946)
- panic when reading from backend failed to propagate stream error (#5952)
- chore: Bump otel to v1.21.0. (#5949)
- httpredirectlistener: Only set read limit for when request is HTTP (#5917)
- fileserver: Add .m4v for browse template icon
- Revert 'caddyhttp: Use sync.Pool to reduce lengthReader allocations (#5848)' (#5924)
- go.mod: update quic-go version to v0.40.0 (#5922)
- update quic-go to v0.39.3 (#5918)
- chore: Fix usage pool comment (#5916)
- test: acmeserver: add smoke test for the ACME server directory (#5914)
- Upgrade acmeserver to github.com/go-chi/chi/v5 (#5913)
- caddyhttp: Adjust
scheme
placeholder docs (#5910) - go.mod: Upgrade quic-go to v0.39.1
- go.mod: CVE-2023-45142 Update opentelemetry (#5908)
- templates: Delete headers on
httpError
to reset to clean slate (#5905) - httpcaddyfile: Remove port from logger names (#5881)
- core: Apply SO_REUSEPORT to UDP sockets (#5725)
- caddyhttp: Use sync.Pool to reduce lengthReader allocations (#5848)
- cmd: Add newline character to version string in CLI output (#5895)
- core: quic listener will manage the underlying socket by itself (#5749)
- templates: Clarify
include
args docs, add.ClientIP
(#5898) - httpcaddyfile: Fix TLS automation policy merging with get_certificate (#5896)
- cmd: upgrade: resolve symlink of the executable (#5891)
- caddyfile: Fix variadic placeholder false positive when token contains
:
(#5883)
-
Update to version 2.7.5:
- admin: Respond with 4xx on non-existing config path (#5870)
- ci: Force the Go version for govulncheck (#5879)
- fileserver: Set canonical URL on browse template (#5867)
- tls: Add X25519Kyber768Draft00 PQ 'curve' behind build tag (#5852)
- reverseproxy: Add more debug logs (#5793)
- reverseproxy: Fix
least_conn
policy regression (#5862) - reverseproxy: Add logging for dynamic A upstreams (#5857)
- reverseproxy: Replace health header placeholders (#5861)
- httpcaddyfile: Sort TLS SNI matcher for deterministic JSON output (#5860)
- cmd: Fix exiting with custom status code, add
caddy -v
(#5874) - reverseproxy: fix parsing Caddyfile fails for unlimited request/response buffers (#5828)
- reverseproxy: Fix retries on 'upstreams unavailable' error (#5841)
- httpcaddyfile: Enable TLS for catch-all site if
tls
directive is specified (#5808) - encode: Add
application/wasm*
to the default content types (#5869) - fileserver: Add command shortcuts
-l
and-a
(#5854) - go.mod: Upgrade dependencies incl. x/net/http
- templates: Add dummy
RemoteAddr
tohttpInclude
request, proxy compatibility (#5845) - reverseproxy: Allow fallthrough for response handlers without routes (#5780)
- fix: caddytest.AssertResponseCode error message (#5853)
- build(deps): bump goreleaser/goreleaser-action from 4 to 5 (#5847)
- build(deps): bump actions/checkout from 3 to 4 (#5846)
- caddyhttp: Use LimitedReader for HTTPRedirectListener
- fileserver: browse template SVG icons and UI tweaks (#5812)
- reverseproxy: fix nil pointer dereference in AUpstreams.GetUpstreams (#5811)
- httpcaddyfile: fix placeholder shorthands in named routes (#5791)
- cmd: Prevent overwriting existing env vars with
--envfile
(#5803) - ci: Run govulncheck (#5790)
- logging: query filter for array of strings (#5779)
- logging: Clone array on log filters, prevent side-effects (#5786)
- fileserver: Export BrowseTemplate
- ci: ensure short-sha is exported correctly on all platforms (#5781)
- caddyfile: Fix case where heredoc marker is empty after newline (#5769)
- go.mod: Update quic-go to v0.38.0 (#5772)
- chore: Appease gosec linter (#5777)
- replacer: change timezone to UTC for 'time.now.http' placeholders (#5774)
- caddyfile: Adjust error formatting (#5765)
- update quic-go to v0.37.6 (#5767)
- httpcaddyfile: Stricter errors for site and upstream address schemes (#5757)
- caddyfile: Loosen heredoc parsing (#5761)
- fileserver: docs: clarify the ability to produce JSON array with
browse
(#5751) - fix package typo (#5764)
Список пакетов
SUSE Package Hub 15 SP6
openSUSE Leap 15.6
Ссылки
- E-Mail link for openSUSE-SU-2024:0220-1
- SUSE Security Ratings
- SUSE Bug 1222468
- SUSE CVE CVE-2023-45142 page
- SUSE CVE CVE-2024-22189 page
Описание
OpenTelemetry-Go Contrib is a collection of third-party packages for OpenTelemetry-Go. A handler wrapper out of the box adds labels `http.user_agent` and `http.method` that have unbound cardinality. It leads to the server's potential memory exhaustion when many malicious requests are sent to it. HTTP header User-Agent or HTTP method for requests can be easily set by an attacker to be random and long. The library internally uses `httpconv.ServerRequest` that records every value for HTTP `method` and `User-Agent`. In order to be affected, a program has to use the `otelhttp.NewHandler` wrapper and not filter any unknown HTTP methods or User agents on the level of CDN, LB, previous middleware, etc. Version 0.44.0 fixed this issue when the values collected for attribute `http.request.method` were changed to be restricted to a set of well-known values and other high cardinality attributes were removed. As a workaround to stop being affected, `otelhttp.WithFilter()` can be used, but it requires manual careful configuration to not log certain requests entirely. For convenience and safe usage of this library, it should by default mark with the label `unknown` non-standard HTTP methods and User agents to show that such requests were made but do not increase cardinality. In case someone wants to stay with the current behavior, library API should allow to enable it.
Затронутые продукты
Ссылки
- CVE-2023-45142
- SUSE Bug 1228553
Описание
quic-go is an implementation of the QUIC protocol in Go. Prior to version 0.42.0, an attacker can cause its peer to run out of memory sending a large number of `NEW_CONNECTION_ID` frames that retire old connection IDs. The receiver is supposed to respond to each retirement frame with a `RETIRE_CONNECTION_ID` frame. The attacker can prevent the receiver from sending out (the vast majority of) these `RETIRE_CONNECTION_ID` frames by collapsing the peers congestion window (by selectively acknowledging received packets) and by manipulating the peer's RTT estimate. Version 0.42.0 contains a patch for the issue. No known workarounds are available.
Затронутые продукты
Ссылки
- CVE-2024-22189
- SUSE Bug 1222461