昨天突然看到 Flex SDK 居然大幅度發布安全性更新
不是都要捐給 Apache 了嗎?
從 3.0.0 一路到 4.5.1 全部都有更新
而最新的 4.6 則不受影響,可以參考以下文章

Security update available for Adobe Flex SDK (APSB11-25)
Flex Security Issue APSB11-25

只要版號後面加上 A 的都是安全更新過的,e.g. Flex 4.5.1.21328A
另外 Adobe 也提供了補救工具 APSB11_25_Patch_Tool.air
可以直接對既有的 SWF 進行偵測並修復
詳細使用請參考上面連結說明

很好奇動作這麼大,到底是什麼樣的漏洞?
根據文件說明找了原始碼 mx.modules.ModuleManager.as
內的 inner class ModuleInfo 的 load() function

  public function load(applicationDomain:ApplicationDomain = null,
                       securityDomain:SecurityDomain = null,
                       bytes:ByteArray = null,
                       moduleFactory:IFlexModuleFactory = null):void

Flex SDK 4.5.1,在 ModuleManager.as 的 463 行
原本是這樣

      c.securityDomain = securityDomain;
      if (securityDomain == null && Security.sandboxType == Security.REMOTE)
          c.securityDomain = SecurityDomain.currentDomain;

安全更新後變成這樣

      // setting securityDomain is not allowed on non-REMOTE sandboxes
      if (securityDomain != null && Security.sandboxType == Security.REMOTE)
          c.securityDomain = securityDomain;

簡單講就是「對於非 REMOTE 沙箱應用,不允許設定外部 Module 的 securityDomain」

好像對企業用戶本地端 App 才有影響吧
至今做過的應用幾乎全部跑在網頁上,連 Module 都很少用到
無法感受到這有多嚴重…