Skip to content

Instantly share code, notes, and snippets.

@mala
mala / gist:9c8154f68d15be6145ad
Created August 14, 2014 06:41
Amon2及び関連モジュールのセキュリティアップデートに関する追加情報、及び Plack::Middleware::Session::Cookie の脆弱性について

HTTP::Session2::ClientStoreの影響について訂正があります。

以前の情報:

  • アプリケーションの実装や、ロードしているモジュールによっては、任意のコード実行に繋がる可能性があります

訂正後:

  • インストールされているモジュール次第で、任意のコード実行が可能です。
  • 典型的なWebアプリケーションの構成の場合、ほぼ確実に任意のコード実行が可能であることが確認されています。

Plack::Middleware::Session::Cookie にも同等の問題が確認されました。

@mala
mala / aaa.md
Last active November 13, 2015 04:34
Plack::Middleware::Session::Cookie で secret未指定の場合のremote code executionについて
@mala
mala / gist:82074a542d703247a481
Created August 5, 2014 02:47
Storableからの任意コード実行脆弱性についての調査

Storableからの任意コード実行脆弱性についての調査

概要

  • HTTP::Cookies と DBI::ProfileDumperを使う
  • HTTP::Cookies は LWPの依存モジュールで、DBI::ProfileDumperはDBIに付属している。どちらもインストールされている可能性が非常に高い

HTTP::Cookies の autosave 機能で任意ファイルにcookiejarが保存される。 DBI::ProfileDumper もDESTROY時のflushでファイルに書きこむ。存在しているファイルへの追記であれば比較的自由なフォーマットでファイルに書き込み可能。

@mala
mala / gist:250103a9281340b00330
Created August 1, 2014 08:11
Amon2及び関連モジュールのセキュリティアップデートのお知らせ

概要

Amon2::Util::random_stringの生成する乱数の質に問題があったため、セキュリティ上の問題が発生する可能性があります。

現在のところ重要なセキュリティ修正としては告知されていません。技術的な詳細についてはアップデートが浸透してから公開される予定です。

影響を受けるモジュール

  • Amon2
  • Amon2::Plugin::Web::CSRFDefender
  • HTTP::Session2
@mala
mala / gist:e219cd7dcdf8f1d1382d
Last active December 29, 2016 18:03
Amon2::Util の random_string の実装に起因する脆弱性

(まだ影響範囲調査 + いくつかアップデート予定なので公開ブクマなしで、社内共有はOKです)

Amon2::Util の random_string の実装に起因する脆弱性

Amon2::Util の random_string は暗号論的に安全ではありません。

Amon2::Utilのrandom_stringの無作為性はsrandのみに依存しています。引数無しのsrandを呼び出したときに使われるseedは32bit intです。

# 大体43億ぐらいの値が出てきます 
@mala
mala / gist:61a2eef2833bfef0456b
Created June 12, 2014 12:49
RFC7231のリファラに関するメモ
https://twitter.com/bulkneets/status/476343189717012480
をきっかけにリファラにabout:blankが提案された経緯について調べていた。
単にnull値として使えると定義されただけで、現状積極的に送れと推奨されているわけではないと認識している。
この変更で https://trac.tools.ietf.org/wg/httpbis/trac/changeset/2072
「about:blank送る or 全く送らない」と書かれていたのが「全く送らない or about:blank送る」と順番逆になったりしている。
----
RFC7231のリファラに関するメモ
@mala
mala / gist:ca1c55c1566fa49253fd
Last active December 29, 2016 18:07
HTMLパーサの挙動の違いに起因するXSS

HTMLパーサの挙動の違いに起因するXSS

自己紹介

概要

  • 解釈にブレが生じるHTMLを使ったXSS
  • 特にWYSIWYGエディタ上で起きるものが多い
@mala
mala / gist:9086206
Created February 19, 2014 04:49
CSRF対策用トークンの値にセッションIDそのものを使ってもいい時代なんて、そもそも無かった

概要

http://co3k.org/blog/csrf-token-should-not-be-session-id について。

この記事では触れられていませんが、

  • むかし、セッションIDをHTMLソース中に埋め込んでも脅威は変わらないと主張した人がいました
  • 正確には「hiddenの値のみ漏れやすいような特殊な脆弱性が無ければ」という前提であったけれど、実際にそのようなバグはあったし、予見されていた。
  • とても影響のある人だったので、色々なサイトや書籍がその方法を紹介し、安全なウェブサイトの作り方にも載ってしまいました

この際ハッキリ言っておくべきだと思うので書きますが、そもそもセッションIDを(HTMLソース中に埋め込む)CSRF対策トークンとして使うのは間違いでした。最初から間違っていたのです。正確に言うとCSRFの話は関係ないですね。CSRF関係なく、特に「単体で」セッションハイジャックが可能になるような値を、HTMLソース中に埋め込むべきではありません。

@mala
mala / gist:8857629
Last active October 29, 2019 00:35
Flashと特定ブラウザの組み合わせでcross originでカスタムヘッダ付与が出来てしまう問題が未だに直っていない話

2014-07-09 それぞれ修正されたのを確認したので追記します。

APSB14-17 で修正されたようです

筆者が把握している範囲で、最新版のFlash Playerを利用している場合に、(crossdomain.xmlもしくはユーザーの許可なしで)cross originでカスタムヘッダを付与する方法はありません。

Webサイト運営者は

@mala
mala / limechat.css
Created February 4, 2014 07:02
limechatの画像展開機能でグロ画像や無修正画像などが表示されて困る人向けのテーマ
/* channel-nameには同僚の名前などが入ります */
body[channelname*="#channel-name"] .inlineimage { width: 30px !important; }
body[channelname*="#channel-name"] .inlineimage:hover { width: auto !important; }