Apache Traffic Server released versions 9.2.16, 10.1.5 and 10.2.1 on October 20, 2026 to fix 15 security vulnerabilities across proxy plugins, TLS session reuse, HTTP parsing, request framing, cache access and denial-of-service paths. Two advisories are rated Critical by Apache, while several others carry technical CVSS scores of 9.0 or 10.0 despite lower Apache severity labels. Any team running Traffic Server should inventory the exact binary, enabled plugins and protocol paths, upgrade to a fixed line, rotate workers, and verify behavior at both the proxy and the origins behind it.
This article separates documented facts from engineering recommendations. The CVE count, severities, affected components and fixed versions come from the Apache Traffic Server advisory and release catalog, verified on October 30, 2026. The inventory queries, rollout gates, detection ideas and incident-review workflow below are operational guidance, not claims that Apache prescribes this exact process.
The answer first
Upgrade every serving Apache Traffic Server instance to 9.2.16, 10.1.5 or 10.2.1. Do not stop at a package-manager success message: prove the running process changed, confirm that old workers exited, check which experimental plugins are loaded, test mTLS and SNI boundaries, exercise HTTP/1 and HTTP/2 framing, and inspect origins for worker exhaustion or cache anomalies.
The most urgent exposure questions are:
- Is the experimental magick plugin enabled in its default unsigned configuration?
- Is the wasm plugin loaded on a 10.x build?
- Does ATS pool outbound TLS sessions across routes that use different client certificates?
- Do multiple SNI virtual hosts have different verify_client policies?
- Can untrusted clients reach HTTP/1 or HTTP/2 paths that reuse origin connections or populate a shared cache?
- Are origin_server_auth or tsmemcache enabled?
If any answer is yes or unknown, treat the proxy as exposed until the fixed binary is running everywhere. Disabling an affected optional plugin can reduce one path while the rollout proceeds, but it does not address the remaining parser, TLS, cache and denial-of-service flaws.
What Apache fixed
Apache's October advisory lists 15 vulnerabilities: two Critical, eight Important and five Moderate under the project's severity system. It groups them into five denial-of-service issues, four request-smuggling issues, three access-control bypasses, one argument-injection issue, one memory-safety issue and one spoofing or certificate-trust issue.
The labels require careful reading. Apache says its severity reflects impact and exploitability in a default configuration, while a CVSS base score can be higher when a specific component or non-default condition is required. That explains why some advisories labeled Important or Moderate have CVSS 10.0.
| Exposure area | Documented issue | Fixed versions |
|---|---|---|
| magick plugin | CVE-2026-111813: unauthenticated client query strings can control ImageMagick convert arguments in the default unsigned configuration | 9.2.16, 10.1.5, 10.2.1 |
| wasm plugin | CVE-2026-111804: use-after-free in transaction close plus unvalidated guest metric IDs | 10.1.5, 10.2.1 |
| outbound mTLS pooling | CVE-2026-111814: a session authenticated with one client certificate can be reused for a route configured with another | 9.2.16, 10.1.5, 10.2.1 |
| inbound mTLS by SNI | CVE-2026-111815: TLS resumption can bypass STRICT client-certificate verification on another SNI host | 9.2.16, 10.1.5, 10.2.1 |
| response parsing and cache | CVE-2026-111816: malformed 302 response framing can reach the cache and create desynchronization | 9.2.16, 10.1.5, 10.2.1 |
| request and connection reuse | CVE-2025-31699, CVE-2025-55702 and CVE-2026-111809: incomplete bodies or ambiguous HEAD framing can enable request smuggling | 9.2.16, 10.1.5, 10.2.1 |
| HTTP/2 to HTTP/1 origins | CVE-2026-111805 and CVE-2026-111808: malformed length or padding can exhaust origin worker pools | 9.2.16, 10.1.5, 10.2.1 |
| diagnostic logging | CVE-2026-111810: many internal headers can amplify log writes | 9.2.16, 10.1.5, 10.2.1 |
| AWS origin signing | CVE-2026-111812: origin_server_auth can sign attacker-controlled AWS headers with proxy credentials | 9.2.16, 10.1.5, 10.2.1 |
| shared cache service | CVE-2026-111811: experimental tsmemcache can expose unauthenticated cache reads, writes and deletes | 9.2.16, 10.1.5, 10.2.1 |
| HTTP tunnel lifecycle | CVE-2026-112381 and CVE-2026-111817: crash or stall paths around half-close, chunked responses and dropped trailers | 9.2.16, 10.1.5, 10.2.1 as applicable |
Apache's advisory does not say these vulnerabilities are being actively exploited. That is not proof that exploitation is absent. It means the public primary source reviewed here documents the flaws and fixes, but does not provide an in-the-wild exploitation claim. Keep attempted exploitation, successful exploitation and confirmed compromise as separate incident states.
Build an exposure inventory before changing traffic
A fleet spreadsheet is not enough. Query the runtime and the configuration source that actually produced it.
traffic_server -V
traffic_ctl config match proxy.config
traffic_ctl plugin msg all inventory
ps -eo pid,lstart,cmd | grep traffic_serverExact commands vary by packaging and operating model. The required evidence is stable:
- host, container image digest or immutable node identity;
- Traffic Server version and build information;
- package source and expected checksum or signature;
- loaded plugin set and plugin configuration digest;
- listener protocols and exposed addresses;
- SNI and client-certificate policy per virtual host;
- outbound client-certificate mapping and session-sharing policy;
- origin connection reuse, cache and remap configuration;
- worker process start times;
- active deployment or configuration revision.
Search configuration repositories and generated runtime files for magick, wasm, origin_server_auth and tsmemcache. Also inspect the plugin directory on the deployed artifact. A plugin binary being present is not the same as being loaded, and a commented configuration line is not proof that a generated runtime configuration excludes it.
For CVE-2026-111813, ask whether unsigned client input can reach the magick plugin and whether the ImageMagick process has network, filesystem or secret access. For CVE-2026-111812, identify the IAM role used by origin_server_auth and the exact AWS destinations and headers the proxy is allowed to sign. This establishes blast radius without testing a dangerous payload in production.
Choose the target release deliberately
Apache identifies 9.2.16 as the fixed LTS 9.x release and lists 10.2.1 as the current 10.x release; 10.1.5 is also a fixed line in the advisory and release catalog. Prefer the newest supported line already compatible with your plugins and deployment model. Do not jump major lines during an emergency unless that path has been tested.
Verify artifacts using the project's SHA-512 digest and OpenPGP signature before baking an image. Record the source URL, digest, signer verification, build pipeline run and resulting image digest. A mutable tag such as ats:10 is not adequate evidence.
approved release -> verified source or package -> immutable image
-> staging protocol tests -> canary proxy
-> origin and cache checks -> fleet rollout
-> old worker proof -> external verificationRoll out without preserving vulnerable workers
Use a canary that sees representative traffic but has bounded blast radius. Test at least:
- normal HTTP/1.1 keep-alive and request bodies;
- HTTP/2 requests translated to HTTP/1.1 origins;
- Expect: 100-continue paths;
- HEAD responses and chunked transfer handling;
- 302 responses from representative origins;
- cache fill, hit, bypass, purge and stale behavior;
- SNI routing, TLS resumption and each client-certificate policy;
- every loaded plugin;
- origin connection pools and worker saturation;
- configuration reload and rollback.
Compare error rates, cache-hit behavior, connection reuse, origin latency, worker occupancy, log volume and TLS failures with a clean baseline. The security update changes sensitive framing and session behavior; a green health endpoint alone is weak evidence.
After promotion, verify process start times and binary versions on every node. A configuration reload may leave the old executable or old workers serving traffic. For containers, prove the running image digest and pod or task replacement. For hosts, prove the package version and that all pre-update PIDs have exited.
Verify the security boundaries
Build checks around outcomes, not exploit strings.
| Boundary | Safe verification |
|---|---|
| Plugin exposure | Confirm plugins are absent or upgraded; validate least-privilege sandboxing in a non-production environment |
| mTLS by SNI | Attempt allowed and denied client-certificate combinations for every host, including resumed sessions |
| Outbound client identity | Capture which certificate the origin receives for each route; verify sessions do not cross identities |
| Request framing | Run controlled protocol conformance tests through the full proxy chain and verify one request maps to one origin request |
| Cache integrity | Use unique test keys and confirm malformed responses are rejected rather than stored |
| Origin resilience | Observe origin active workers and queues during bounded malformed-input tests in staging |
| Log amplification | Send a bounded header test in staging and compare request bytes with generated log bytes |
Do not run public proof-of-concept payloads against production. Request smuggling tests can corrupt shared connections and affect unrelated users; plugin argument injection can execute unintended operations. Use an isolated environment with synthetic origins and disposable caches.
Review evidence for attempted or successful exploitation
The absence of an Apache exploitation statement does not close the incident. Review evidence based on the paths you actually exposed.
- For magick: unexpected ImageMagick child processes, unusual arguments, file or network access, crashes and plugin error logs.
- For wasm: transaction-close crashes, invalid metric identifiers, corrupted statistics or unexplained worker restarts.
- For TLS: certificate identities that do not match the remap route, resumed sessions crossing SNI hosts, and origin logs showing the wrong client principal.
- For request smuggling: mismatched request counts across proxy and origin, anomalous 400 or 502 patterns, cache objects tied to impossible request sequences, and one client's response appearing on another connection.
- For HTTP/2 exhaustion: origin worker saturation without corresponding completed requests, long-lived truncated bodies and queue growth.
- For origin_server_auth: AWS audit events with unexpected signed headers, services or resource targets.
- For tsmemcache: network access to the plugin port, cache mutations without a matching administrative action and unexplained purges.
Classify findings precisely: scanner or malformed request observed; vulnerable path reached; unauthorized effect verified; compromise confirmed. Do not call a probe a breach, and do not call an update complete while old instances or uncertain evidence remain.
Best practices
- Maintain a machine-readable inventory of versions, plugins and configuration digests.
- Remove experimental plugins that are not required.
- Run plugins and ImageMagick with minimal filesystem, network and credential access.
- Separate client-certificate identities and test session reuse explicitly.
- Keep proxy and origin request counts and trace identifiers correlated.
- Treat cache writes as security-sensitive state changes.
- Verify release signatures and pin immutable image digests.
- Replace every worker, not only the package on disk.
- Keep a bounded rollback that returns to another fixed build, never a vulnerable image.
- Retain before-and-after evidence for the change record.
Anti-patterns and limitations
- Patching only hosts that appear in the load balancer while standby or disaster-recovery nodes remain vulnerable.
- Disabling magick and assuming all 15 issues are mitigated.
- Trusting a package database without checking running processes.
- Testing request smuggling against shared production connections.
- Treating Apache severity as identical to CVSS.
- Claiming active exploitation without primary evidence.
- Treating an accepted deployment or clean scanner result as proof of no compromise.
- Reusing a vulnerable image for rollback.
This guide cannot determine exposure from a version string alone. Plugin enablement, TLS policy, proxy chaining, origin behavior and cache configuration materially change risk. Confirm each boundary from the deployed runtime.
Executive checklist
- Enumerate every ATS instance, version, image digest and process start time.
- Inventory loaded plugins and all generated configuration.
- Map SNI, client-certificate, origin-pool, HTTP/1, HTTP/2 and cache paths.
- Upgrade to 9.2.16, 10.1.5 or 10.2.1.
- Verify SHA-512 and OpenPGP signatures before building.
- Test plugins, framing, cache, TLS and origin pools in isolation.
- Canary the fixed build and compare protocol and origin metrics.
- Replace old workers and prove the running binary or image digest.
- Review path-specific logs and audit records for suspicious effects.
- Close only when fleet coverage and external behavior are verified.
Related reading: NGINX October 2026 security update, Apache Tomcat October 2026 security update, curl HTTP/2 patch guide, the Cloud, DevOps and Kubernetes hub, and backend and API engineering services.
Primary references
- Apache Traffic Server — October 2026 CVE Release
- Apache Traffic Server — project news
- Apache Traffic Server — downloads and signature guidance
- Apache Release Catalog — Traffic Server releases
- Wikimedia Commons — EthernetSwitch2.jpg
- Creative Commons — CC0 1.0 Universal
Prepared by: Noor Yasser
Official references
These references document the tools discussed. Examples and design decisions are illustrative and should be adapted to the project and its versions.
Prepared by: Noor Yasser
Working through a similar engineering challenge?
I help teams turn architecture decisions into a clear scope and dependable, reviewable implementation.




