Skip to content

OpusTagsパース中にDoS攻撃を受ける余地がある #2

@hcmiya

Description

@hcmiya

2017-08-16時点では、OpusTagsの処理をするのにogg_stream_packetout()を使ってパケットを一度に全てメモリに展開した上でパースをしています。そのパケットというのは無限にサイズが大きくなる可能性があり、また音声データと違ってデータサイズだけを見て異常かどうかを判断して捨てるという行動を採れないので、そこでDoSが成立します。

これを防ぐのであれば、パケット構築を待つのではなくてページを逐次処理していく方針に切り替えないといけないんだけど、それが嫌でライブラリ使ってんのになぁ……。

Opusパースを克服しても、タグのレコードを全部メモリに持ってる関係で巨大な編集入力でもDoSを受けるのでそれもよろしくない。

いずれにせよ、任意サイズデータをメモリに持っているのが原因なのでtmpfile()を使うように書き換えないといけないですね。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions