Framework Koa dla Node.js zawiera podatność typu ReDoS (Regular Expression Denial of Service) wynikającą z użycia nieprawidłowego wyrażenia regularnego do parsowania nagłówków HTTP. Może zostać wykorzystana przez atakującego do przeciążenia serwera i spowodowania niedostępności usługi.
▸ Pokaż oryginał (EN)
Koa is expressive middleware for Node.js using ES2017 async functions. Prior to versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3, Koa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack. Versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3 fix the issue.
Podatność dotyczy parsowania nagłówków HTTP `X-Forwarded-Proto` oraz `X-Forwarded-Host` za pomocą tzw. 'evil regex' — wyrażenia regularnego podatnego na katastrofalne cofanie (catastrophic backtracking). Atakujący może wysłać specjalnie spreparowane żądanie HTTP zawierające odpowiednio skonstruowaną wartość tych nagłówków. Przetworzenie takiego żądania powoduje wykładnicze wydłużenie czasu wykonania wyrażenia regularnego, co prowadzi do blokady wątku Node.js i niedostępności aplikacji.
Atakujący bez uwierzytelnienia może doprowadzić do odmowy usługi (DoS) zarówno w kontekście samej aplikacji, jak i systemu, na którym działa, skutecznie uniemożliwiając obsługę legalnych żądań.
Należy zaktualizować Koa do wersji 0.21.2, 1.7.1, 2.15.4 lub 3.0.0-alpha.3 (w zależności od używanej gałęzi), w których problem został naprawiony. Dodatkowo warto rozważyć filtrowanie lub walidację nagłówków `X-Forwarded-Proto` i `X-Forwarded-Host` na poziomie reverse proxy lub firewalla przed przekazaniem ich do aplikacji.
Koa (koajs/koa) w wersjach wcześniejszych niż 0.21.2, 1.7.1, 2.15.4 oraz 3.0.0-alpha.3
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/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:XKoajs Koa
APPKoajs3.0.0< 0.21.21.0.0 – 1.7.1 (bez)2.0.0 – 2.15.4 (bez)
Powiązane podatności
Koa is middleware for Node.js using ES2017 async functions. Prior to versions 3.1.2 and 2.16.4, Koa's `ctx.hos...
Koa is expressive middleware for Node.js using ES2017 async functions. In versions 2.16.2 to before 2.16.3 and...
Koa is expressive middleware for Node.js using ES2017 async functions. In koa < 2.16.1 and < 3.0.0-alpha.5, pa...
A vulnerability, which was classified as problematic, was found in KoaJS Koa up to 3.0.0. Affected is the func...
@koa/cors npm provides Cross-Origin Resource Sharing (CORS) for koa, a web framework for Node.js. Prior to ver...