-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
リダイレクトを含むユーザの照会がエラーになる #15048
Comments
The fetched host is already guaranteed to be from the authoritative source ( 取得されたホストは、すでに信頼できるソース ( misskey/packages/backend/src/core/activitypub/ApResolverService.ts Lines 109 to 111 in 8076f78
I do not think we have to check again without considering redirects (as the returned object will have the correct attribution and this original host has no control over it) the most mi.7mi.site can do is redirect you to a different site, but the returned user will have to match that different domain to pass the above check which will be clearly identifiable by the user: リダイレクトを考慮せずに再度確認する必要はないと思います (返されるオブジェクトには正しい属性があり、元のホスト(mi.7mi.site)は制御できない) できることはせいぜい別のホストにリダイレクトすることですが、返されるホストはmisskey.ioではないのははっきりと表示されます。 misskey/packages/backend/src/core/activitypub/ApResolverService.ts Lines 129 to 131 in 8076f78
However it is impossible to be sure without an appropriate advisory clearly identifying the reasoning of multiple seemingly-redundant checks like these. I hope the advisory can be published so instance owners know the how to appropriately deal with these patches (which are already public), as opposed to being tempted to revert them potentially exposing them to known threats. ただし、このような複数のチェックの理由を明確に示す適切なアドバイスがなければ、確信を得ることはできません。インスタンス所有者がこれらのパッチ (すでに公開されています) を適切に処理する方法を知ることができるように、アドバイスが公開されることを願っています。 |
リダイレクトを許可することによるリスクはユーザーが確認していないことですが(?)、それはバックエンドのエラーではなく、フロントエンドの警告のほうが良いと思います。 |
具体的な対応案としては以下のいずれかでしょうか… ①リダイレクトを検知したらユーザにエラーと回避策を通知する(いまは×しか出ないので) いずれにせよ、方針を決めて早く実装する必要があると思います |
(個人的には③か④を推したい) |
悪意あるサーバーに問い合わせてリダイレクト無くその場で偽の情報を返された場合は為す術が無いのでやるなら①だと思う(多分) |
リダイレクトの結果URLでjson内uri/urlと照合するのではだめなんです? |
照会する際に使用するURLだけでは、それが第三者のサーバーのコンテンツ(リダイレクトを含む照会)なのか、問い合わせているサーバーのローカルコンテンツなのかの見分けがつかない |
照会する際に使用するURLだけではわかりませんが、リダイレクトされたときにはHTTP 30x + Locationヘッダでリダイレクトされたかどうかは |
GHSA-m2gq-69fp-6hv4 を見たほうがいい(現時点で詳細情報は関係者のみに公開) |
見直したけど、照会のときにそうしないといけないのは私は納得がいってない。Activity Pubの各種解決時はまぁわかるんだが。 |
ここのチェックをap/showの初回のresolveでスキップする仕組み(オプション)があればいい気がしている misskey/packages/backend/src/core/activitypub/ApResolverService.ts Lines 129 to 131 in 0804092
|
照会のリダイレクト解決と通常のAPリクエスト時のリダイレクト解決って別のものかしら |
何も出ないと何が起こったかまったくわからないので暫定対応として #15147 を入れるのは良いとおもわれる |
GHSA-m2gq-69fp-6hv4 は関連オブジェクトの取得時のvalidation不足によって発生してるって認識してる。 #15147 に関しては他のエラーについてもあるしいれるべきだと思うけど、このissueを私の言ったように治すのをほぼ同時にするなら _responseInvalidIdHostNotMatch のエラーメッセージは不正なオブジェクトを照会してる旨のほうが正しそう |
💡 Summary
https://mi.7mi.site/@[email protected] のようなURLで照会すると (つまりリダイレクトを含む照会をすると) 2024.10.1のサーバーでは問題なく照会できるのに 2024.11.0 のサーバーだと 500 internal server error を返します。
複数のサーバーで確認しました。
🥰 Expected Behavior
リダイレクトをちゃんと追跡して照会できる
🤬 Actual Behavior
500 internal server errorが返ってくる
📝 Steps to Reproduce
💻 Frontend Environment
🛰 Backend Environment (for server admin)
Do you want to address this bug yourself?
The text was updated successfully, but these errors were encountered: