debiruはてなメモ

はてなブログの HTML が Invalid なの、わたし、気になります

Ubuntu 22.04 で tinydns が応答しなくなる問題

背景

Ubuntu 22.04 をインストールして、tinydnsソースコードからインストールしたところ、tinydns の動作が不安定になる症状が生じた。

Ubuntu 20.04 ではそのような不具合はなかったので調べることにした。

TL;DR 結論

tinydns インストール前に tinydns-conf.c-d300000-d400000 に変更してから tinydns-conf コマンドで /etc/tinydns へインストールを行う。

既に tinydns インストール済みの場合は、/etc/tinydns/run を編集して -d300000-d400000 に変更してから tinydns を再起動する。

再起動は OS ごと sudo reboot で再起動してもよいし、tinydns だけ再起動する場合は svc -k /etc/tinydns を実行する。

症状

tinydns 起動後、dig の問い合わせに対して最初の数回は応答が返るものの、その後一切応答が返らなくなる(ゾーンが存在しないドメイン名に問い合わせたかのような応答となる)。

続きを読む

VALUE-DOMAIN に存在していた2種類のドメインハイジャック脆弱性について

2022年3月2日に確認した VALUE-DOMAIN でのサブドメインハイジャックが可能な脆弱性について経緯を説明します。

ついでに2016年の記事「VALUE-DOMAIN に存在していたアカウント乗っ取り可能な CSRF 脆弱性について」の続報も含めて、この記事で2022年現在の VALUE-DOMAIN の状況についてお伝えします。

脆弱性を2つ発見しました

2022年3月2日に第一の脆弱性を、3月9日に第二の脆弱性を発見しました。これらについて順に説明します。

第一の脆弱性については、私よりも先に発見していた方がいます。その方から情報を聞いて検証し、私が IPA に届出したという経緯です。

続きを読む

Invalid な HTML のせいで counter-reset の仕様が捻じ曲げられた件

hn要素をナンバリングするテクニック

ここは h2 のセクションです。このブログではPC版のみですが、見出し文言の左上に ::before 疑似要素でCSSによる自動ナンバリングを行っています。

見出し1-1

ここは h3 のセクションです。

見出し1-1-1

ここは h4 のセクションです

見出し1-1-2

ここは h4 のセクションです

見出し1-2

ここは h3 のセクションです。

見出し1-2-1

ここは h4 のセクションです

いつの間にかこの採番がずれていた

body { counter-reset: n1 n2 n3 n4 n5 n6; }
h1 { counter-increment: n1; counter-reset: n2 n3 n4 n5 n6; }
h2 { counter-increment: n2; counter-reset: n3 n4 n5 n6; }
h3 { counter-increment: n3; counter-reset: n4 n5 n6; }
h4 { counter-increment: n4; counter-reset: n5 n6; }
h5 { counter-increment: n5; counter-reset: n6; }
h6 { counter-increment: n6; }

h1::before { content: counter(n1) "."; }
h2::before { content: counter(n1) "-" counter(n2) "."; }
h3::before { content: counter(n1) "-" counter(n2) "-" counter(n3) "."; }
h4::before { content: counter(n1) "-" counter(n2) "-" counter(n3) "-" counter(n4) "."; }
h5::before { content: counter(n1) "-" counter(n2) "-" counter(n3) "-" counter(n4) "-" counter(n5) "."; }
h6::before { content: counter(n1) "-" counter(n2) "-" counter(n3) "-" counter(n4) "-" counter(n5) "-" counter(n6) "."; }

こんな雰囲気のCSSを書いています。

「1章目」の例では、1, 1-1, 1-1-1, 1-1-2, 1-2, 1-2-1 となるべきです。

それがなんと Firefox の最新版で見たら 1, 1-1, 1-1-1, 1-1-2, 1-2, 1-2-3 となっていたのです。より分かりやすい図をお見せしましょう。

赤字に自動採番、黒字に本来のナンバリングを示した図

