1.4.80
August 13, 2025
Important changes
- detect and issue error trace for HTTP/2 MadeYouReset VU#767506 CVE-2025-8671
Highlights
- detect and issue error trace for HTTP/2 MadeYouReset VU#767506 CVE-2025-8671
- stricter HTTP request/response header, trailer, and chunked validation/parsing
- support HTTP response trailers
- support HTTP request trailers merge to headers (if not streaming request body)
- bug fixes
BEHAVIOR CHANGES
- extend TLS error log messages to include client addr if error caused by client (Please review TLS error string matching in log watchers)
- extend TLS error log messages for HTTP/2 attack detection (Please review TLS error string matching in log watchers)
- reject path info on static files by default (prior default allowed path info) (For prior behavior, configure static-file.disable-pathinfo = “disable”)
Downloads
- lighttpd-1.4.80.tar.gz (GPG signature)
- SHA256:
30d5bbbcbeaf8e52a7bdde614248dd932d63753d87fed79307547312012b4c01
- SHA256:
- lighttpd-1.4.80.tar.xz (GPG signature)
- SHA256:
cc5f0f71e8b2ee6bad545d1e91dfc3f954716c9174e7b352c2147add44f25bf3
- SHA256:
- SHA256 checksums
- SHA512 checksums
Changes from 1.4.79
- [doc] move comments in systemd lighttpd.service
- [doc] refresh INSTALL
- [core] adjust malloc_top_pad after srv->srvconf.max_conns
- [build] remove references to libev; no longer used
- [multiple] stricter string init without trail ‘\0’
- workaround unsupported PR_CAP_AMBIENT_CLEAR_ALL on Cloud Run
- [TLS] 0-init plugin_ssl_ctx (fixes #3281)
- [autotools] LIGHTTPD_STATIC in config.h if static build
- [doc] systemd lighttpd.service SystemCallFilter
- [core] reject stray \r in chunked headers
- [tests] reject stray \r or \n in chunked headers
- [core] http_chunk_decode_append_error()
- [core] h1_chunked_400_bad_request()
- [mod_webdav] log trace for EACCES on PUT
- [build] check for C23 memset_explicit()
- [mod_ssi] set tmp file length if ssi exec fails
- [ci] set SHELL=/bin/sh for builds on alpine
- [mod_openssl] avoid BoringSSL/AWS-LC compiler warn
- [mod_openssl] AWS-LC limitations/compatibility (#3282)
- [ci] use actions/cache@v3 to cache Cygwin install
- [mod_openssl] use BoringSSL APIs w/ SSL_CREDENTIAL
- [mod_boringssl] cp mod_openssl.c mod_boringssl.c
- [build] build support for mod_boringssl
- [mod_boringssl] rename plugin init func
- [mod_boringssl] remove openssl/libressl code
- [mod_openssl] remove code specific to boringssl
- [mod_boringssl] ignore ssl.read-ahead
- [mod_boringssl] TLS_with_buffers_method() optim
- [mod_boringssl] init/enable CRYPTO_BUFFER_POOL
- [mod_boringssl] use SSL_get0_peer_certificates()
- [mod_boringssl] using AWS-LC does not build
- [mod_boringssl] code reuse
- [mod_boringssl] more CRYPTO_BUFFER code, less X509
- [mod_boringssl] elide excess time() calls
- [mod_boringssl] alt callbacks for client cert vfy
- [mod_boringssl] remove verify_callback (replaced)
- [ci] bump actions/cache from 3 to 4
- [ci] add package for SCONS “fullstatic” build
- [mod_boringssl] load CRLs into STACK_OF(X509_CRL)
- [mod_openssl] revert commits; re-support AWS-LC
- [mod_boringssl] skip BIO copy if pkey already DER
- [mod_boringssl] shared code for parsing PEM files
- [mod_boringssl] typo
- [mod_boringssl] wipe tmp_buf used to decode pkey
- [mod_boringssl] more generic pkey read from PEM
- [mod_wolfssl] more generic pkey read from PEM
- [mod_nss] more generic pkey read from PEM
- [core] http_chunk_decode_append_* code reuse
- [h2] h2_send_headers_hoff() to reduce stack use
- [core] stricter validate of trailers from backends
- [core] check Transfer-Encoding: chunked from backends
- [core] remove deprecated Expect-CT from enum
- [core] http_header_str_contains_token() comment
- [core] http_request_field_check_value() code reuse
- [core] http_request_field_check_name() code reuse
- [core] stricter validation of backend response
- [mod_magnet] stricter validation of request/response
- [h2] fill in hoff[] for “:status: XXX\r\n\r\n”
- [core] simplify hoff[] access when hoff[1] == 0
- [core] check HTTP/1.x field block fully consumed
- [core] unfold fields in http_header_parse_hoff()
- [h2] stricter validation of HTTP/2 trailers
- [core] validate BACKEND_PROXY headers end w/ CRLF
- [core] strict validate request headers end w/ CRLF
- [core] fix stat_cache inotify for files in rootdir
- [core] merge request trailers into request headers
- [mod_staticfile] reject pathinfo on static files
- [mod_setenv] warn if setenv.* incl invalid chars
- [tests] trailers
- [mod_proxy] sketch out streaming and trailers
- [mod_setenv] quiet coverity noise
- [core] disable mmap for < QNX 8.0.0
- [core] connections_pool_clear() unless in jobqueue
- [ci] run apt-get update on github ubuntu workflows
- [ci] explicit compiler install on github ubuntu workflows
- [mod_openssl] build against ancient openssl libs
- [TLS] SSL error handling improvements
- [mod_openssl] update lib version EOL warning
- [mod_openssl] workaround OpenSSL 3 SSL_sendfile bug
- [mod_wolfssl] check for WOLFSSL_SHUTDOWN_NOT_DONE
- [TLS] skip SSL_shutdown after non-recoverable error
- [mod_wolfssl] handle additional wolfssl socket err
- [mod_mbedtls] mbedtls 4.x removes MBEDTLS_DHM_C
- [mod_mbedtls] mbedtls 4.x PSA crypto handles RNG
- [mod_mbedtls] mbedtls 4.x removes RSA key exch
- [mod_mbedtls] mbedtls 4.x curve_info,list private
- [mod_mbedtls] mbedtls 4.x makes oid private
- [doc] command line -f - to read config from stdin (fixes #3286)
- [h2] attempt to detect HTTP/2 MadeYouReset DoS