本記事は2024年3月1日に作成・公開されています。記事の情報は、執筆時点での最新情報に基づいています。
本記事の対象者
- 本記事は新ライセンスシステムのもとで、フローティングライセンス形態にて製品をご利用のお客様が対象となります。
- 新ライセンスシステムは2023年6月から稼働しているため、これ以降に製品を購入または更新している方は本記事の対象者となる可能性があります。
問題の要旨
前提
- フローティングライセンス形態でENVI/IDL/SARscapeのライセンスを認証いただくためには、サーバ機にNext Generation License Serverというソフトウェアがインストールされている必要があります。
- このソフトウェアの動作にはNode.jsが必要です。このため、Next Generation License Serverのインストーラには、リリース時点で最新のマイナーアップデート版のNode.jsが同梱されています。
- Next Generation License Serverの現在の最新版は バージョン 4.2.1 というものです。このバージョンに同梱されるNode.jsのバージョンは 18.18.2 です。
問題の詳細と本社の見解
- Node.jsの公式サイトは2024年2月にセキュリティアップデート をアナウンスし、Node.js 18.19.1 をリリースしました。
- 米国本社の見解では、古いNode.jsを利用し続けた場合、CVE-2024-22019に基づくDoS攻撃のリスクがあるとのことです。なお、通常ライセンスサーバは外部インターネットからアクセスできる場所に置かれることは想定しておらず、また、ネットワーク内部においても適切なユーザアクセス権限が設定されている環境では、この影響は限定的であるとのことでした。
- Node.jsがオープンなJavaScript環境であり、新たなセキュリティ上の懸念の発見と改修が今後も継続して行われる可能性が高いという理由から、米国本社では本件の修正パッチの提供やNode.js 18.19.1を同梱したNext Generation License Serverのマイナーアップデート版のリリースについては計画していない、とのことです。
- この問題に関しては、ユーザ様のほうでセキュリティアップデート版に手動でアップグレードいただくことが可能です。本記事では、以下、その手順を記載します。
- 古いバージョンにあたるNext Generation License Server 4.1では、Node.js 16.19.1を利用しています。Node.js 16系は公式のメンテナンス期間が終了しているため、今回のNode.js公式のセキュリティアップデートのサポート対象外です。本件の回避策を実施する場合には、まずはNext Generation License Server4.2.1へのアップグレードを実施ください。
回避策
Next Generation License Serverは特定のNode.jsのマイナーバージョンに強く依存しているわけではないため、同じメジャーバージョンのセキュリティアップデート版に手動で更新することが可能です。Next Generation License Serverが使用しているのはNode.js 18系となります。19系以降のバージョンと組み合わせた場合の動作検証はされておりませんので、必ず同じ18系の中で最新版のものに更新するようにしてください。
以下、利用OSに応じたアップグレード手順を記載します。
Windows環境の場合
- Node.js 18系は現在の最新メジャー版LTSではないため、Previous Releaseのページにアクセスし、「v18.19.1」のReleaseボタンから一覧に進んで、
node-v18.19.1-x64.msi
を入手します。
- [コントロールパネル] > [システムとセキュリティ] > [管理ツール]から[サービス]を起動し、NV5 Geospatial License Server > MongoDB Serverの順番でサービスを停止します。
- 先に入手したNode.jsのmsiファイルを右クリックし、インストールを選択します。
- GUIベースの案内が起動するので、案内に沿って、デフォルトのインストール先
C:\Program Files\nodejs
にインストールします。これによって、現在インストールされている Node.js 18.18.2 は上書きされます。Optionsのインストールについてもメニューのなかで確認されますが、こちらの選択は不要です。
- ふたたびサービスメニューを起動し、MongoDB Serverをまず起動します。安定動作させるためにサービス開始から30秒程度待機し、その後NV5 Geospatial License Serverを起動してください。
- ChromeなどのWebブラウザから管理URL「
http://localhost:4080/dashboard
」にアクセスする等して、認証していたライセンスが再び正常に読み込まれることを確認いただいたのち、クライアント端末で製品が正常に起動できることをご確認ください。
Linux環境の場合
- Node.js 18系は現在の最新メジャー版LTSではないため、Previous Releaseのページにアクセスし、「v18.19.1」のReleaseボタンから一覧に進んで、
node-v18.19.1-linux-x64.tar.gz
といった利用アーキテクチャに応じたgz形式のファイルを入手します。
- NV5 Geospatial License Server > MongoDB Serverの順番でサービスを停止します。
# sudo systemctl stop nv5geospatiallicenseserver.service
# sudo systemctl stop mongod.service
- 退避先フォルダを適当な場所に作成し、License Serverのインストールディレクトリ配下にあるnodeフォルダの中身をすべてこの場所に移動させます。
# mkdir ~/bk_node_yymmdd
# mv /usr/local/nv5/license_server/node/* ~/bk_node_yymmdd/
- 先に入手したnode.jsのgzファイルを適当な場所に展開します。
# gunzip node-v18.19.1-linux-x64.tar.gz
# tar -xvf node-v18.19.1-linux-x64.tar
- 展開されたフォルダ配下に移動し、存在するbinといったファイル/フォルダすべてを、License Serverのnode配下に移動します。
# cd node-v18.19.1-linux-x64
# mv ./* /usr/local/nv5/license_server/node/
- MongoDB Serverをまず起動します。安定動作させるためにサービス開始から30秒程度待機し、その後NV5 Geospatial License Serverを起動してください。
# sudo systemctl start mongod.service
# sudo systemctl start nv5geospatiallicenseserver.service
- ChromeなどのWebブラウザから管理URL「
http://localhost:4080/dashboard
」にアクセスする等して、認証していたライセンスが再び正常に読み込まれることを確認いただいたのち、クライアント端末で製品が正常に起動できることをご確認ください。