メインコンテンツへスキップ

GNU Screenに複数のセキュリティ問題が見つかる

·2 分
2025/05 GNU Screen セキュリティ 脆弱性 Tmux システム管理

GNU Screenに複数のセキュリティ問題が見つかる

引用元:https://news.ycombinator.com/item?id=43971716

RMPR 2025/05/13 11:51:43

記事良いねー> screenのマルチユーザーモードって知らなかったんだけど,tmateみたいなのができるのはこれのおかげなのかな.そういえばtmuxも同じ脆弱性の影響あるのかなって思うな.

dooglius 2025/05/13 12:08:06

いや,tmuxはunix domain socket使ってるよ.なんでscreenがsetuidなんて方法選んだのか分かんないな; root権限なんて全然いらない気がするけど.追記:記事をさらに読むと,開発チームがコード詳しくないから,その代わりにsetuid-rootが一番楽だったのかもって説明があったよ.

JdeBP 2025/05/13 12:14:13

screenにはさ,1987年の最初のバージョンから引き継がれてる古い設計のクセがたくさんあるんだよね.set-UIDもその一つだよ.当時のドキュメントここに貼っとくね: https://sources.vsta.org/comp.sources.unix/volume10/screen/

entropie 2025/05/13 13:14:39

個人的にはさ,screenって10年以上前からほぼ終わってる感じだったんだよね(!).tmux出てきてからそっちに乗り換えて,全然screen使ってないし,周りにも結構そういう人いるよ.

dbdoskey 2025/05/13 15:07:46

同じようなことがzellijとtmuxの間でも起きてるんだよね.zellijに乗り換えてから,tmuxが古いって感じるようになったよ.

noosphr 2025/05/13 13:38:59

screenの主な使い方ってリモートでemacs開くことなんだよね.tmuxの主な使い方ってunix IDEのつなぎ役って感じかな.この二つは全然違う使い方で,ツールもそれぞれに特化してるんだ.

DrillShopper 2025/05/13 14:02:06

色々試してるんだけどさ,tmuxのキーバインド全然覚えられないんだよね.もうGNU Screenのキーバインドが頭に染みつきすぎちゃって.

qwertox 2025/05/13 12:29:59

問題なのは screen -x … の使い方そのものじゃなくてさ, ls -l ”$(which screen) ” の結果が -rwsr-xr-x 1 root root … /usr/bin/screen みたいになってる場合なんだよね.これの4番目の s がsetuidビットが付いてる証拠で,つまりscreenがroot権限で動くってこと.
それが screen がroot権限で動くって意味なんだ.

trollied 2025/05/13 12:49:21

俺はsetuidのことよく知ってるよ。親コメントには実際の機能に使う引数を教えてあげてただけだよ。

fullstop 2025/05/13 15:39:14

Zellijは使ったことなかったけど、試してみたよ。見た目はtmuxよりいい感じだし、tmuxとキーバインドが似てるから乗り換えもスムーズだった。だけど、バイナリがめっちゃデカいんだよね。zellijがスタティックリンクなのはわかるけど、tmuxは900KiBくらいで依存も少ないのに。strippedしてもターミナルマルチプレクサが38MiBもあるなんて信じられないよ。

johnmaguire 2025/05/13 15:00:47

最初の投稿者がそれを知らなかったって聞いて驚いたよ。俺がscreenを使うことになった最初の理由(リモートデバッグセッションの共有)だったのにさ。

esseph 2025/05/14 00:22:32

長時間実行するジョブでは、システムからログアウトするとジョブの出力が止まっちゃうから、その状況を見たいってことがよくあるんだよね。

lxgr 2025/05/13 15:10:15

それ(Zellij)はtmuxより何がいいの?それともfishとzshみたいな感じ?どっちも古いわけじゃないけど、ターゲットユーザーが全然違うみたいな。

qwertox 2025/05/14 07:19:33

あとは、SSHでシステムアップグレードしてる時みたいに、ターミナルセッションが切れるリスクを負えない場合とかね。

kstrauser 2025/05/13 16:51:36

