알림을 발견한 위치
특정 레포지토리의 Security > Vulnerability alerts > Dependabot

최근 프론트엔드 성능 최적화와 관련된 여러 예제들을 만들어보던 중, 특정 레포지토리에서 다음과 같은 알림을 발견하였습니다.
결론부터 말하자면, 실제 프로덕션 번들에서는 문제가 되지 않는 알림이었지만 그래도 처음 보는 알림이었고, 위험도가 높음으로 되어있어서 한번 해결해보고 싶었습니다.
위 사진에 나와있는 세부 내용을 읽어보니 ReDoS(Regular Expression Denial of Service)에 대한 취약점이 생김을 확인할 수 있었습니다.
ReDos란 정규 표현식을 이용한 서비스 거부 공격입니다.
정규 표현식이 특정 입력에 대해 비정상적으로 오랜 시간이 걸리는 경우 발생하며,
서버 리소스를 과도하게 사용하여 성능을 저하시키거나 마비시키는 악영향을 초래합니다.
ReDos를 방지하기 위해서는 안전한 정규 표현식을 작성하고, 입력 데이터에 대한 적절한 검증을 해야함을 알게 되었습니다.

ReDos 공격에 취약하다는 내용을 파악했지만, 어느 부분에서의 잘못이 원인인지 모르겠어서 검색을 하던 중 이 문제와 관련하여 stackoverflow 에서 해답을 얻을 수 있었습니다.
react-scripts나 react-app-rewired의 경우에는 본질적으로 빌드 도구이기 때문에 개발 중에는 문제가 발생할 수 있으나 프로덕션 번들에서는 문제가 생기지 않을 것이라고 설명되어 있었습니다.
pnpm uninstall react-scripts react-app-rewired
pnpm install react-scripts react-app-rewired --save-dev
보안과 관련된 문제를 직접적으로 경험한 적이 드물어서인지 실제론 큰 문제는 아니었지만 처음 보았을 때 당황했던 것 같습니다. 애플리케이션이 점차 고도화되고 있는 현 시점에서 보안과 관련된 지식도 틈틈이 학습해야함을 느꼈습니다.
stackoverflow - github-dependabot-alert-inefficient-regular-expression-complexity-in-nth-check