按 Enter 到主內容區
:::

TWCERT-電子報

:::

電子學習平台Moodle登入介面具嚴重CSRF缺陷,現已修補

發布日期:
字型大小:
  • 發布單位:TWCERT/CC
  • 更新日期:2019-11-11
  • 點閱次數:758
電子學習平台Moodle登入介面具嚴重CSRF缺陷,現已修補

CVE編號

CVE-2018-16854

內文

●概述:
Moodle™原名Modular Object-Oriented Dynamic Learning Environment,即模組化物件導向動態學習環境,係開放原始碼的線上學習管理系統,以PHP開發前台,後台相容MySQL、PostgreSQL、MS SQL等資料庫,跨Linux、Windows平台支援全球150餘國、70種語系、1.27億用戶,如此份量的軟體,經分析其登入表單具存取控制破綻,因authenticate_user_login( )函數雖包含安全設計,然未實際驗證Token,無法攔截Cross-site Request Forgery入侵,官網自評該漏洞為嚴重程度,目前國內至少卅七所大學使用Moodle輔助課務,若遭駭客發動跨站台請求偽造,可能破壞選課、評分、學籍等資料可信度,近期Moodle Project已開發新版(3.6、3.5.3、3.4.6、3.3.9、3.1.15)改善上述瑕疵,建議各級學校計算機中心儘速部署適合版本。
●編註:
(1) Moodle程式缺陷
Moodle登入表單(login form)原本設計徒具安全機制,伺服器端以函數authenticate_user_login( )辯証用戶請求是否真實,該函數驗證範圍能擴展至令牌(Token),可檢查位於..\core\session\manager路徑之Token,若判斷為異常請求則駁回,然其預設狀態並未啟動此額外稽核項目。
當外掛式驗證工具shibboleth或「密碼變更」等類似操作運行時,使用authenticate_user_login( )驗證request的效果持續存在,其效力消逝之前,因缺乏令牌校驗程序,無法攔截Cross-site Request Forgery入侵,攻擊者注入新組態值$CFG->disablelogintoken即可逃避所有對表單內Token數據的偵測。
(2)CSRF概念
跨站台請求偽造(Cross-site request forgery:CSRF)攻擊,是挾制用戶在已登入的Web程式上執行非自願操作,XSS利用人對網站的信任,而CSRF利用網站對瀏覽器的信任,CSRF攻擊者以惡意鏈結訛詐用戶,操作瀏覽器去存取一個曾經成功認證身分的網站,並暗地執行某些工作(如郵件、訊息、轉帳、購物),由於該用戶browser已通過認證,因登入資訊尚未過期,故網站完全相信是真正用戶在執行,基礎驗證功能只能證實請求來自某人瀏覽器,卻不能保證是用戶自願發出。
由於惡意網址不拘形式,可能藏身於網頁任一角落,駭客也不需真正控制惡意網址所在網站,只需將其寄生在正當的論壇、部落格即可,server若疏於防禦,即使用戶閱覽熟稔網頁亦也有風險,攻擊者無法直接獲取用戶帳密、個資,只是假裝用戶名義,經瀏覽器執行不當操作。
由於CSRF本質在於欺騙用戶連結特定URL,故牽涉敏感資料時,要求瀏覽器提供非cookie,且無法事先偽造的資料,token,在表單中的一個資料項目token係偽亂數,隨form同步提交給server以供校驗。
(3)影響教學機構
據網路搜尋結果,國內大學至少37所使用Moodle:
臺灣師範、成功、淡江、景文、慈濟、政治、臺灣科大、義守、亞洲、暨南、清華、台灣首府、聖約翰、東吳、銘傳、東南、華梵、東海、中國科大、輔仁、大華、玄奘、屏東科大、臺南、康寧、樹德科大、海洋、中國醫藥、實踐、元智、朝陽科大、宏國德霖科大、長庚、嶺南、嘉義、中原、宜蘭。
而其他各級學校不便列舉,請各校計算機中心儘速更新軟體版本。

影響產品

Moodle 3.5.2以前版本 /Moodle 3.4.5以前版本/ Moodle 3.3.8以前版本 /Moodle 3.1.14以前版本

解決辦法

參考https://download.moodle.org/,下載Moodle 3.6、3.5.3、3.4.6、3.3.9、3.1.15等修補版。
回頁首