確かにね、でもzellijは機能も多いし、一回起動したらそのまま使い続けるものだからバイナリサイズはまあいいんじゃない?単位を調整しないとね。MacでEmacsが350MBもRAM使ってるのを見て驚いたけど、マシンのRAMから見ればほんの少しだし、それより他のリソースで楽しいことしたいって思うよ。

JdeBP 2025/05/13 13:51:02

いくつか要因があるよ。プロジェクトの歴史が複雑で、開発者が何度も入れ替わってる。今screenの内部を学ぶのは、OSの歴史や移植性の問題があって昔よりずっと大変になった。擬似端末の動作やセキュリティ問題の対処もOSによってばらつきがある。screenは1980年代の考え方に縛られてる部分が多いんだ。例えばTERMCAPとかね。セキュリティに対する考え方も変わって、記事にあるセキュリティホールも昔は便利な機能だったりしたんだよ。

fullstop 2025/05/13 18:51:09

フラッシュが128MiBしかない組み込みデバイスをいくつか持ってるんだけど、tmuxはちゃんと動くよ。もちろん、この目的でzellijなんて考えもしないけどね。そこにtmuxが入ってるのは「開発目的には良いものだね」って感じ。メモリ使用量に関しては、Zellijは63MiBくらい使うみたいだけど、tmuxは3.8MiBだよ。良いんだけど、かなりメモリ食いだね。これはLinuxでの話で、Macだと違うかもね。

esseph 2025/05/14 12:37:50

システムアップグレードでセッション切れるなんてありえないだろ,少なくとも俺が知ってるほとんどの環境ではな.

jstanley 2025/05/13 15:17:44

いや,screenの主な使い道は,場当たり的に適当なスクリプトをデーモン化する方法だろ.

kstrauser 2025/05/13 19:09:15

組み込みは全然違うのは確かだね.あんな小さいのにtmuxを入れる余地があるなんて驚きだよ.でもデスクトップシステムなら,俺のMacだとZellijはディスク28MB,RAM40MBしか食わないんだ.これは利用可能なディスクの3万7000分の1,RAMの1600分の1だ.最適化されてて小さいアプリは大好きだけど,これくらいだと俺の注意を引くほどでもないな.

jethro_tell 2025/05/14 04:43:35

ネストできるようにわざわざキーを変えたらしいけど,プレフィックスキーは意図的に分かりにくくしてあって,再マッピングされる前提だって言ってるぜ,たぶんscreenみたいに^aに.

ycombobreaker 2025/05/14 13:59:08

リスクは,インタラクティブな長時間実行プロセス中に他の何かが接続を切断することだ.nohupを使うか,screenかtmuxみたいなものの中で実行すればいい.

entropie 2025/05/14 16:05:07

^aはemacsユーザーにとって最悪だよ,だって^aは行頭への移動で,めっちゃ使うんだもん.何年か前に初めてscreenを使い始めたとき,emacswiki(だと思う)でも言及されてて,^pに再マップするのをおすすめしてたんだ.それ以来screenとtmuxで俺はそうしてるよ.(なんか記憶違いかも)

guappa 2025/05/13 13:43:21

俺のシステムではscreenはsetuid持ってないな.

JdeBP 2025/05/13 14:46:04

OpenBSDへの移植のような作業は大変だ.特に今は難しくて,昔(90年代)の方が情報源(Usenetなど)があってやりやすかった.1980年代にscreenを修正したり自分で似たプログラムを書いたりした経験から言ってる.
https://jdebp.uk/FGA/bernstein-on-ttys/

teddyh 2025/05/13 12:09:43

注:Debianでは,GNU screenはsetuid-root権限でインストールされてないよ.

perlgeek 2025/05/13 13:24:44

それにDebian Stable(別名 bookworm)に入ってるパッケージは古すぎてバージョン5.0.0の脆弱性には影響されないんだ.昔はDebianがいつもソフトのバージョン遅れてるのが嫌いだったけど,今はどうしても古いのに頼りたくない数少ないアプリ(ブラウザとか)には別のパッケージソース使ってるし,それ以外は古いのでも全然大丈夫だよ :-)

bandrami 2025/05/14 02:45:22

Debian stableのユーザーはheartbleedに全く引っかからなかったんだよね.この氷河みたいなペース,もっと評価されていいと思うよ.

rs_rs_rs_rs_rs 2025/05/14 09:49:45

