regression in 1.0.4: setting host clears the user
まだ誰も着手していません。
評価
調査の方向性
URI("socks4://user:@socksproxy:8080") の例と、issue で説明されている host= の mutation から始め、1.0.4 の動作と以前の動作を比較します。CVE に関連する変更を確認し、空のパスワードによってユーザーを残せるようにすべきか判断します。完了条件は、認証情報の露出を再び発生させることなく、ホストの解決によってそのユーザーが削除されなくなることです。
索引モデルが issue の本文から書いたものです。
説明
I have some code relying on the following logic:
require "uri"
uri = URI("socks4://user:@socksproxy:8080")
uri.user #=> "user"
uri.host = Resolv.getaddress("socksproxy") #=> "127.0.0.1"
uri.user #=> used to be "user", now it's nil
I understand that this was all done as a fix for a CVE to not expose passwords, but if no password is set, this resetting credentials just feels a bit odd. Also, the CVE seems more about preventing when merging two uris and leaking credentials from one to the other, and this patch does way more than that, i.e. resetting state when mutating. I don't think that they're the same.
- 主要言語
- Ruby
- スター
- 125
- フォーク
- 65
- 平均マージ
- 6時間 4分
- マージ済み PR(30日)
- 2
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ruby/uri のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 25/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
riscv/riscv-unified-db#2626 ·
-
Component: GLib
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
ds-drift
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
we-promise/sure#3693 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
simp/pupmod-simp-simp#395 ·