FlawOpen

flawopen.com/Teardowns/cve-2026-88779-citrix-netscaler-saml-memory-overflow

● CVE-2026-88779 · CVSS v4 8.7 · 높음
보안 연구 · FlawOpen

CVE-2026-88779: Citrix NetScaler SAML 메모리 오버플로

CVE-2026-88779은 고객이 관리하는 Citrix NetScaler ADC 및 Gateway의 메모리 오버플로 취약점입니다. SAML 인증이 구성된 배포 환경에 영향을 주며, 표적 공격에서 서비스 거부를 유발하는 데 악용되고 있습니다. Citrix는 고객 데이터 무결성 영향은 확인하지 못했다고 밝혔습니다.[1], [2], [3]

💡 알기 쉬운 설명 (ELI5)

대기 줄에는 정원이 있습니다. 직원이 남은 공간보다 큰 자리를 차지하는 번호표를 받으면 창구가 멈춰 모두가 서비스를 받지 못할 수 있습니다. 이 결함은 특정 SAML 경로에서 메모리 경계를 넘습니다. 확인된 영향은 가용성이며, 공개적으로 확인된 RCE가 아닙니다.[1]

핵심 개념 및 용어

SAML SP / IdP
SAML 인증의 서비스 공급자와 ID 공급자 역할이며, Citrix는 두 구성을 모두 전제 조건으로 명시합니다.[1]
CWE-119
메모리 버퍼 경계 안으로 작업을 적절히 제한하지 못하는 약점입니다.[1]
Global Deny List
Citrix 가상 패치 기능이며 문서화된 조건에서만 임시 완화책으로 사용합니다.[2]
관련 CVE-2026-88771
별도의 CWE-20 인증 없는 RCE는 모든 고객 관리형 배포에 영향을 줍니다. 이는 이 문서의 SAML 조건부 CWE-119 서비스 거부 취약점과 별개이며, 두 취약점 모두 Citrix 공지 CTX697096에 있고 수정 릴리스 계열을 공유합니다.[6]

프레임워크 매핑

근본 원인 분석 (Root Cause)

Citrix는 CVE-2026-88779을 CWE-119, CVSS 4.0 8.7로 분류하고 NetScaler ADC 또는 Gateway가 SAML 서비스 공급자(SP)나 ID 공급자(IdP)로 구성된 경우 메모리 오버플로로 서비스 거부가 발생할 수 있다고 설명합니다. Citrix 보충 지침은 Gateway 또는 AAA 기능과 함께 쓰는 SAML 인증을 점검 대상으로 명시하고, 완화되지 않은 배포에 대한 표적 공격을 확인했습니다. 반복적으로 트리거되면 서비스가 계속 중단될 수 있습니다. Citrix는 고객 데이터 무결성 영향은 확인하지 못했습니다. 취약한 소스 코드 행이나 패치 diff는 공개되지 않았습니다. 아래 C 코드는 일반적인 경계 검사를 설명할 뿐이며 NetScaler 코드나 재현이 아닙니다. 구성에서 add authentication samlAction(SAML SP) 또는 add authentication samlIdPProfile(SAML IdP)를 확인하고 Gateway/AAA 구성을 평가한 뒤 수정 빌드를 설치하세요. Global Deny List는 Citrix가 명시한 버전과 콘솔 조건을 충족할 때만 임시 완화책으로 사용하세요.[1], [2]

CVE-2026-88779 적용 범위 및 수정 매트릭스

영역문서화된 조건 또는 버전운영자 조치
영향받는 구성고객 관리 ADC/Gateway에서 Gateway/AAA 용도로 SAML SP 또는 IdP가 구성되어 있습니다.add authentication samlAction 및 add authentication samlIdPProfile을 확인하고 Gateway/AAA 컨텍스트를 평가하세요.
ADC/Gateway 14.114.1-73.41 이전은 영향받으며 14.1-73.41 이상에서 수정됐습니다.해당 계열의 수정 빌드로 업그레이드하세요.
ADC/Gateway 13.113.1-64.28 이전은 영향받으며 13.1-64.28 이상에서 수정됐습니다.해당 계열의 수정 빌드로 업그레이드하세요.
ADC 14.1-FIPS14.1-73.41 FIPS 이전은 영향받으며 14.1-73.41 FIPS 이상에서 수정됐습니다.FIPS 수정 빌드로 업그레이드하고 표준 빌드 번호를 대신 사용하지 마세요.
ADC 13.1-FIPS/NDcPP13.1-37.282 이전은 영향받으며 13.1-37.282 이상에서 수정됐습니다.해당 FIPS/NDcPP 수정 빌드로 업그레이드하세요.
Global Deny List 적용 가능 중간 빌드14.1-73.37 ≤ 빌드 < 14.1-73.41; 13.1-64.23 ≤ 빌드 < 13.1-64.28.Citrix의 모든 전제 조건을 확인한 경우에만 임시 virtual patch로 사용하세요. 업그레이드를 대체하지 않습니다.
Global Deny List 전제 조건Cloud Connect 또는 Console service가 연결된 NetScaler Console, virtual patching 활성화, 기본 signature v24 이상.show appfw signatures와 stat denylist global AAA_REQUEST로 확인하고 활성화 전에 Citrix 최신 지침을 확인하세요.

단계별 공격 실행 흐름

단계 1

SAML 요청이 구성된 서비스에 도달

네트워크 요청이 Citrix 조건을 충족하는 배포 환경의 SAML 인증 경로에 도달합니다.[1], [3]

단계 2

메모리 경계 결함이 트리거됨

메모리 경계 처리 결함이 트리거될 수 있으며, Citrix는 서비스 거부와 표적 공격을 보고했습니다.[1]

단계 3

인증 서비스가 사용할 수 없게 됨

반복 트리거는 서비스 중단을 지속시킬 수 있습니다. 무결성 영향은 확인되지 않았으므로 이 CVE를 RCE로 표현하지 마세요.[1], [2]

단계 4

범위를 확인하고 완화한 뒤 업데이트

SAML과 Gateway/AAA 구성을 확인하고 해당되는 경우에만 Global Deny List를 임시 적용한 뒤 수정 빌드로 업데이트하세요.[1], [2]

소스 코드 비교: 취약한 구현 vs 보안 패치

이 C 예시는 일반적인 버퍼 용량 검사를 설명합니다. Citrix는 취약한 NetScaler 소스 코드나 패치 diff를 공개하지 않았습니다. CVE 재현이 아니며, 공식 해결책은 Citrix 수정 빌드입니다. Global Deny List는 조건이 맞을 때만 임시 조치로 사용하세요.

소스 코드 발췌: 일반 C 경계 검사 예시이며 Citrix NetScaler 소스 코드가 아닙니다

취약한 구현
#include <stddef.h>
#include <stdint.h>
#include <string.h>

int copy_field(uint8_t *dst, const uint8_t *src, size_t len) {
    /* 일반적인 취약 패턴: 입력 길이를 dst 용량과 비교해 확인하지 않습니다. */
    memcpy(dst, src, len);
    return 1;
}
보안 강화 패치
#include <stddef.h>
#include <stdint.h>
#include <string.h>

int copy_field(uint8_t *dst, size_t dst_capacity,
               const uint8_t *src, size_t len) {
    if (len > dst_capacity) return 0;
    memcpy(dst, src, len);
    return 1;
}

엔지니어링 및 시스템 보안 강화 체크리스트

출처