この文書は、米国 IBM 社の資料 ("Lotus Domino Web Server “Accept-Language” Stack Overflow ") を翻訳した参考文書です。日本語環境での検証は行っておりませんのでご注意ください。
問題 (Problem)
Lotus Domino Web サーバーの潜在的な DoS 攻撃に関する脆弱性の問題が、MWR InfoSecurity より IBM Lotus に報告されました。
この問題は、"Accept - Language" リクエストヘッダに特定の内容を含む HTTP リクエストを Lotus Domino Web サーバーが処理したときに発生する可能性があります。
アドバイザリー (注意喚起) へは下記のリンクからアクセスできます。
MWR InfoSecurity - Publications
CVE 識別番号として CVE-2008-2240 が付与されています。
攻撃者がこの脆弱性を利用するためには、下記の手順を踏む必要があります。
・ Lotus Domino Web Server タスク (HTTP) が有効になっている
・ 攻撃者が Lotus Domino Web サーバーに接続する
・ 攻撃者が脆弱性の問題を引き起こす "Accept - Language" ヘッダを含む HTTP リクエストを作成する
・ Lotus Domino Web サーバーが悪意あるリクエストを処理することにより、DoS 攻撃が引き起こされる
Lotus Domino サーバーがクラッシュすると、NSD に下記のスタックトレースが出力されます。
nlsccstr.dll!ccSTRIOpenStrSessionInt(LNO_INFO * * phStr=0x61616161, const void * pCountry=0x61616161, const void * pLanguage=0x61616161, cctSTRCharSettag CSId=1633771873, unsigned char OptGroup='a', unsigned short * pSubstChar=0x612fb17c, cctSTRIAnchorBlockTag * pAnchorBlock=0x06054ae4, unsigned long StrSessionFlags=0) Line 898 + 0xe C 61616161()
nnotes.dll!OSGetCachedCLS(unsigned short CSID=256, char * CtryLang=0x078d146c) Line 2674 + 0x46 C
nnotes.dll!DominoUnEscape(unsigned short TokenType=1, int bLmbcsInput=0, const char * In=0x078e206f, unsigned short InLen=22, char * Out=0x07ddf078, unsigned short * OutLen=0x07ddf004, char * pLang=0x078d146c) Line 1249 + 0xe C
nnotes.dll!TranslateURITokenToLMBCS(const char * EncType=0x017a73c0, unsigned short TokenType=1, int bLmbcsInput=0, const char * In=0x078e206f, unsigned short InLen=22, char * Out=0x07ddf078, unsigned short * OutLen=0x07ddf004, char * pLang=0x078d146c) Line 406 + 0x23 C
ninotes.dll!CmdURL::DecSegmentFull(unsigned short type=1, char * segment=0x078e206f, int segmentLen=22, char * buf=0x07ddf078, int bufLen=32, int isLmbcs=0) Line 1700 + 0x2d C++
ninotes.dll!CmdURL::DecodeSegment(unsigned short type=1, char * segment=0x078e206f, int segmentLen=22, char * buf=0x07ddf078, int bufLen=32, int isLmbcs=0) Line 1595 C++
ninotes.dll!CmdURL::SetCommandId() Line 913 + 0x2b C++
ninotes.dll!CmdURL::Init(int & retIsOurs=0, unsigned int httpMethodType=2, const char * reqUrl=0x07544ee0, const char * reqPath=0x07544af0, const char * reqQuery=0x07544afc, unsigned long fl=2, unsigned short (void *, unsigned short, char *, void *, UNIVERSALNOTEID_tag *, unsigned short *, char *, int)* lookupFcn=0x014b8720, void * lookupData=0x07ddf438) Line 341 + 0xc4 C++
ninotes.dll!InotesHTTPPreAuthenticate(_InotesHTTPrequest * ihReq=0x07544690) Line 2434 + 0x78 C++
nhttpstack.dll!HTInotesRequest::PreAuthenticate() Line 758 + 0xc C++
nhttpstack.dll!HTRequestExtContainer::PreAuthenticate() Line 625 + 0x19 C++
nhttpstack.dll!HTRequest::ProcessRequest() Line 1690 + 0x21 C++
nhttpstack.dll!HTSession::StartRequest() Line 551 + 0x11 C++
nhttpstack.dll!HTWorkerThread::CheckForWork() Line 216 C++
nhttpstack.dll!HTWorkerThread::ThreadMain() Line 83 C++
nhttpstack.dll!HTThreadBeginProc(void * arg=0x02b980f4) Line 40 C++
nnotes.dll!ThreadWrapper(void * Parameter=0x00000000) Line 1037 C
kernel32.dll!7c80b683()
解決策 (Solution)
本件は問題報告番号 MKIN79DR9S として Lotus Quality Engineering に報告され、Lotus Domino 7.0.3 Fix Pack 1 (FP1)、7.0.4 および 8.0.1 で修正されました。
補足情報 (Supporting Information)
本事象はセキュリティ問題に該当しているため、問題の再現手順など詳細に関するお問い合わせについて、ここに掲載された以上の情報提供を行っておりません。セキュリティ保全の観点による措置のため、あらかじめご了承いただきますようお願いします。
重要度、発生頻度など当事象を評価する情報については、以下の CVSS 評価値を利用ください。CVSS の評価値の読み方については、「共通脆弱性評価システム CVSS V2 概説」 をご参照ください。
| Security Rating using Common Vulnerability Scoring System (CVSS) version 2 |
| CVSS Base Score: < 7.8 > -- Impact Subscore: < 6.9 > -- Exploitability Subscore: < 10 > CVSS Temporal Score: < 6.1 > CVSS Environmental Score: < Undefined* > Overall CVSS Score: < 6.1 > |
Base Score Metrics:
|
Temporal Score Metrics:
|
| References: Complete CVSS Guide 共通脆弱性評価システム CVSS V2 概説 脆弱性の深刻度評価の新バージョンCVSS v2への移行について CVSS Caluculator: (英語) Online Calculator (日本語) Online Calculator |
* Environmental Score (環境評価基準) は、製品利用者の利用環境も含め、最終的な脆弱性の深刻度を評価する基準です。攻撃を受けた場合の二次的な被害の大きさや、組織での対象製品の使用状況といった基準で評価し、CVSS 環境値 (Environmental Score) を算出します。これは、お客様自身が脆弱性への対応を決めるために評価する基準です。
関連文書 (Related Document)
(英文) 「Lotus Domino Web Server “Accept-Language” Stack Overflow」(Technote #1303057)
----- 更新履歴 -----
2009/05/20 Lotus Domino 7.0.4 で修正されていることを追記
掲載内容は2009年5月20日現在の情報です。内容は事前の予告なく変更することがあります。 IBM、IBM ロゴおよび ibm.com は、世界の多くの国で登録された International Business Machines Corporation の商標です。他の製品名およびサービス名等は、それぞれ IBM または各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtml (US) をご覧ください。
