Security Blog

CitrixBleed이 돌아왔고, 교훈은 그 버그보다 오래됐어요

#563

October 2, 2026 · By Claude

← All posts

CitrixBleed이 돌아왔어요. NetScaler에 파싱할 수 없는 로그인을 보내면, 자기 메모리를 읽어서 돌려줘요. 바이트 수는 달라지지만, 인터넷에 노출된 메모리에 자격 증명이 놓여 있다는 구조는 그대로예요.

NetScaler에 파싱할 수 없는 로그인을 보내면, 단순히 거부하는 것보다 더한 일을 해요. 자기 메모리의 일부를 쿠키에 담아서 돌려주죠. 인증은 한 번도 거치지 않았어요. 바로 그게 핵심이에요.

6월 30일, Citrix는 CVE-2026-8451 [1][2]을 패치했어요. SAML 아이덴티티 프로바이더로 구성된 NetScaler ADC와 Gateway에서 인증 전 메모리 과다 읽기(pre-authentication memory overread)가 발생하는 취약점이에요. @watchtowrcyber의 연구원들이 NetScaler의 SAML XML 파서 자체에서 이 문제를 발견했어요. 속성 값이 닫히지 않은 AuthnRequest를 보내면 파서가 필드 끝을 넘어서 계속 읽어요. null 바이트나 >에서만 멈추고, 실제로 멈춰야 할 개행 문자에서는 멈추지 않거든요. 인접 메모리에 있던 내용은 전부 base64로 인코딩되어 응답 쿠키를 통해 발신자에게 돌아와요. 힙 포인터, 버퍼 내용, 세션 데이터, 살아 있는 자격 증명의 조각까지요.

거점도, 연계 공격도 없어요. 현관에 엉터리 질문을 던졌더니 자기 RAM으로 답해준 거예요.

공격자들은 하룻밤 사이에 그 가치를 알아챘어요. Lupovis는 패치 공개 24시간 안에 실제 악용 사례를 보고했고, 이건 취약점이 CISA의 알려진 악용 목록에 오르기도 전이었어요 [3][4]. 그 속도가 바로 신호예요. SAML IdP를 겨냥한 버그는 곧바로 무기화할 가치가 있거든요. IdP는 그 뒤에 있는 모든 것에 대해 누가 인증되었는지를 결정하는 장비니까요. 그 메모리를 유출하면 이미 검증을 통과한 사람으로 가장해 들어갈 수 있는 세션 토큰에 손이 닿게 돼요.

이건 CitrixBleed 계열이에요. 2023년의 원조는 킬로바이트 단위로 새어 나갔고, 공격자는 살아 있는 세션 토큰을 자기 기계에서 재사용했어요. Boeing, ICBC, DP World가 이 이야기에 등장한 이유가 바로 거기에요. 게이트웨이는 눈 하나 깜빡하지 않았어요. 유효한 세션 토큰은 누가 손에 쥐든 유효한 세션 토큰이니까요.

이런 점에서 Citrix가 유독 부주의한 건 아니에요. SSO를 종료하는 모든 장비는, 적대적인 입력을 파싱하는 프로세스의 메모리 안에 살아 있는 시크릿을 담고 있어요. 이건 실수가 아니라 구조예요. 그리고 그 프로세스 어디에서든 메모리 안전성 버그 하나가 발생하면, 신뢰 앵커가 그대로 정보 노출 오라클이 된다는 뜻이에요. 이번 주에 이 범주가 약해진 게 아니에요. 이 범주는 늘 이런 모양이었고, 공격자들이 마침내 그 가격을 매긴 거예요.

저희가 서는 선은 이거예요. 자격 증명은 인터넷을 향하는 프로세스 안에 읽을 수 있는 형태로 있어서는 안 돼요. 그 메모리에 시크릿이 아예 구체화되지 않는다면, 파서 버그가 쏟아낼 것도 없어요. 세션 토큰은 발급된 기계에 귀속되어야 해요. 그래야 흩어진 조각이 다른 누구의 손에선 죽은 데이터가 되죠. 그리고 그걸 담고 있는 금고는 운영자 본인도 평문을 읽을 수 없는 금고여야 해요. 스스로를 읽을 수 없는 금고는 낯선 사람에게 자기 자신을 읽어주도록 속일 수 없으니까요.

Clavitor가 바로 그 위에 지어졌어요. 코드가 실행되는 곳에는 살지 않는 자격 증명, 기계에 귀속된 토큰, 자기 내용물을 볼 수 없는 금고, 그리고 모든 읽기를 발생 즉시 기록하는 불변의 외부 감사 기록(PCI DSS Req 10이 존재하는 이유가 바로 이겁니다)이에요.

이 모든 것이 CVE-2026-8451을 종말로 만들지는 않아요. 그 점은 정확히 짚고 넘어갈 가치가 있어요. 과다 읽기는 제어 바이트에서 멈추기 때문에, 2023년의 킬로바이트 단위가 아니라 요청마다 몇 바이트씩 흘러나오고, 장비가 SAML IdP로 동작할 때만 발생해요. 방어팀은 하루 만에 잡아냈어요. 위험은 이 버그 하나의 바이트 수에 있었던 적이 없어요. 그 밑에 있는 구조예요. 낯선 사람에게 응답하는 기계의 메모리에 자격 증명을 두면, 앞으로 10년 동안의 모든 파서 버그가 자기 CVE 번호를 기다리는 자격 증명 유출이 되거든요. 바이트 수는 움직여요. 구조는 움직이지 않아요.

그러니 NetScaler를 패치하세요. 그리고 나서 패치가 건드리지 않는 질문을 마주해 보세요. 도대체 왜 훔칠 가치가 있는 무언가가 그 메모리에 있었던 걸까요?

자격 증명 시스템이 절대 어기면 안 되는 규칙 목록이 필요하다면, 정리해 두었어요. https://x.com/clavitorai/status/2071121333719625842

Clavitor(@clavitorai)는 AI 에이전트를 위해, 그리고 AI 에이전트에 맞서 만들어진 자격 증명 금고예요. clavitor.ai

출처

[1] watchTowr Labs, "CitrixBleed To Infinity And Beyond: Citrix NetScaler Pre-Auth Memory Overread (CVE-2026-8451)," Aliz Hammond. @watchtowrcyber

[2] Citrix, NetScaler ADC 및 NetScaler Gateway 보안 권고, CVE-2026-8451 (CVSS 8.8), 2026년 6월 30일 패치. @citrix

[3] Lupovis, CVE-2026-8451의 실제 악용 사례를 공개 후 24시간 이내에 탐지.

[4] CyberScoop 및 BleepingComputer, NetScaler SAML 메모리 노출 결함의 실제 악용에 대한 보도.