> Debian stableのユーザーはheartbleedに全く引っかからなかったんだよね
引っかからなかった?とんでもない,Debianは何年も前にあの手のバグの先駆けだったんだよ!
https://github.com/g0tmi1k/debian-ssh

bandrami 2025/05/14 12:38:25

それにデフォルトのSELinuxの設定もたしか15年くらい壊れてたんだよね.いつも何かしら問題はあるってことさ.

もっとコメントを表示(1)
krferriter 2025/05/14 02:57:51

氷河みたいに遅いベースのOSに,オプションでサンドボックス化されたもっと新しいユーザーランドのパッケージとかランタイムをホストシステムの上に乗せるって構成,Flatpak/Snap/AppImageの夢だったよね?

bandrami 2025/05/14 04:11:21

うん,でもそれには問題もあるよね.サンドボックスアプリが触るデータこそ大事なデータだし.SilverblueシステムでOpenSSLいくつ動いてるかなんて正直分かんないし.Flathubの誰かが保証してるだけのアプリが金融情報盗む可能性もある.でもシステムファイルを消したりはできない.

rlpb 2025/05/15 16:16:02

それ良い視点だね.でも付け加えるなら,君が実行してる別のFlatpakアプリは,君の金融情報にアクセスするのちゃんとサンドボックスされてるかもしれない.それこそがこういうシステムの本当のメリットだよ.

mjevans 2025/05/13 13:35:15

関連:
https://bugzilla.mozilla.org/show_bug.cgi?id=1966096
DebianでFirefoxを使ってる人は手動でアップデートしてね.パッケージリポジトリが落ちてるから.最初’サポート’チケット出したけど見られてないみたい.

sillystuff 2025/05/13 16:12:59

Mozillaのリポジトリはパッケージのインストールやアップデートには使えそうだよ。Googleのサーバーっぽいからファイル一覧は見れないけど。apt-getでchangelog見たり、パッケージを再ダウンロードできたりすることは確認したよ。

foresto 2025/05/13 23:34:49

他の読者のために明確にしとくね。Debianのfirefox-esrパッケージはFirefoxだよ。単にMozillaのExtended Support Release版で、君が使ってるRapid Release版とは違うってだけ。別のプロジェクトや製品じゃないからね。

jmclnx 2025/05/13 13:22:35

ちなみに、Slackware 15だとscreenのバージョンは4.9.0で、suidはついてないみたい。

jmclnx 2025/05/14 00:49:33

追記ね、Slackware 15はscreenが4.9.1にアップデートされてるよ。このアップデートでセキュリティ問題が直ったんだ。具体的には、PTYの一時的な0666モードを防いだり、ファイル存在テストの情報漏洩を防いだり、root権限でシグナルを送らないようにしたりね。

jesprenj 2025/05/13 12:27:56

Gentooでも同じだよ。でもGentooだとutmpグループに対してSETGIDが付いてるんだ。これってどういう意味があるのかよく分かんないけど。

JdeBP 2025/05/13 13:29:11

utmpグループにいると、ログイン情報データベースをいじれちゃうんだ。Unixから受け継いだこのシステムは、screenみたいな偽端末を使う非rootプログラムがデータベースに書き込みたいっていうのと、rootだけが管理するっていう元々の設計がうまく合ってないのが問題。Laurent Bercotさんがクライアント・サーバーモデルにして改善したけど、グループ内のクライアントならログイン情報を上書きできるっていう設計上の問題はまだ完全に解決してないよ。

anthk 2025/05/13 14:00:42

だから、TMPDIRを$HOME/tmpにしたんだ。

blueflow 2025/05/13 17:20:42

名前以外は、TMPDIRとutmpは関係ないよ。

anthk 2025/05/13 17:46:03

分かってるよ。でも、いくつかの潜在的な競合状態を緩和できるんだ。

ktm5j 2025/05/13 12:37:42

Fedoraに入ってるみたいだね。

mlichvar 2025/05/13 13:31:53

Fedoraでは、rootじゃなくてsetgid screenになってるよ。

znpy 2025/05/13 13:16:04

攻撃対象領域を減らすSELinuxポリシーがあるのかな

JCattheATM 2025/05/13 18:17:51

