systemdで複数の不具合

2017年7月7日 17:28

印刷

記事提供元:スラド

osdn曰く、 多くのLinuxディストリビューションで採用されているシステム管理ソフトウェア「systemd」で、複数の不具合が確認されています。1つは、ユーザー名を指定する個所で数字で始まるユーザー名を指定すると、そのユーザーの代わりに「root」が指定されたことになってしまうというもの(MA.TTIAS.BE)。

 多くのUNIX系OSでは、ユーザー名にはアルファベット小文字と数字、アンダースコアのみが利用でき、さらに先頭には数字は指定できないとされています。そのため、報告を受けたsystemd開発者のLennart Poettering氏は、「数字で始まるユーザー名が不正なのであってsystemdのバグではない」と主張している。しかし、そのようなユーザー名がuseraddでは問題なく作成できたり、adduserでも設定により作成できると指摘され、氏はこう返答しました。「(1)systemdは色々なシステムで動くようにするため、制限が厳しいこともある。(2) ユニットファイルにUser=で指定するユーザー名は一般ユーザーではなくシステムユーザーであるから、厳しく制限して当然。(3)systemdでは、文法エラーはログしてスルーというポリシーである。」

 つまり、ユーザー名が間違っているだけならfatal errorとして停止するが、十進数で始まる名前は文法的エラーなので、ログだけ取って実行は続け、それゆえにrootとして実行されるということです。この点、開発者が「バグはない」と言い張る一方で、ユーザー名を認識できないバグと、そのままrootで動くバグの二つだろうという意見もあります。

 もう1つの不具合は、バッファオーバーランの脆弱性です(CVE-2017-9445マイナビニュースthreatpost)。名前解決のコードにバグがあり、バージョン223以降、つまりここ2年ほどの間のsystemdはTCPペイロードの細工により任意のコード実行まで可能かもしれない脆弱性があったとのこと。systemd-resolvedがデフォルトで起動されるシステムはあまり多くないようですが、ご注意ください。

 スラドのコメントを読む | ITセクション | Linux | セキュリティ | バグ

 関連ストーリー:
「Init Freedom」を掲げるDebianフォーク「Devuan 1.0.0 RC2」リリース 2017年05月11日
systemdの不具合について、「安全ではない言語を使っている」のが原因との指摘 2016年10月06日
Systemd、ログアウト時にバックグラウンドプロセスをkillするよう既定値を変更へ 2016年05月31日

※この記事はスラドから提供を受けて配信しています。

関連キーワード

関連記事