CVE-2024-21490

리도스 취약점
영향
AngularJS
>=1.3.0
in
AngularJS
패치 사용 가능
이 취약점은 HeroDevs에서 제공하는 네버엔딩 지원(NES) 버전에서 수정되었습니다.

재현 단계

Angular 1.3.0 버전부터 정규식 서비스 거부(ReDoS) 공격을 수행할 수 있습니다. 패키지는 정규식을 사용하여 ng-srcset 지시어의 값을 분할하기 때문에 악의적인 공격자가 안전하지 않은 정규식을 신중하게 작성하면 치명적인 역추적을 유발하고 시스템 리소스를 독점할 수 있습니다. 이 익스플로잇을 시연하는 개념 증명은 StackBlitz에서 확인할 수 있습니다.

문제 해결

이 익스플로잇에 대한 수정 사항은 AngularJS XLTS/NES 버전 1.9.1 및 1.5.19에서 사용할 수 있으며 사이트 소유자는 해당 버전으로 업데이트해야 합니다.

학습 및 예방

리도스 공격은 표적 시스템이 오랜 시간이 걸리는 정규식 패턴 일치를 해결하려고 시도하여 시스템의 합법적인 사용자에 대한 서비스를 거부합니다. 이는 서비스 거부(DDoS) 공격의 한 형태입니다.

공격에서 정규식 엔진은 일치하는 항목을 찾기 위해 일련의 단계를 실행합니다. 이러한 단계 중 일부는 빠르게 완료될 수 있지만 다른 단계, 특히 실패하는 단계는 훨씬 더 오래 걸립니다. 이 경우 공격자가 신중하게 만든 정규식을 브라우저가 해결하려고 시도할 때 브라우저는 다른 일치 항목을 역추적하여 결과를 반환하는 데 상당한 시간이 소요될 수 있습니다.

결론

이 취약점에 설명된 수정 사항은 1.9.1에 포함되어 있으며, 아직 Angular 1.5를 사용 중인 HeroDevs AngularJS 네버엔딩 서포트 고객도 즉시 사용할 수 있습니다. 히어로데브 네버엔딩 서포트 구독을 통해 안심하고 사용하려면 지금 바로 영업팀에 문의하세요.

리소스

NIST 2024-21490 항목