① バージョンとリビジョンとは
ソフトウェアは、機能の追加や不具合の修正を繰り返しています。「どの状態のソフトウェアか」を区別するために使うのが、バージョンやリビジョンです。
| 用語 | 意味 | 教科書に例えると |
|---|---|---|
| バージョン | ソフトウェアの版を区別する番号や名前 | 「第2版」「第3版」など |
| リビジョン | 改訂の状態や変更履歴を区別する番号・識別子 | 「第3版の誤字を修正したもの」など |
ただし、用語や番号の付け方は、製品や開発現場によって異なります。 リビジョンは、開発中のソースコードの変更履歴を指す場合もあり、「小さな修正だけ」を意味するわけではありません。
② PHPのバージョン番号を読んでみよう
PHPは、Webサイトなどのサーバー側で使われるプログラミング言語です。例えば PHP 8.3.8 は、次のように読みます。
| 部分 | 呼び方 | 主な役割 |
|---|---|---|
最初の 8 |
メジャーバージョン | 大きな世代の違いを示す |
真ん中の 3 |
マイナーバージョン | 機能追加などによる版の違いを示す |
最後の 8 |
パッチバージョン | 不具合や脆弱性の修正などを含む版を示す |
PHPでは、最後の数字は「リビジョン」といわれてますが厳密には「パッチバージョン」と説明するのが適切です。
③ 小さな番号の違いが、安全性に関係する
「脆弱性(ぜいじゃくせい)」とは、攻撃に悪用されるおそれのある、ソフトウェアなどの弱点です。
- CVE-2026-109618: メモリ不足(OOM)のエラー処理に起因するリモートコード実行(RCE)の脆弱性 [1]
- 公式の推奨対応: 開発元および情報処理推進機構(IPA)は、全ユーザーに直ちに修正バージョンへのアップデートを推奨しています。 [1, 2]
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35 [1]
授業では、次のように説明できます。
「PHP 8.3.7と8.3.8は、最後の数字が1つ違うだけです。しかし、その違いにはセキュリティ上の弱点への修正が含まれています。番号の変化が小さくても、更新の重要性が小さいとは限りません。」
なお、これは当時の修正例です。現在使う版として8.3.8を推奨する意味ではありません。
④ 本体のバージョンが同じでも、修正されている場合がある
OSの提供元がPHPを配布する場合、本体のバージョンを維持しながら、必要なセキュリティ修正を取り込むことがあります。これをバックポートといいます。Debianも、この方法を採用しています。Debian公式FAQ
例えば、次は仕組みを説明するための架空の表記です。
8.3.7-1 → 8.3.7-2
^^^^^ ^^^^^
本体のバージョンは同じ
末尾の -1 → -2 は、配布パッケージの改訂を示す
このようなパッケージの改訂を「リビジョン」で区別する場合があります。ただし、末尾が増えたというだけで、特定の脆弱性が修正されたとは断定できません。提供元の更新情報との照合が必要です。
⑤ 生徒への確認問題
「PHP 8.3を使っています」と聞いただけで、安全かどうか判断できるでしょうか。
答え:判断できません。 次の情報まで確認する必要があります。
- パッチ番号やパッケージのリビジョンを含む、正確な版
- 使用しているOSや設定が、その脆弱性の影響を受けるか
- 提供元が、どの版で修正済みとしているか
- セキュリティ更新の提供が続いているか
生徒に覚えてほしいのは、**「バージョンやリビジョンは、機能の違いだけでなく、修正が反映されているかを確かめる手がかりになる」**という点です。