赤字と黒字が同じになるのが期待する状態ですが、Firefox ではバージョン82からこの挙動が変わって、自動採番の結果が異なるものになっていたのです。

続きを読む

POJ-1082をショートコーディングしてみたよ!

はじめに

競技プログラミングが普及して、AtCoderAOJ とする日本語のジャッジシステムが登場して久しいものです。私が大学時代にICPCに参加していた頃(2006年頃)は日本語のジャッジシステムは存在せず、北京大学のオンラインジャッジシステム(POJ)をよく利用していました。

今回は、そんな POJ - 1082 の問題をショートコーディングする話です。この問題はICPCアジア地区予選、2001年韓国Taejon(テジョン)の A 問題です。アジア地区予選の1問目、納得できる難易度です。

続きを読む

失効証明書とOCSPの不思議な関係

1月29日に271万件のLet's Encrypt証明書が失効した

特定の条件で発行したLet's EncryptのSSL/TLSサーバ証明書が無効化されるニュースが2022年1月26日(日本時間)に発表されました。該当者にはメール通知が届いており、jpドメインだけ見れば2月9日時点で7割ほどが対応済み(詳細は4章を参照)のようです。

通常、一度発行したサーバ証明書は期限(expires または notAfter と呼ばれるもの)までは正常な動作のために使用することができますが、期限内であっても何らかの理由で証明書が失効(revoke)させられることがあります。

Let's Encrypt の場合は certbot revoke コマンドを実行することで意図的に失効させることもできます。

失効しているかどうかの情報は証明書自体は持っていません。それは、ある事情で社員証を返すのが遅れ、退職日以降もその会社の社員証を持っているような状況に似ています。Webブラウザは、証明書が有効なものかどうかを別の手段で確認する必要があります。

この記事では簡単のため「Webサーバ」と「Webクライアント(Webブラウザ)」の関係で説明しますが、この記事の内容は「TLSサーバ」と「TLSクライアント」の間に成り立つ仕組みの話です。

続きを読む

ssmjp 2019/04 参加記 - 黒塗りのDNS

ssmjpに参加しました

#ssmjp 2019/04 - DNSの話を聞く会

「ささみjp」のDNSの回に行ってきました。「#ssmjpとは」にちらっと書いてあるけど、新橋で開催されていた勉強会で Shimbashi-Study-Meeting 略して ssmjp らしいです。

「浸透いうな」の @tss_ontap_o さんが「黒塗りのDNS (萎縮編)」をこの ssmjp で発表すると聞いて参加しました。

続きを読む

(2019-04-05) 再演版:外国人との英語での働き方講座の参加記

すべてのはじまり

2019年3月12日、ちょまどさんがロッシェルさんと「外国人とのコミュニケーションに関する英語系のイベント」の開催を予告。3月22日開催

その日の夜にイベントページを作成して、翌日告知しようとしていたのだけれど、なんと告知前に参加申し込みが殺到。先着100人枠が一瞬で埋まった!

ちょまどさん、初のイベント開催でいきなり戸惑う。急遽、動画撮影の協力を募り、さらに4月5日に再演を決定。再演の方は先着ではなく抽選形式に変更。枠も200人に増えた。最終的に枠は280人まで増えた。

ちょまどの大発表

そんな中、2019年3月18日に突然「ちょまどの大発表」ツイートが。

この話の詳細は、3月22日開催のイベントに(先着100人なのに340番目くらいだったので)参加できなかった私が記念に書いた記事でも読んでください。

この記事は、4月5日の再演版に参加できた私の感想記です。

ところで、connpassのイベントページの抽選機能を使って再演版は200人の抽選にしたようですが、ちょまど氏は人力で抽選すると思っていたようです。そのため抽選材料として「参加の意気込みコメントの入力が必須」となっていました。(これさすがに公開されないと思うけど、みんな一体どんなこと書いたんだろう)。

続きを読む

Next debiru's HINT 「WebはWEBじゃない