1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

2024/04/13~2024/04/19に公開されたCVEの件数と個人的に気になったもの

Posted at

はじめに

脆弱性がたまに話題になりますが、一週間の間にいくつの脆弱性が公開されているか知っていますか?

本記事では、2024/04/13~2024/04/19の一週間の間に公開されたCVEの件数とその中で個人的に気になったものについてまとめてみました。

2024/04/13~2024/04/19に公開された脆弱性

概要 件数
公開されたCVEの件数 1038件
CVSS Base Scoreが7.0以上であるCVEの件数 265件

今回初めて一週間の間に公開された脆弱性の数を調べてみましたが、想像以上に多いですね。一日に140件程度公開されています。

今回調べた期間中ではありませんが、Palo Alto Networks社PAN-OSの脆弱性(CVE-2024-3400)も4月12日に公開され、話題になっていました。

気になったもの

期間の中で気になった脆弱性について調べました。

CVE-2024-28185

概要

https://nvd.nist.gov/vuln/detail/CVE-2024-28185

CVSS Base Score:10.0

judge0(Githubのスター数は2000)というオンラインでコードを実行できるOSSでの脆弱性。シンボリックリンク経由でサンドボックスをエスケープできます。

このアプリケーションでは、サンドボックスディレクトリ内に配置されたシンボリックリンクを考慮していなかったため、攻撃者がこれを利用して任意のファイルに書き込み、サンドボックスの外でコードを実行できる可能性がある脆弱性についてです。

詳細

下記はユーザが送信した実行コードを実行するときのコードの一部。

run_script = boxdir + "/" + "run"
unless submission.is_project
	# gsub is mandatory!
	command_line_arguments = submission.command_line_arguments.to_s.strip.encode("UTF-8", invalid: :replace).gsub(/[$&;<>|`]/, "")
	File.open(run_script, "w") { |f| f.write("#{submission.language.run_cmd} #{command_line_arguments}")}
end

judge0では、実行するためのコマンドをrun_scriptに書き込みを行います。攻撃者はrun_scriptにシンボリックリンクを作成でき、f.writeがシステム上の任意のファイルに書き込む可能性があります。

services:
    server:
      image: judge0/judge0:latest
      volumes:
        - ./judge0.conf:/judge0.conf:ro
      ports:
        - "2358:2358"
      privileged: true # ← 特権モードのフラグがtrue
      <<: *default-logging
      restart: always

さらには、docker-compose.ymlでは特権フラグを使用してDockerコンテナが実行されているため、攻撃者はLinuxホストファイルシステムをマウントできるようになり、悪意のあるcronジョブなどを書き込んでシステムにアクセスできてしまいます。

対策

脆弱性を修正したversionは公開されています。脆弱性のあるversionは、v1.13.0以下。

対策としては、最新のversionである1.13.1以上にアップデートすることです。

おわりに

コンテナのセキュリティとして特権モードのフラグを立ててはいけないと言われますが、CVE-2024-28185の事例を見て、改めて特権モードでの実行の怖さを実感しました。

何かおかしな点がありましたらご指摘ください!

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?