Podatność w module Plack::Middleware::XSendfile (wersje do 1.0053) dla Perl umożliwia złośliwemu klientowi manipulację nagłówkami HTTP w celu wymuszenia odczytu dowolnych plików z serwera. Ze względu na krytyczny wynik CVSS 9.1 i brak wymaganych uprawnień, podatność stanowi poważne zagrożenie dla serwisów działających za odwrotnym proxy nginx.
▸ Pokaż oryginał (EN)
Plack::Middleware::XSendfile versions through 1.0053 for Perl can allow client-controlled path rewriting. Plack::Middleware::XSendfile allows the variation setting (sendfile type) to be set by the client via the X-Sendfile-Type header, if it is not considered in the middleware constructor or the Plack environment. A malicious client can set the X-Sendfile-Type header to "X-Accel-Redirect" to services running behind nginx reverse proxies, and then set the X-Accel-Mapping to map the path to an arbitrary file on the server. Since 1.0053, Plack::Middleware::XSendfile is deprecated and will be removed from future releases of Plack. This is similar to CVE-2025-61780 for Rack::Sendfile, although Plack::Middleware::XSendfile has some mitigations that disallow regular expressions to be used in the mapping, and only apply the mapping for the "X-Accel-Redirect" type.
Middleware nie wymaga, aby typ mechanizmu sendfile (variation setting) był ustalony w konstruktorze lub środowisku Plack — klient może go kontrolować, przesyłając nagłówek HTTP X-Sendfile-Type. Atakujący ustawia ten nagłówek na wartość "X-Accel-Redirect", a następnie za pomocą nagłówka X-Accel-Mapping definiuje mapowanie ścieżki, wskazując dowolny plik na serwerze. W efekcie nginx serwuje plik wskazany przez atakującego, a nie ten zatwierdzony przez aplikację. Podatność jest podobna do CVE-2025-61780 dotyczącego Rack::Sendfile, choć Plack::Middleware::XSendfile nie dopuszcza wyrażeń regularnych w mapowaniu i ogranicza atak wyłącznie do trybu X-Accel-Redirect.
Atakujący bez żadnych uprawnień może uzyskać dostęp do dowolnych plików na serwerze (np. plików konfiguracyjnych, kluczy prywatnych, danych użytkowników), co prowadzi do krytycznego naruszenia poufności i integralności przechowywanych informacji.
Należy niezwłocznie zaprzestać korzystania z Plack::Middleware::XSendfile — od wersji 1.0053 moduł jest oznaczony jako przestarzały (deprecated) i zostanie usunięty w przyszłych wydaniach Plack. Należy zastosować patche dostępne u producenta zgodnie z referencjami oraz zweryfikować konfigurację middleware pod kątem jawnego ustawienia typu sendfile w konstruktorze lub środowisku Plack, a nie pozostawiania tej decyzji klientowi.
Plack::Middleware::XSendfile w wersjach do 1.0053 włącznie dla języka Perl, stosowany w serwisach działających za odwrotnym proxy nginx.
Moduł Plack::Middleware::XSendfile został uznany za przestarzały (deprecated) począwszy od wersji 1.0053 i będzie usunięty z przyszłych wydań Plack. Podatność jest koncepcyjnie zbliżona do CVE-2025-61780 dotyczącego Rack::Sendfile.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NMiyagawa Plack\
APPMiyagawa\