flawopen.com/インシデント/Citrix Bleed

Citrix Bleed:たった1つの戻り値の解釈ミスが多要素認証を無力化した理由

Critical — Session hijacking CWE-125: Out-of-bounds Read Disclosed October 2023
わかりやすく解説 (ELI5)

助手に「50文字しか入らないカードに伝言を写し、文字数を教えてほしい」と頼みます。助手は50文字を写し「元原稿は800文字でした」と報告します。あなたが別の人に「そのカードから800文字読み上げろ」と命じると、カードの50文字を読んだ後、机の上に置かれていた他人の秘密メモをそのまま読み続けてしまいました。

Why patching was not enough

This is the operational lesson teams repeatedly missed, and it mirrors the GitLab path traversal two years later. Upgrading the appliance stopped further memory disclosure — but any session tokens already stolen remained valid. Attackers who had harvested tokens before the patch simply continued using them afterwards.

Citrix's guidance was therefore explicit that remediation required both upgrading and terminating all active sessions on the appliance. Organisations that patched without killing sessions stayed compromised, and several high-profile intrusions followed exactly that path.

The lessons that actually transfer

FAQ

How is this different from Heartbleed?

Both are out-of-bounds reads that leak adjacent process memory to an unauthenticated attacker, and both leaked credentials. The underlying mistake differs: Heartbleed trusted an attacker-supplied length field directly, while Citrix Bleed trusted a length derived from a standard library function whose semantics were misunderstood.

How do I know whether tokens were stolen before I patched?

Often you cannot determine this conclusively from appliance logs, which is precisely why the guidance is to terminate all sessions unconditionally rather than attempt to establish exposure first.

Related reading

情報源および公式アドバイザリ