標準glob()の脆弱性はFTPサーバーに対する脅威として機能します

SecurityReason Webサイトでは、多くのプラットフォームで標準C言語ライブラリ(libc)からのglob()ライブラリ関数の実装に危険なエラーが報告されています。



この関数は、名前が特定のパターンに一致するファイルのリストを取得することを目的としています。 エラーは、テンプレートに誤ったパスが指定されている場合、GLOB_LIMIT変数で指定された関数発行の制限が適用されないという事実にあります。 このような誤った値は、たとえば「* / .. / * / .. / * foo」または「{..、..、..} / * / {..、..、..} / * bar 「。 この場合、glob()関数の呼び出しは、利用可能なプロセスメモリをすべて使い果たす可能性があります。



このエラーは、特に匿名アクセスが許可されている(S)FTPサーバーでは特に危険です。 明らかに、上記のマスクを使用してファイルを一覧表示する要求は、FTPサーバーのサービス拒否を即座に引き起こします。



最近の報告によると、脆弱性は少なくとも次のOSに影響を受けます:OpenBSD 4.7、NetBSD 5.0.2、FreeBSD 7.3 / 8.1、Oracle / Sun Solaris 10、およびGLIBCを搭載したLinuxのすべてのバージョン。 これまでのところ、この脆弱性はNetBSDでのみ修正されています。 上記の(NetBSDを除く)オペレーティングシステムの開発に関与する企業およびコミュニティは、まだ情報を提供していません。 そのため、この脆弱性は「0日」に分類されます。 vsftpdは脆弱ではないことも報告されています。



脆弱性を実際に試してみたい人のために、bashコンソールに次のようなコマンドを入力することを提案できます。

ls ../../*/../*/*/../../*/*/*/*



たとえば、PHPから悪用される可能性があります。

php -r '印刷グロブ( "../../*/../*/*/../../*/*/*/*");'



またはpython

python -c 'import glob; glob.glob( "../../*/../*/*/../../*/*/*/*") '

この関数にアクセスする他の言語から。



元の脆弱性レポートはこちら: securityreason.com/securityalert/7822



All Articles