この記事はRuby Advent Calendar 2019 - Qiitaの24日目です。 去年(RubyやRubyのOSSの脆弱性を見つけた話 - ooooooo_qの日記)と同様にRuby関連で今年見つけた脆弱性の話です。 Ruby CVE-2019-16255: Shell#[]およびShell#testのコード挿入脆弱性 hackerone.com 脆弱性なのか判断に迷うもの。 引数が.sendにそのまま渡されるので値によってはコードが実行できるものでした。 .sendを使って実際に攻撃できるパターンが有るのか、Rubyのコードの中を調べて見つけた覚えがあります。 CVE-2019-15845: File.fnmatch の NUL 文字挿入脆弱性 hackerone.com またNul文字。さすがにRubyではもうNul文字の問題はないのではないでしょうか。多分。 Pathna
この記事はRuby Advent Calendar 2018 - Qiitaの23日目です。 今年はRubyやOSSの脆弱性をいろいろ探していたので、その感想を。 Ruby (Cruby) Tmpでのディレクトリトラバーサル DirでのNUL文字の扱いの問題 UNIX ドメインソケットでのNUL文字 Ruby 2.6での挙動変更 Dir[]でのNUL文字について Rubygems rubygems 65534倍効率的なブルートフォース minitarでのKernel.open*2 geminabox Discourse Heroku Rails pgでのNUL文字 Active StorageでのXSS 報奨金 感想 Rubyに詳しくなった 脆弱性としての判定 自分が使うものを安全にする まずはRubyから Ruby (Cruby) techlife.cookpad.com 昨年公開された
Rubyのサンドボックスを作って、evalするBotを作った posted at 2018-07-10 01:04:56 +0900 by kinoppyd 注意:安全じゃありません RubyのSnadbox環境 Sansbox環境とは、外部から入力されたプログラムを安全に実行する環境のことです。任意のコードを入力可能な場所で、いきなり system(“rm -rf ~/) とか入力されて、それが本当に実行されたら困りますよね? 自分は困ります。ですが、外部から入力されたコードを安全に実行する環境というのはそれなりに需要があり、最もわかりやすいところではJavaScriptを実行するブラウザ、わかりにくいところでは今回作ろうとしているeval用のbotです。 ブラウザに関しては、インターネットという非常に治安の悪い場所から送られてくるコードを自分の環境で実行するので、サンドボックスが必要で
こんにちは、金子です。 普段はRailsを書いたりしています。 今回は2016/4/6に発表された、RubyGems.orgの脆弱性についてまとめました。 脆弱性について RubyGems.org gem replacement vulnerability and mitigation をざっと読んでみると、 特定の状況で、RubyGems.orgにupdateされているファイルの内容が不正に書き換えられる可能性があった 特定の状況とは、2014-6-11から2016-4-2までの間に登録されたgemのうち、'blank-blank'のように名前に'-' (dash)が入っているもの ただし2015-2-8以降に登録されたgemはRubyGems.orgがsha256 checksumを計算しており、それと実際のファイルの突合をして、書き換えられていないことを確認ずみ つまり、2014-6
ご存知の方には何を今更感があるかとは思いますが、パッとググった限り誰も書かれていなかったので、 Object#sendやそれとよく似たObject#public_sendの使い方は注意して使わなければ結構危ないセキュリティホールを作ってしまうよ、 というお話をしたいと思います。 TL;DR Object#sendはevalやsystemの次ぐらいに危険です。ユーザーの入力など、外部から入力された値をObject#sendやpublic_sendメソッドにそのまま渡すのはやめましょう。 これらのメソッドに渡す文字列は、(特殊なメタプログラミング用のライブラリを作る場合などを除いて)必ずどこかにハードコードした、信頼できるメソッドの名前のみにしてください。 危険なケース 例えばあからさまな例ですが、次のようなRailsのコントローラーのアクションがあったとしましょう。 みなさんはこれに近いよう
Posted by usa on 16 Dec 2015 Ruby の標準添付ライブラリである Fiddle と DL に、信用できない tainted な文字列の使用に関する脆弱性が発見されました。 この脆弱性は、CVE-2015-7551 として登録されています。 詳細 Ruby の標準添付ライブラリである Fiddle と DL で、信用できない tainted な文字列を使用すると、本来禁止されるべき危険な操作が可能となる問題が発見されました。 この問題は、元々は DL において CVE-2009-5147 として報告され、修正が行われていました。 しかし、DL が Fiddle と libffi を用いて再実装された際に、同じ問題が再び発生してしまいました。 また、DL に関しても、Ruby 1.9.1 ではこの問題は修正されましたが、他のバージョンでは修正が行われなかったため、
Posted by zzak on 13 Apr 2015 Translated by usa Ruby の OpenSSL 拡張ライブラリにおいて、ホスト名検証時に、本来マッチすべきでない名前がマッチしてしまう場合があるという脆弱性が発見されました。 これは CVE-2014-1492 に類似した不具合です。 同種の問題が Python でも発見されています。 この脆弱性は CVE-2015-1855 として CVE に登録されています。 ユーザーの皆さんには Ruby を更新することを強くお勧めします。 詳細 RFC 6125 および RFC 5280 を確認した結果、ホスト名マッチング、および、特にワイルドカード証明書の扱いについて、複数の仕様違反が見つかりました。 Ruby の OpenSSL 拡張ライブラリでは、これらの RFC で推奨されているような、 より 厳密な振る舞いに従
Posted by nagachika on 13 Nov 2014 Ruby 2.1.5 がリリースされました。これは安定版 2.1 系のパッチレベルリリースです。 今回のリリースには、REXML における DoS 攻撃可能な脆弱性の修正が含まれています。 これは、前回のリリースで修正された脆弱性に類似していますが、それとは別の新たなものです。 CVE-2014-8090: REXML における XML 展開に伴う新たなサービス不能攻撃について 他にも、幾つかのバグ修正が含まれています。 詳しくは、対応するチケット および ChangeLog を確認して下さい。 Download https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.bz2 SIZE: 11994454 bytes MD5: a7c3e5fec47eff23091
Posted by hone and zzak on 29 Mar 2014 Translated by makimoto Ruby の YAML データにおける URI エスケープ処理にオーバーフロー問題があります。 この脆弱性は CVE 識別番号 CVE-2014-2525 に割り当てられています。 詳細 タグ付き YAML の中で文字列がパースされる際に、特殊な文字列がヒープオーバーフローを引き起こし、任意のコードが実行される可能性があります。 例: YAML.load <code_from_unknown_source> 影響を受けるバージョン Ruby 1.9.3-p0 以上にはデフォルトの YAML パーサとして psych が含まれています。 0.1.5 以下のバージョンの libyaml にリンクされているすべてのバージョンの psych が影響を受けます。 また、以下の
Posted by tenderlove on 22 Nov 2013 Translated by unak Ruby において、浮動小数点数のパース時にヒープオーバーフローが発生しうるという問題が報告されました。 この脆弱性は CVE-2013-4164 として CVE に登録されています。 脆弱性の詳細 文字列を浮動小数点数値に変換する際に、意図的にヒープオーバーフローを発生させる文字列を構成できることが判明しました。 これによって、セグメンテーションフォールトによるサービス拒否攻撃を行うことができ、また、潜在的には不正なコードの実行を可能とする可能性があります。 出所不明なデータを受け付けて浮動小数点数値に変換する全てのプログラム (例えば JSON 形式での入力を受け付けるものなども該当します) が、この脆弱性の影響を受けます。 例えば、以下のようなコードが該当します: この不具合
更新: 2011年7月9日23時0分頃 とあるシステムで徳丸本のストレッチングを採用することにしたという話がありましたが、その実装が佳境に入ってきました。私は指示だけ出して、実装はお任せ……と思っていたのですが、基本的な部分を作ってもらったところでバトンタッチされ、私が引き継ぐ形で実際にコードを書くことになりました。 基本的には徳丸本 (www.amazon.co.jp)のオススメどおりの実装にするという方針なのですが、実際にコードを書いてみると、いろいろと気になったり迷ったりした事も出てきました。そのあたりを簡単にメモしておきます。 ※ちなみに、このシステムはRuby1.9.2 + Ruby on Rails3での実装なので、PHPのコードサンプルをそのまま使っているわけではありません。 ストレッチ回数をどう決めるのか徳丸本327ページにあるコード例を参考にして実装。アプリケーションごと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く