ほぼ確実にあるよ、Fedoraはベースにある全てのソフトウェアにSELinuxポリシーがあるはずだから。

tmtvl 2025/05/13 13:17:13

Archでも同じだよ。

jedimastert 2025/05/13 12:37:16

レンダリングされたブログ記事はこちらだよ:https://security.opensuse.org/2025/05/12/screen-security-iss

zoobab 2025/05/13 12:46:59

Screenのログ機能のドキュメント足りない件でさ、作者にメールしたんだ。http://www.zoobab.com/screenrc ってとこ。
GNUってさ、もっとちゃんとした課題追跡システム要るよね:)

CelestialMystic 2025/05/13 13:40:23

Tmuxの作者とのQ&Aがあったんだけどさ。16年くらい前にドキュメントが足りないって愚痴ってたんだよ。https://undeadly.org/cgi?action=article&sid=20090712190402

anthk 2025/05/13 13:59:33

TmuxはずっとOBSDのベースに入ってるし、最初からドキュメントもあるよ。

amszmidt 2025/05/14 06:09:08

GNU screenのマニュアルに詳しく載ってるよ。ここね。https://www.gnu.org/software/screen/manual/screen.html#Log

Avamander 2025/05/14 10:49:23

古いプロジェクトの課題追跡システムは、メーリングリストやIRCで情報が埋もれやすいのが問題だよね。Discordもそうだけど、IRCはもっとひどい。
GiteaとかForgejoとかCodeberg、GitLab、GitHubみたいな新しいシステムに移行して、情報を一箇所にまとめて、探しやすくしてほしいな。

sundarurfriend 2025/05/13 15:32:36

Zellijってさ、screenやtmuxの代わりに使えるマジでナイスな今どきのやつなんだ。
デフォルト設定もすっごく良いし、UIも分かりやすいようにマジで頑張ってる。
ターミナルマルチプレクサのメリットに対して、覚えるのがめんどくさいなって思ってる人に超おすすめだよ。
https://zellij.dev
https://github.com/zellij‐org/zellij

collinvandyck76 2025/05/13 15:39:57

2年くらい前に試してみたんだけどさ、かなり洗練されてたよ。
でも、レイテンシがtmuxに比べて結構気になったんだ。
当時すでに回線が遅かったこともあって、それに結構敏感なんだよね。だから今もtmux使ってる。

kstrauser 2025/05/13 17:01:05

私は個人的には感じなかったんだけどさ、そういうのって人によって感じ方が違うもんね。
最近また試してみた? 2年前って言ったら、もうすごく前だよ。
まだもっさり感じるのか気になるな。(開発者じゃない、ただのユーザーだけどね。)

afmrak 2025/05/14 03:20:35

最後にZellijを見た時,マルチプレクサのエコシステムでは素晴らしい新しいプロジェクトに見えたんだけど,純粋なキーボード操作でのコピペ機能がサポートされてなかったんだ。俺はそれをめっちゃ使うから,それ無しじゃ無理だった。だからそれが追加されるまでtmuxだな。

gitaarik 2025/05/14 18:44:01

うん,俺もいつもあれを使ってるよ。キーボード操作にこだわってターミナルを使ってるから,コピペ機能はマジ必須なんだ。なんでマルチプレクサ作るのにこれが無いのか理解できないね。screenやtmuxみたいにvimショートカットでスクロールバックバッファをナビゲートできるのが超便利で,作業がマジ速くなる。マウスなんて使いたくないんだよ。

fergie 2025/05/14 08:02:28

それは良いんだけどさ,俺はマジで,マジでscreenが好きなんだ。コマンドが筋肉記憶に焼き付いてるんだよ。20年以上使ってるからね。

もっとコメントを表示(2)
gitaarik 2025/05/14 18:47:01

初めてtmuxを試した時,俺も同じ感じだったよ。でも結局,screenのショートカットにめっちゃ近くするようにtmuxを設定したんだ。違うのはいくつかだけだけど,それでtmuxの追加機能やプラグインが使えるようになったんだ。興味あるなら俺の設定ファイル共有できるよ。

mmsc 2025/05/13 12:05:31

