CVE-2021-23758은 Ajax.NET Professional(AjaxPro)에서 신뢰하지 않는 데이터를 역직렬화할 때 발생하는 취약점입니다. 임의의.NET 클래스가 역직렬화되면 원격 코드 실행(RCE)으로 이어집니다. 이 취약점이 CISA KEV(Known Exploited Vulnerabilities) 카탈로그에 등재됐고, Snyk 위협 인텔리전스에서도 실제 공격 시도가 보고됐습니다. 이론적 가능성이 아니라 야생(In-the-wild)에서 실제로 악용되고 있다는 뜻입니다. 점검과 대응이 시급합니다.
CVE-2021-23758 개요: Ajax.NET Professional(AjaxPro) 역직렬화 취약점이란
CVE-2021-23758은.NET 기반 웹 서비스에서 사용되는 Ajax.NET Professional(AjaxPro) 2 패키지에서 발견된 신뢰하지 않는 데이터 역직렬화 취약점입니다. CWE-502(Deserialization of Untrusted Data)로 분류됩니다. 공격자가 조작된 데이터를 전송해 임의의.NET 클래스를 역직렬화하면 대상 서버에서 원격 코드 실행(RCE)이 일어납니다.
Snyk 자료에 따르면 이 취약점은 2021년 11월 21일에 공개됐고, 발견자 크레딧은 Hans-Martin Münch(MOGWAI LABS)로 표시돼 있습니다. MOGWAI LABS의 어드바이저리(MLSA-2021-004)는 이를 미인증 원격 코드 실행 취약점으로 보고했습니다.
CISA KEV 등재 확인과 실무적 함의
미국 사이버보안 및 인프라 보안국(CISA)은 2026년 8월 26일에 CVE-2021-23758을 KEV 카탈로그에 공식 등재했습니다. CISA KEV는 실제 악용 증거가 확인된 취약점만 관리하는 리스트입니다. 여기에 등재됐다는 것은 공격자가 해당 취약점으로 실제 시스템을 타격하고 있다는 강력한 지표가 됩니다.
CISA는 KEV 등재와 함께 미국 연방기관을 대상으로 2026년 9월 9일까지 수정 조치를 완료하도록 기한(Due Date)을 명시했습니다. CISA KEV 페이지에서는 이 취약점을 ‘Ajax.NET Professional Deserialization of Untrusted Data Vulnerability’로 설명하면서, 벤더의 지침에 따라 완화 조치를 적용하고 CISA의 BOD 26-04를 준수할 것을 권고하고 있습니다.
영향 범위 및 버전 분석
이 취약점의 영향 대상 패키지와 버전 범위는 출처별로 표기 방식에 차이가 있습니다. 실질적으로는 광범위한 버전이 영향권에 포함됩니다.
- Snyk 기준: 취약 대상은
ajaxpro.2패키지이며, 취약 버전 범위는versions [0,]로 표기돼 특정 상한이 확인되지 않는 넓은 범위가 영향권이라는 분석입니다. - GitHub 및 MOGWAI LABS 기준:
AjaxNetProfessional,AjaxPro.2,Joint.AjaxPro,JointAjax.AjaxPro등 4개 NuGet 패키지에서 21.12.21.1 미만 버전이 영향을 받는다고 명시했습니다.
여기서 더 주의할 부분은 패치 적용 가능 여부입니다. GitHub 공식 어드바이저리(GHSA-6r7c-6w96-8pvw)에 따르면 AjaxNetProfessional 패키지는 21.11.29.1 버전에서 수정됐지만, AjaxPro.2를 포함한 나머지 3개 패키지에는 패치 버전이 존재하지 않습니다. 모든 문제를 해결하는 워크어라운드 역시 제공되지 않는다고 명시돼 있습니다.
치명도 평가 및 실제 악용 정황
치명도 점수는 평가 기관과 기준에 따라 제각각입니다.
| 평가 기관/기준 | CVSS 점수/등급 | 비고 |
|---|---|---|
| NVD (Snyk 인용) | 9.8 (Critical) | 가장 높은 치명도 평가 |
| Snyk 자체 평가 | 8.1 (High) | CVSS 3.1 기준 |
| MOGWAI LABS | Critical | 벡터: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| Snyk 권장 점수 | 6.8 (High) | 별도 표기된 Recommended 점수 |
점수 자체보다 주목할 것은 실제 공격 지표입니다. Snyk 위협 인텔리전스에 따르면 이 취약점의 Exploit Maturity는 ‘Attacked’ 상태로, 실제 공격 시도 또는 성공 사례가 보고된 상태입니다. Snyk 조회 시점 기준 EPSS(Exploit Prediction Scoring System) 확률은 83.63%로 100번째 백분위수에 올라 있습니다. 앞으로 악용될 가능성이 매우 높다는 신호입니다.
DevSecOps 관점의 대응 방안
현재 AjaxPro.2 패키지는 공식 패치 버전이 확인되지 않습니다. CISA는 EoL(End of Life) 또는 EoS(End of Support) 가능성을 고려해 해당 라이브러리의 사용 중단 또는 지원되는 최신 버전으로의 전환을 권고하고 있습니다.
보안 운영 인력과 DevSecOps 담당자가 짚어 볼 지점은 다음과 같습니다.
- 패키지 인벤토리 전수 조사: 프로젝트 내에서
ajaxpro.2및AjaxNetProfessional등 관련 NuGet 패키지를 쓰고 있는지 확인합니다. - 버전 확인: 사용 중인 버전이 21.12.21.1 미만인지 확인하고, 특히 패치가 제공되지 않는
AjaxPro.2패키지 사용 여부를 중점적으로 점검합니다. - 대체 제안 및 마이그레이션: 패치가 없는 패키지라면 벤더의 지침과 CISA의 권고에 따라 라이브러리 교체 또는 최신 GitHub 버전으로의 업데이트를 검토합니다.
- 모니터링 강화: 역직렬화 공격 패턴이 유입되는지 웹 애플리케이션 방화벽(WAF) 및 침입 탐지 시스템(IDS) 로그에서 지속적으로 모니터링합니다.
CVE-2021-23758은 단순한 취약점 보고 수준을 넘어섰습니다. CISA KEV 등재와 실제 공격 시도 보고가 결합된 고위험 상태입니다. 패치 버전이 부재한 패키지가 포함돼 있다는 점까지 고려하면, 단순 업데이트가 아니라 아키텍처 관점의 라이브러리 교체 검토가 실무적인 해결책입니다.