Описание
Traefik is an open source HTTP reverse proxy and load balancer. Prior to 2.11.53, 3.6.24, and 3.7.9, Traefik's default HTTP reverse proxy forwards a plain HTTP/2 or HTTP/3 CONNECT request and its body to an HTTP/1.1 upstream through a shared net/http.Transport. When the upstream answers the CONNECT with a keep-alive non-2xx response and does not drain the body, Traefik returns the desynchronized backend socket to its shared pool and reuses it for other clients. An unauthenticated attacker can use this behavior to make a different client read the attacker's smuggled response, which can include authenticated or private content from another request. The ForwardAuth middleware with forwardBody true and preserveRequestMethod true can re-issue a CONNECT with the buffered body attached, exposing the auth-client pool to the same desynchronization. This issue is fixed in 2.11.53, 3.6.24, and 3.7.9.
A flaw was found in Traefik. Traefik's HTTP reverse proxy can improperly handle HTTP/2 or HTTP/3 CONNECT requests forwarded to an HTTP/1.1 upstream. If the upstream sends a keep-alive non-2xx response and does not fully drain the body, the desynchronized backend socket is returned to a shared pool. An unauthenticated attacker can exploit this by making a different client read their smuggled response, which can lead to information disclosure, potentially exposing authenticated or private content from other requests. The ForwardAuth middleware can also be affected, further exposing the authentication client pool to desynchronization.
Отчет
A desynchronization flaw in Traefik's HTTP reverse proxy allows an unauthenticated remote attacker to perform HTTP request smuggling. When forwarding HTTP/2 or HTTP/3 CONNECT requests to an HTTP/1.1 upstream that responds with a keep-alive non-2xx status without draining the request body, Traefik re-adds the tainted connection to its shared transport pool. Subsequent requests from other clients reused on this socket read the attacker's smuggled response, leading to cross-tenant data leakage or exposed authentication credentials, bypassing non-root container boundaries.
Меры по смягчению последствий
To mitigate this flaw, disable HTTP/2 and HTTP/3 CONNECT request handling at the ingress layer if not required. Alternatively, configure upstream HTTP/1.1 services to forcefully close connections (Connection: close) upon returning non-2xx status codes to prevent socket pooling.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat OpenShift Dev Spaces | devspaces/traefik-rhel9 | Affected | ||
| Red Hat OpenShift GitOps | openshift-gitops-1/argo-rollouts-rhel8 | Not affected | ||
| Red Hat OpenShift GitOps | openshift-gitops-1/argo-rollouts-rhel9 | Not affected |
Показывать по
Ссылки на источники
Дополнительная информация
Статус:
EPSS
8.6 High
CVSS3
Связанные уязвимости
Traefik is an open source HTTP reverse proxy and load balancer. Prior to 2.11.53, 3.6.24, and 3.7.9, Traefik's default HTTP reverse proxy forwards a plain HTTP/2 or HTTP/3 CONNECT request and its body to an HTTP/1.1 upstream through a shared net/http.Transport. When the upstream answers the CONNECT with a keep-alive non-2xx response and does not drain the body, Traefik returns the desynchronized backend socket to its shared pool and reuses it for other clients. An unauthenticated attacker can use this behavior to make a different client read the attacker's smuggled response, which can include authenticated or private content from another request. The ForwardAuth middleware with forwardBody true and preserveRequestMethod true can re-issue a CONNECT with the buffered body attached, exposing the auth-client pool to the same desynchronization. This issue is fixed in 2.11.53, 3.6.24, and 3.7.9.
Traefik is an open source HTTP reverse proxy and load balancer. Prior ...
Traefik: Cross-user response poisoning via proxied CONNECT on Traefik's shared backend keep-alive pool
Уязвимость компонента net/http.Transport обратного прокси сервера Containous Traefik, позволяющая нарушителю раскрыть защищаемую информацию
EPSS
8.6 High
CVSS3