FileCodeBox przed wersją 2.4 zawiera podatność umożliwiającą ominięcie mechanizmu ograniczania liczby żądań (rate-limit) poprzez manipulację nagłówkami HTTP. Nieuprawniony atakujący może w efekcie enumerować kody udostępniania i pobierać pliki innych użytkowników bez jakiejkolwiek autoryzacji.
▸ Pokaż oryginał (EN)
FileCodeBox before 2.4 contains a rate-limit bypass vulnerability in the IPRateLimit class that allows unauthenticated attackers to circumvent request throttling by supplying attacker-controlled X-Real-IP and X-Forwarded-For headers without verification of trusted reverse proxy origin. Attackers can supply unique spoofed IP values on each request to enumerate all possible share codes and retrieve other users' files without authentication.
Klasa IPRateLimit w FileCodeBox opiera identyfikację klienta na wartościach nagłówków X-Real-IP oraz X-Forwarded-For, nie weryfikując przy tym, czy żądanie pochodzi z zaufanego reverse proxy. Atakujący może przy każdym kolejnym żądaniu podawać unikalną, sfałszowaną wartość adresu IP w tych nagłówkach, przez co mechanizm throttlingu nigdy nie blokuje danego klienta. Pozwala to na przeprowadzenie ataku brute-force przeciwko kodom udostępniania plików (share codes) w tempie nieograniczonym przez rate-limit. W konsekwencji atakujący jest w stanie odgadnąć poprawne kody i pobrać pliki należące do innych użytkowników systemu.
Atakujący bez żadnego uwierzytelnienia może wyenumerować wszystkie możliwe kody udostępniania i uzyskać nieautoryzowany dostęp do plików innych użytkowników, co prowadzi do pełnego ujawnienia przechowywanych danych (naruszenie poufności).
Należy zaktualizować FileCodeBox do wersji 2.4 lub nowszej. Poprawka dostępna jest w oficjalnym wydaniu V2.4 w repozytorium GitHub projektu (commit 1b6d8e7277d3cfa34dc7a85803731d927b2147da). Dodatkowo zaleca się skonfigurowanie reverse proxy tak, aby nagłówki X-Real-IP i X-Forwarded-For były ustawiane wyłącznie przez zaufaną infrastrukturę sieciową, a nie akceptowane bezpośrednio od klientów.
FileCodeBox w wersjach przed 2.4
Podatność sklasyfikowana jako CWE-348 (Use of Less Trusted Source). Mechanizm ataku polega na spoofingu nagłówków HTTP w celu obejścia rate-limitingu, co umożliwia brute-force kodów udostępniania. Szczegóły techniczne dostępne w zgłoszeniu issue #479 oraz w analizie VulnCheck.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X