Cloudflare łata błąd w walidacji ACME: jak ścieżka /.well-known/acme-challenge/ mogła stać się „bocznym wejściem” omijającym WAF - Security Bez Tabu

Cloudflare łata błąd w walidacji ACME: jak ścieżka /.well-known/acme-challenge/ mogła stać się „bocznym wejściem” omijającym WAF

Wprowadzenie do problemu / definicja luki

Cloudflare opisał i wcześniej załatał błąd logiczny w obsłudze walidacji ACME (HTTP-01), który w określonych warunkach prowadził do wyłączenia części mechanizmów WAF dla żądań trafiających w ścieżkę /.well-known/acme-challenge/* – a następnie do przepuszczenia takiego ruchu do serwera origin (źródłowego) nawet wtedy, gdy normalnie zostałby on zablokowany.

W praktyce oznaczało to ryzyko „przekucia” specjalnej ścieżki utrzymywanej pod automatyczne wydawanie certyfikatów TLS w kanał omijający reguły ochronne na brzegu (edge).


W skrócie

  • Problem dotyczył logiki obsługi ACME HTTP-01 na Cloudflare edge dla /.well-known/acme-challenge/*.
  • Błąd mógł skutkować tym, że WAF nie egzekwował części reguł, a żądanie (w pewnym scenariuszu) trafiało dalej do origin.
  • Zgłoszenie pochodziło od zewnętrznych badaczy (FearsOff) w październiku 2025, a poprawka została wdrożona 27 października 2025; Cloudflare podkreśla, że nie ma dowodów na nadużycia.

Kontekst / historia / powiązania

ACME (Automatic Certificate Management Environment) to standardowy protokół automatyzujący wydawanie, odnawianie i unieważnianie certyfikatów. Jest powszechnie wykorzystywany m.in. przez usługi typu Let’s Encrypt.

W przypadku wyzwania HTTP-01 urząd certyfikacji sprawdza, czy pod adresem w rodzaju:

http://twojadomena/.well-known/acme-challenge/<token>

da się pobrać oczekiwany token (dowód kontroli nad domeną). Cloudflare – jeśli to on zarządza danym zamówieniem certyfikatu – potrafi odpowiedzieć na tej ścieżce „z brzegu”, tak aby automatyzacja działała bez dotykania origin.

Kluczowy szczegół: mechanizmy ochronne (np. WAF) bywają na czas takiej walidacji „poluzowywane”, by nie przeszkodzić automatycznemu botowi CA w pobraniu tokenu.


Analiza techniczna / szczegóły luki

Cloudflare wskazał, że przy obsłudze /.well-known/acme-challenge/* występował błąd w logice decyzyjnej:

  1. Gdy Cloudflare rozpoznawał aktywne wyzwanie HTTP-01, potrafił wyłączyć część funkcji WAF dla tej ścieżki, aby nie blokować walidacji (to było zamierzone zachowanie w prawidłowym scenariuszu).
  2. W podatnym wariancie, jeśli token był powiązany z inną strefą (zone), a nie z hostem/hostname, którego dotyczyło żądanie, żądanie mogło zostać przepuszczone dalej do origin bez dalszego przetwarzania przez reguły WAF. Innymi słowy: mechanizm „wyłączenia WAF” uruchamiał się, ale Cloudflare nie powinien był przekazywać takiego ruchu do origin w sposób omijający kontrolę.

Mitigacja wdrożona przez Cloudflare polega na tym, że wyłączenie zestawu funkcji bezpieczeństwa następuje tylko wtedy, gdy żądanie faktycznie pasuje do poprawnego tokenu HTTP-01 dla danego hostname (czyli w sytuacji, w której Cloudflare ma właściwą odpowiedź wyzwania do podania).

W doniesieniach medialnych pojawił się również wątek, że taki błąd mógłby ułatwiać rekonesans (np. przez stabilny token/ścieżkę prowadzącą do origin), choć Cloudflare podkreśla brak oznak realnego wykorzystania.


Praktyczne konsekwencje / ryzyko

Dlaczego to było potencjalnie groźne?

  • WAF jako granica zaufania: wiele organizacji traktuje WAF/CDN jako „pierwszą linię obrony” dla ruchu HTTP(S). Jeśli powstaje ścieżka, która okresowo lub warunkowo omija reguły, to powierzchnia ataku origin rośnie.
  • Ryzyko łańcuchowania podatności: samo „dotarcie do origin” nie musi oznaczać przejęcia, ale może umożliwić wykorzystanie błędów aplikacyjnych (SQLi/SSRF/LFI/RCE), endpointów administracyjnych, błędnych konfiguracji czy wycieków nagłówków/diagnostyki – czyli wszystkiego, co normalnie mogło być odsiane przez reguły WAF. (To jest wniosek operacyjny: gdy jedna warstwa filtracji znika, skutki zależą od higieny bezpieczeństwa aplikacji i origin).
  • Wykrywalność w logach: ataki testujące /.well-known/acme-challenge/* są często ignorowane jako „ruch od certyfikatów”. Ten incydent przypomina, że to także atrakcyjny wektor skaningu.

Rekomendacje operacyjne / co zrobić teraz

Cloudflare deklaruje, że poprawka jest wdrożona i „nie trzeba nic robić”. Mimo to, z perspektywy obrony w głąb (defense-in-depth) warto potraktować tę historię jako checklistę:

  1. Nie opieraj ochrony wyłącznie na WAF/CDN
    • Zabezpiecz origin: reguły na reverse-proxy / ingress (np. NGINX/Envoy), WAF aplikacyjny po stronie origin, rate limiting, sensowne ACL.
  2. Ogranicz dostęp do origin tylko do Cloudflare
    • Firewall/ACL na IP (tam gdzie to ma sens), lub rozwiązania w rodzaju „authenticated origin pulls”/mTLS, prywatne połączenia do origin.
  3. Przejrzyj logi pod kątem anomalii na /.well-known/acme-challenge/
    • Nietypowe metody, nietypowe nagłówki, skoki wolumenu, próby traversal/parametry w URL, korelacja z błędami aplikacji.
  4. Ustal politykę dla /.well-known/
    • Nie blokuj w ciemno ACME (złamiesz automatyczne odnawianie certyfikatów), ale rozważ twardsze reguły na origin: np. tylko GET/HEAD, minimalne odpowiedzi, brak routingu aplikacyjnego „na skróty”.
  5. Testuj scenariusze bypassu
    • W pentestach/ASV dodaj do standardu: sprawdzanie wyjątków, ścieżek serwisowych, „well-known”, healthchecków, callbacków oraz integracji z CA.

Różnice / porównania z innymi przypadkami (jeśli dotyczy)

To nie jest klasyczna „podatność RCE” – raczej błąd granicy bezpieczeństwa na styku automatyzacji certyfikatów i ochrony HTTP:

  • WAF/CDN często ma wyjątki funkcjonalne (challenge paths, health endpoints, integracje botów, webhooki).
  • Błędy w wyjątkach są szczególnie zdradliwe, bo atakujący nie musi łamać reguł — wystarczy znaleźć „korytarz serwisowy”, który reguły omija.
  • W tym sensie analogia „front door vs side door” dobrze oddaje charakter ryzyka.

Podsumowanie / kluczowe wnioski

  • Ścieżki serwisowe typu /.well-known/acme-challenge/ są niezbędne dla automatyzacji TLS, ale stanowią też powierzchnię ataku.
  • W opisywanym przypadku błąd w logice edge mógł warunkowo wyłączyć część WAF i przepuścić żądania do origin, co zwiększało ryzyko nadużyć zależnych od podatności aplikacji po stronie origin.
  • Cloudflare wdrożył poprawkę (27 października 2025) i deklaruje brak dowodów na wykorzystanie, ale najlepszą lekcją jest klasyczne: defense-in-depth i twardy origin.

Źródła / bibliografia

  1. Cloudflare – opis podatności i mitigacji: „How we mitigated a vulnerability in Cloudflare’s ACME validation logic” (The Cloudflare Blog)
  2. The Hacker News – streszczenie i oś czasu wdrożenia poprawki (The Hacker News)
  3. RFC 8555 – specyfikacja ACME (rfc-editor.org)
  4. The Register – kontekst ryzyka „bocznego wejścia” i komentarze dot. bypassu (The Register)