今回の件にupstreamが関わってたのは意外だな。5年くらい前,GNU screenの開発は完全に止まったって(悲しい)結論に至ったんだけど,まだそうじゃないのか?
あと,既存のscreenにアタッチしないで新しいウィンドウを追加する機能ってscreenにあるんだっけ?

immibis 2025/05/13 13:16:08

オープンソースって,あるソフトが終わってそれを置き換える別のソフトが作られる時に,乗り換える即座のインセンティブがないっていう慣性の問題があるよね。アップデートじゃなくてスイッチだからさ。一方で,Audacityみたいに既存ソフトの商標を誰かが買って全く別のものに置き換えちゃうのも悪い。だから良い解決策って無いんだよな。

Wowfunhappy 2025/05/13 13:27:14

これってdistroの役目じゃないの?例えばDebianがscreenをtmuxに置き換えることを決めて,もしかしたらscreenと同じコマンドライン引数を受け付けるけど内部的にはtmuxを使うみたいな互換性パッケージを出すとか。(俺はscreenをほとんど使ったことないしtmuxも使ったことないから,この文脈でこれが意味をなすかは分からないけど。)

jzb 2025/05/13 12:51:58

upstreamがSUSEチームに見てもらうよう依頼したらしい。開発は人員不足で,upstreamには適切にメンテする専門知識がないのかもしれない。もしそれが本当なら悲しいね―tmuxとか他のがあるのは知ってるけど,たくさんの人が何年もScreenを使ってきたんだから。ツールがbitrotするのは最悪だよ。

marcosdumay 2025/05/13 13:51:33

どう見てもtech-debtまみれの巨大なソフトで,新しい開発者には理解できないみたいだね。もしそうなら,”人員不足”じゃなくて,置き換えられるか書き直されるまで腐っていく運命なんだよ。良いニュースは,ほぼ完璧な代替品がそこら中にあって,しかもほとんどがもっとスリムってことだな。

kevin_thibedeau 2025/05/13 13:44:03

Tmuxはシリアルポートに対応してないよ。

doctoboggan 2025/05/13 16:36:40

screenのカジュアルユーザーなんだけど、代わりにどんなツールを見ればいいの?

kstrauser 2025/05/13 16:57:18

screenより良いのが欲しいならtmux。
概念を見直したのが欲しいならzellij。
俺は後者の方が好きだな。自分の考え方と合ってるし、多くの人が乗り換えて良かったって言ってるよ。前者(tmux)を毎日使ってる人も多いけどね。

bombcar 2025/05/13 18:03:58

tmuxは素晴らしいけど、screenの9割の使い道”切断したりログアウトしてもプロセスを動かし続けたい”には高機能すぎるんだよね。
moshもうまくいったことがあるけど、これもなんか停滞してるみたい。
https://mosh.org
俺の使い道にはこれで十分だけどね。

criddell 2025/05/13 13:44:07

GNUツールの開発が止まるのが必ずしも悲しいわけじゃないよ(バグ修正以外はね)。それは基本的に完成してるってことの表れだと思うんだ。

PhilipRoman 2025/05/13 13:56:53

なんで”screen”が2つの別々の機能を統合したのかよく分かんないんだよね。シリアルポートアクセスには”tio”みたいなもっとミニマルなものを使えるし、そっちの方がずっとエレガントだよ。

croemer 2025/05/13 12:18:29

setuid-rootで配布してる限りは関与してるってこと。
そう設定してるDistrosは脆弱だけど、そうじゃないのは大丈夫。
ほとんど関与してないって言えるかな。’
upstreamが遅すぎたらDistrosがパッチ当てるしね。

im3w1l 2025/05/13 15:47:57

シリアルポートって何?何に使うの?

mmsc 2025/05/13 12:20:06

TFA(記事)によると、upstreamがレビューを求めたって書いてあるよ。

layer8 2025/05/13 17:15:03

普通、ああいう風にツールを別のものに透過的に置き換えることはできないよ。互換性がない例を他のコメントでみんな挙げてくれてるし。
もしDistrosがこっそり置き換えようとしたら、ユーザーの間で大騒ぎになるだろうね。
せいぜい、それを望む人向けに”tmux-as-screen”みたいなパッケージを提供できるくらいじゃない?

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。