hogashi.*

日記から何から

脆弱性情報に誤記があるとき問い合わせると修正してもらえる

目次

 こんにちは、 id:hogashi です。 はてなエンジニア Advent Calendar 2022 - Hatena Developer Blog の 30日目の記事です。昨日は id:stefafafan さんの
はてなのエンジニアとして日々意識しながらやっていることを紹介します - stefafafan の fa は3つです でした。年の瀬MAXですね。

 僕は業務でセキュリティ会というものに参加していて、毎週の定例で脆弱性情報を眺めています。脆弱性情報、特に CVE Record などにはなんとなく正確さを期待しますが、人間が運用している以上ミスはあるもので、たまに typo など誤記があることもあります。
 そういうものに気づいたときには、修正してもらえるよう問い合わせてみたりしています。よく見ると問い合わせフォームがあったりメールアドレスが案内されていたりするので、そこにこんにちは〜と問い合わせることは、気持ちとしては GitHub で issue を立てることと似たようなことか、と思っています。

実際の例

NVD

nvd.nist.gov

 CVE-2022-25521 の description は NUUO v03.11.00 was discovered to contain access control issue. ということで、 NUUO という製品に脆弱性がありました。しかし、元の description は UNNO v03.11.00 was discovered to contain access control issue. となっていました (NUUO ではなく UNNO となっている)。ちなみに変更履歴は、ページの下の方の「Change History」から「show changes」を押すことで見られます。
 reference も同様に http://unno.com となっていましたが、これにアクセスすると自転車メーカのサイトが表示され、まずアレッとなります。次にもうひとつの reference である Medium のページを見ると、 Use of Default Credentials to Unauthorised Remote Access of Internal Panel of Network Video recorder of NUUO となっており、 Vendor Homepagehttps://nuuo.com/ と書かれていたため、 CVE 情報の typo を確信しました。

 さて、ここで初めての NVD に対する問い合わせをしました。フッタにある「Contact Us」からできます: Contacting NIST | NIST脆弱性番号と、見た URL 、どこが間違っていてどうなっているべきか (UNNO じゃなくて NUUO 、 http://unno.com じゃなくて https://nuuo.com/)、などを書いてフォームを送信しました。当時は (メールを見る限り) 「CVE Configuration Update Request」というのをプルダウンから選んで送ったようですが、今はフォームが新しくなっていて*1、選択肢が変わっていました (どれで送るのがいいのかわからないときは General Questions にしておけば受け取ってもらえそう)。

 数日ほどして、「ありがとう、 configuration は変えました。ただ description や reference のリンクなどは CVE Assignment Team のほうに問い合わせてね、 https://cveform.mitre.org/ からできるよ」というような返信がメールでもらえました。めちゃくちゃ丁寧。 NVD の変更履歴を見る限り、 configuration というのは CPE Configuration というもののようです。

CVE

cve.mitre.org

 というわけで大本の CVE 情報を直してもらうべく、 NVD 同様フッタの「Contact Us」から送りました: https://cveform.mitre.org/ 。大体同じ内容で書きましたが、 PGP key を入れる欄があったのは面白かったです (生成して送りましたが、今回は脆弱性を発見/報告したわけではなかったので?別に使いませんでした)。

 こちらも「ありがとう、レビューするね」というお返事が来ました。 NVD の変更履歴を見る限り、かなり素早く修正されていそうですね (ありがたい)。

番外編: Security NEXT

www.security-next.com

 脆弱性について記事を公開しているサイトです。下の方に書かれている通り、アップデートされたバージョン番号が 2021.005.20148 となっていたのに対して、 Adobe の情報を見ると 2021.005.20048 となっていたので、フッタの 運営会社:Security NEXT からメールを送りました。
 Security NEXT編集部さんから「記事公開当時の Adobe の情報がそうなっていたためで、たしかにそう更新されていたので修正しました、ありがとうございました」というお返事をもらい、なるほどそういうことがあるのか、という体験でした (たしかに Adobe のページをよく見るとそういう変更履歴が書かれていました)。

むすび

 脆弱性情報について、なんか間違えてそうだね、という話をするだけのことがほとんどだったのですが、情報が正しくなれば脆弱性の対応もしっかりできることになるので、気づけたときにはこういった調子で問い合わせフォームから伝えてみているのでした。

 はてなエンジニア Advent Calendar 2022 - Hatena Developer Blog 、明日は id:tkzwtks さんです。

*1:今回のことで迷惑をかけてしまっていないことを祈りたい

ブラウザで:has()セレクタが実装されてjQueryの:has()セレクタの挙動が変わった話の続き

前回までのあらすじ

blog.hog.as

 ブラウザで :has() を実装した結果、 :querySelectorAll():has() を扱えるようになり、 jQuery:has() を使ったときの挙動が変わってしまっていた。

その後

 結局、 :is :where 以外のセレクタ (含む :has()) を unforgiving にすることが決まっていた。 :is :where だけは forgiving なままとするので、 :has(:is(ほげほげ)) と書くと forgiving な使い方にすることもできる、という態度っぽい (pull request のテストケースで言うと、 :has(:is(.a, 123)) は (123 が invalid なセレクタなので) :has(:is(.a)) として扱われる)。

 Chrome を見ると、 Make :has() unforgiving (Ibb499e25) · Gerrit Code Review とかで実装もマージされていそうに見える。 Chrome のリリースまでの流れに詳しくないけど、近いバージョンで出てきそう? (そのタイミングで jQuery の挙動も戻りそう?)

二条河原落書(ジッタリン・ジン)

www2.city.kyoto.lg.jp

口遊(くちずさみ) 去年八月二条河原落書云々 元年歟

此比(このころ)都ニハヤル物

     夜討強盗謀綸旨(にせりんじ)

召人(めしうど)早馬虚騒動(そらさわぎ)

     生頸(なまくび)還俗(げんぞく)自由出家

https://www2.city.kyoto.lg.jp/somu/rekishi/fm/nenpyou/htmlsheet/bunka08.html

 これ見るとだいたい脳内に↓が流れ始める。 Google で検索するとそういう人が結構いそう 二条河原落書 ジッタリン・ジン - Google 検索


www.youtube.com

Perlで戻り値として呼び出した子サブルーチンのコンテキストは親と同じ

 Perl Advent Calendar 2022 の 12日目です。
qiita.com


 こういうときのことです。

sub func2 {
  # ここのコンテキスト
}
sub func1 {
  func2;
}

 サブルーチンのコンテキストは wantarray - Perldoc Browser を使うと調べられそうです。 wantarray は、 list/scalar/void コンテキストでそれぞれ true/false/undef (値としては 1''undef ) を返します。

Returns true if the context of the currently executing subroutine or eval is looking for a list value. Returns false if the context is looking for a scalar. Returns the undefined value if the context is looking for no value (void context).

https://perldoc.perl.org/functions/wantarray

 こういう感じで、呼び出し方を変えながら wantarray を見るコードを実行すると:

use feature qw(say);

sub print_wantarray {
  my $wa_str = defined wantarray ? (wantarray ? 'true' : 'false') : 'undef';
  say "  wantarray: $wa_str\n";
}

sub func1 {
  print_wantarray;
}

say 'my $val1 = [print_wantarray];';
my $val1 = [print_wantarray];

say 'my $val2 = print_wantarray;';
my $val2 = print_wantarray;

say 'print_wantarray;';
print_wantarray;

say 'my $val3 = [func1];';
my $val3 = [func1];

say 'my $val4 = func1;';
my $val4 = func1;

say 'func1;';
func1;

 こうなります。前半は print_wantarray を直接呼んだものですが、後半の func1 を介した呼び出しでも同じコンテキストになっています。同僚と、そういえばこれどうなるんだろう、という会話になり試しましたが、子の戻り値が結局親の戻り値になるので、コンテキストが同じになるのはたしかにそういうものか、という感じで納得でした。

$ perl a.pl
my $val1 = [print_wantarray];
  wantarray: true

my $val2 = print_wantarray;
  wantarray: false

print_wantarray;
  wantarray: undef

my $val3 = [func1];
  wantarray: true

my $val4 = func1;
  wantarray: false

func1;
  wantarray: undef

 ちなみに return - Perldoc Browser を省略して書いていますが、明示的に書いても同じです。 return によってコンテキストが変わったりしないのかな、と思ったら、むしろ return がコンテキストに合わせる立場でした (コンテキストによって返す値が変わりますと書かれている)。

Evaluation of EXPR may be in list, scalar, or void context, depending on how the return value will be used, and the context may vary from one execution to the next (see wantarray).

https://perldoc.perl.org/functions/return

Get Back見た

www.disneyplus.com

 去年の 12月あたりに公開された、ビートルズのルーフトップ・コンサートあたりのドキュメンタリー映画。 Disney+ の独占配信で、これのために入った。腰が重くて見ずにいたけど、この 10月あたりにようやく見た。仲良くやってた。マジで良くて、何回も見直している……。
 ディズニー公式のトレイラーがあるけど、個人的には不必要に映画感を出していておかしいのでおすすめしないし、ここにも貼りません。一部分を切り取った公式動画を貼るので、こっちを見て雰囲気を感じてほしい。

www.youtube.com
www.youtube.com
www.youtube.com

 話としては、色々あってライブをやらなくなったけど、久々に観客ありテレビショーやったら面白かったし改めてやろうぜとなって、テレビショー & その準備のドキュメンタリー映画を撮ることになり、しかし映画もテレビショーもあんまりな……という意見が出たりして、曲を練習・録音しながら議論しまくり、最終的にはよく使ったスタジオの屋上でライブすっか、でライブするという流れ。なので曲を演奏しまくったりここからどうするか話しまくったりする様子が順番に見られる。各々大人になり各自の意見があるのでそれなりに紛糾していて大変だけど、演奏してるときは楽しそうにしているし、最後にはアルバムができてるので信じて最後まで見てください。

ザ・ビートルズ:Get Back』が映し出す温かい雰囲気や強い仲間意識、そして天才的な創作風景は、アイコンたる4人のレガシーが確固たるものになる様をとらえている。1969年1月に撮影された60時間超の未発表映像(マイケル・リンゼイ=ホッグ撮影)や、150時間を超える未発表音源、この貴重なプライベート映像に50年もの時を経て初めてアクセスを許されたピーター・ジャクソン監督が美しく復元・編集し、映画を構成。これはジョン・レノンポール・マッカートニージョージ・ハリスンリンゴ・スターの物語。当時、彼らは2年ぶりのライブを計画し、曲を書き、14曲の新曲をリハーサルしていた。元はライブ・アルバムとしてリリースする予定だったからだ。映画にはバンド最後のパフォーマンスとなった、ロンドンのサヴィル・ロウで行われた忘れ難きルーフトップ・コンサート<初の完全版>も含まれる。加えて、バンド最後の2枚のアルバム『Abbey Road』と『Let It Be』で発表された楽曲の数々も本作を彩る。

https://www.disneyplus.com/series/the-beatles-get-back/7DcWEeWVqrkE

 それまで全員で集まらずにスタジオ録音で重ね撮りとかしてたけど、今回は集まって編集なしで曲を撮ろうみたいな取り組みをしていて、 1ヶ月間スタジオに通い詰めている。最後の屋上でのライブの音源も含めた全部の録音の中から、 Abbey Road と Let It Be というアルバムに曲が収録されていて、つまり事前にアルバムを聞いている人は映像を見ながらこの音源じゃん!!! となるわけで、良い。
 あと、こういう曲つくったよとか、これやりたいとか、そういうのを普通に話してるのが見られるのは最高で、活動こういう感じだったのだな〜と思って、そういう素朴さにテンションが上がる。

www.youtube.com

 ↑のところは Something つくってるところで、歌詞決まんないんだけどどういうのがいいかね、思い浮かんだのでいいでしょ、みたいな会話をしながら、みんなで演奏しつつ考えている。これいいところで終わっちゃうけど、この後 Love Me Do の激ゆっくりバージョンを弾き始めてアツい。
 他では例えばリンゴが Octopus' Garden つくってきたときの映像がかわいい (チャプター3の最初)。「タコの曲聞かせたっけ」「まだ」って会話から弾き始めて、「Aマイナー覚えたね」って言うジョージ(ハリスン)と、イントロとAメロまでしかない曲の続きをこういう感じとかって話しながらつくっていっている。その後人がだんだん来てすっと参加していく感じとか、これに限らず急に色んな曲を始めるときもすぐ合わせて楽器を弾いていたりして、めちゃくちゃ楽しそう。

www.youtube.com

 個人的にはチャプター3が一番楽しそうなので好き。ピアノ弾く役として呼んだビリー・プレストンがすごく楽しそうなのも最高で、(みんなそうだけど)音楽好きなんだな〜〜みたいになる。チャプター3の Can You Dig It? やばくて、ポールの娘がオノ・ヨーコの真似してア〜って歌うのも入ってるしジョンが Twist and Shout の歌詞歌い出してすぐコーラスもあわせて入れる(多分ジョージ)し弾き続けまくって、それが(一部だけど)アルバムにも入っていてすごい。この一連の演奏全部アルバムに入れてくれたらいいのに……。そのすぐ後にも(かつて聞きまくったり一緒に演奏したりしたのであろう、当時からすると十数年前の)1950年代の曲を急に(冗談で)始めて全員すぐ参加みたいな、そういうことが起きまくっていて、この波長の合った人々はすごいな……となる映像ばっかりでやばい。

www.youtube.com

 屋上で急に演奏を始めたときのインタビューを聞いていると賛否両論あったみたいだけど、終わったあとの会話ではめちゃくちゃ楽しかったって感じになってて、マジで良い。実際屋上で演奏してるの超楽しそうでかわいくて、この演奏だけの (インタビューとかなしの) 映像を通しで見たすぎる。 Don't Let Me Down で歌詞がわけわかんなくなる(実際ミスってごり押してる)ジョンとそれ聞いて笑っちゃうみんなみたいな。その後の活動がどうかはそんなに詳しくないし誰と誰が仲が悪いとか色々言われているけど、しっかり仲が良い瞬間があるのは見てわかるし、それで十分だな〜と思った。楽しく撮った映像が残っていることと、アルバムになっていることに感謝しながら、 Get Back を何回も見/聞きまくっている。
 追記: 見逃してたけど、このルーフトップ・コンサートの録音が各種音楽ストリーミングで配信されている The Beatles - Get Back (Rooftop Performance)YouTube Music でめちゃくちゃ聞いていて最高の状態。

www.universal-music.co.jp

 ちなみにビートルズのアルバムは何回かリマスターされていて、最近の技術でまたリマスターされたやつが出ている。後期の作で録音方法的に音の再処理がしやすい Let It Be や Abbey Road から始まって、この間 Revolver もリマスターされた。有名な「ビートルズの曲は音のパンが左右に楽器ごと分かれている」みたいな話があるけど、最近のリマスターでそれを現代的に分け直しているので、聞いてみてほしいです。個人的には楽器ごと分かれているのも普通に聞いていて楽しいけど……。あとリマスター版では書き下ろし的な感じで色んなボツテイクも一緒に収録されているので、 Get Back 見たあとに聞くとああこれはあの映像ねとなれて楽しい。

Album - Let It Be (Super Deluxe) のプレイリスト
www.youtube.com

Album - Revolver (Deluxe) のプレイリスト
www.youtube.com

包装を捨てまくる

 雑にピザトーストをつくるために、ピザソースと玉ねぎサラダ(そのまま食べられる)とスライスチーズを買ってきて BASE BREAD ミニ食パンに乗せて焼いた結果、それら全部を開けた包装を捨てまくっていた。ものを手に入れまくった結果あらゆる包装を捨てまくる瞬間に現代を感じて無常という気持ちになる。