Apache 2.4.67: Why Legacy Reverse Proxies Belong Back on the Risk List

Illustrated infographic summarizing: Apache 2.4.67 Put Legacy Reverse Proxies Back on the Risk List

By Greg Nowak. Updated 31 August 2026.

Apache 2.4.67 was more than a routine security release. It fixed an important HTTP/2 double-free in 2.4.66 with possible remote code execution, several AJP memory-handling flaws, a privilege issue affecting local .htaccess authors, and unsafe handling of responses from compromised backends.

It also exposed a familiar operational problem: the reverse proxy everyone depends on may be the server nobody confidently owns. Apache 2.4.67 should therefore be treated as the warning, not the destination. As of 31 August 2026, Apache 2.4.68 is the latest upstream release and is recommended over earlier 2.4 versions. It fixes further issues present in 2.4.67, including vulnerabilities involving mod_proxy_html, cookie-rewriting directives, delegated .htaccess expressions and mod_http2.

The real risk is what the proxy controls

A legacy proxy may terminate TLS, redirect old domains, route customer requests, add authentication headers or connect the public internet to an ERP, CMS or Java application. Its configuration is simultaneously a routing table, a security boundary and a record of old business decisions.

That makes exposure and function more useful than version numbers alone when deciding what to inspect first.

What you find Priority Practical response
Apache 2.4.67 or earlier serving public traffic Immediate Patch through the supported package channel, restart the service and verify the running package.
Protocols h2 is enabled High Patch and test HTTP/2 under concurrency; check memory, threads and file-descriptor headroom.
AJP, FTP or content-rewriting proxy modules are loaded High Confirm the business need, restrict backend connectivity and unload unused modules.
Content or agency teams can edit .htaccess High Identify every writer and replace broad override categories with named directives where possible.
ProxyRequests On appears Investigate Confirm that a restricted forward proxy is intentional. Reverse proxying does not require this setting.
No owner, backend map or rollback instructions exist Operational risk Assign an owner and create a minimal runbook before combining patching with major cleanup.
A triage matrix for inherited Apache reverse proxies.

Build a small evidence pack before changing anything

Run the following on the server, or on an accurate staging copy. Paths vary between distributions:

apachectl -v
apachectl -V
apachectl -M
apachectl -S
apachectl -t
grep -RniE 'Protocols|ProxyRequests|ProxyPass|RewriteRule.*\[P|AllowOverride|AllowOverrideList|ajp://' /etc/apache2 /etc/httpd 2>/dev/null

This gives you the executable version, build settings, loaded modules, virtual-host map, syntax status and likely proxy or delegation rules. Treat the search output as triage: it may include comments and inactive files, and configuration may live outside those directories.

Do not rely on the version banner as final proof of vulnerability status. Linux distributions often backport security fixes while retaining an older-looking upstream version. Compare the complete installed package revision with the distribution’s security advisory or package repository. Then confirm that the service was restarted and the new executable is actually running.

For every public hostname, record the backend destination, protocol, application owner, health check and expected failure behaviour. This short map is often more valuable to the business than a long generic server report.

Patch it as a controlled business change

The package update is usually the easy part. The job is to prove that revenue, customer and administrative paths still work afterward.

  • Capture package versions, active configuration and a tested rollback procedure before the maintenance window.
  • Run apachectl -t before restarting, but remember that a valid configuration is not proof of correct routing.
  • Test redirects, authentication, uploads, API calls, admin routes, WebSockets and upstream TLS wherever they are used.
  • Exercise both HTTP/1.1 and HTTP/2. Shared-certificate virtual hosts need compatible TLS settings or HTTP/2 clients may receive 421 Misdirected Request.
  • Test a slow or unavailable backend. Check that timeouts and error pages do not reveal internal hostnames or trigger uncontrolled retries.
  • After deployment, inspect access and error logs, verify the running process, watch resource use and keep the rollback decision time-boxed.

Reduce the next patching job without widening this one

Do not disable HTTP/2 or replace AJP automatically because a vulnerability mentions the module. First determine whether the feature is used. Apache’s HTTP/2 implementation uses a separate worker pool and more connection state than HTTP/1.1, so capacity belongs in the review alongside security.

AJP deserves the same evidence-based decision. If an application still needs it, document and restrict the backend connection. If the module survives only because an old application once required it, give retirement an owner and deadline.

Apache recommends putting directives in the main server configuration when administrators control it. If delegation is genuinely necessary, AllowOverrideList can permit specific directives instead of broad categories. Also verify that ProxyRequests is off unless the host deliberately provides a secured forward proxy.

Keep urgent patching separate from architectural cleanup when combining them would make testing or rollback unclear. Create the cleanup backlog during the review, then schedule it as its own change.

What a useful review should leave behind

  • Evidence of the installed security update and restarted process
  • A concise map of virtual hosts, modules, routes and backend owners
  • Recorded pre-change and post-change tests for important business journeys
  • A rollback runbook and prioritised cleanup list with named owners

That turns an emergency update into a repeatable operating task. If an inherited Apache proxy sits between your customers and systems your team cannot confidently map, Greg can help scope the review, coordinate the technical work and leave your team with a usable runbook.

Related on GrN.dk

Need help with this kind of work?

Discuss your Apache proxy review with Greg Get in touch with Greg.

Sources

Latest articles

PHP 8.2 security support ends on December 31, 2026. Here is how to audit, test, and migrate a mixed CMS estate without rushing production changes.

How Danish businesses can automate Gmail and Microsoft 365 with rapid sorting, limited permissions and human approval.

When WordPress jobs run late, check WP-Cron and queue capacity first. Diagnose triggers, handlers, and Action Scheduler without guesswork.

WordPress 7.1 makes speculative loading configurable. Here’s how to spot overlapping rules and test speed gains without adding hidden costs.

Multiple records for the same customer in HubSpot? Learn how CVR number matching, AI suggestions and human approval can help you clean up duplicates while keeping track of fields, associations and customer history.

Before a Google AI shopping pilot, check which products qualify, where your catalog data disagrees, and whether checkout reflects your delivery and return terms.

Check whether prompt caching reduces cost per completed task, accounting for cache writes, retries, review effort and the charges on your provider's bill.

A practical Drupal translation workflow for Danish service pages: German review, commercial approval, publication and keeping translations current after edits.

Build a weekly marketing report from GA4 and Google Ads with verified calculations, clear data caveats and a short AI draft to support your Monday meeting.

Before buying a GPU, test one real team workflow on existing hardware. A Linux pilot can show whether quality, memory, response times, and running costs add up.