みなさん、こんにちは!
NPO法人Rubyプログラミング少年団の高尾です。
本法人で利用している教材「スモウルビー」の新しいバージョン(smalruby-editor 0.4.1とsmalruby 0.1.11)を公開しました。
脆弱性JVN#50197114(CVE-2017-2096)の対応を含んでいますので、すみやかに最新のスモウルビーをインストールしてください。
新しいスモウルビーは、コマンドプロンプトやターミナルで、次のコマンドを実行するとインストールできます。
gem install smalruby -v 0.1.11
gem install smalruby-editor -v 0.4.1
Windowsを使っている人は、こちらの手順を参考にして、最新のインストーラを使って、新しいスモウルビーをインストールすることもできます。
それぞれのソフトウェアについて、変更したところを説明します。
smalruby-editor 0.4.1
smalruby-editorは、Scratchのように命令ブロックを組み合わせて、プログラムを作成するためのビジュアルプログラミングエディタです。命令ブロックからRubyのプログラム、また、Rubyのプログラムから命令ブロックに変換できることが特徴の一つです。
新しいバージョンの0.4.1では次のことを実現しました。
脆弱性JVN#50197114(CVE-2017-2096)に対応
smalruby-editor 0.4.0以前には、ログインID、またはプログラム名を細工することで、遠隔の第三者によって、smalruby-editorが動作するコンピュータ上で、任意のOSコマンドを実行される可能性がありました。この問題に対するJVN識別番号とCVE識別番号は、それぞれJVN#50197114とCVE-2017-2096です。
この問題には、smalruby-editor 0.4.1 で対応しました。
修正内容は https://github.com/smalruby/smalruby-editor/commit/5b5e7f2ec3808152c772197e0c4143fb507290d5 から確認できます。
ログインIDとプログラム名に空白を含めることができるように修正
ログインIDとプログラム名に空白を含むことができるようになりました。
これまでは、「高尾 宏治」のようなログインIDや、「game program.rb」のようなプログラム名を指定すると、実行ボタンを押しても、プログラムを実行できませんでした。
スモウルビーを起動したコンピュータのみ、スモウルビーを操作できるように修正
run-smalruby.batやsmalruby-editorコマンドでスモウルビーを起動した場合に、スモウルビーを起動したコンピュータ(IPアドレスが127.0.0.1のもの)からのみ操作できるようにしました。
以前と同じように、別のコンピュータからもスモウルビーを操作できるようにする場合は、run-smalruby.batの一番下の行を次のように修正したり、smalruby-editorにコマンドラインオプション「--binding=0.0.0.0」を指定して起動してください。
@start smalruby-editor --binding=0.0.0.0
命令ブロック「♣キーボードの (キー) が (押された|押され続けている) のとき」を「♣キーボードの (キー) が (押された|押され続けている) とき」に変更
イベントジャンルの命令ブロック「♣キーボードの (キー) が (押された|押され続けている) のとき」の表現が日本語として間違っていたため、「♣キーボードの (キー) が (押された|押され続けている) とき」に修正しました。
smalruby 0.1.11
smalrubyは、Scratchの命令ブロックの処理をRubyで実現したものです。例えば「10歩動かす」という命令ブロックを、「move(10)」というRubyの命令として表現できるようにします。
新しいバージョンの0.1.11では次のことを実現しました。
Windowsでスモウルビーのプログラムの実行直後からキーボードで操作できるように修正
Windowsにおいて、スモウルビーで作成したプログラムを実行後、表示されたウインドウをクリックしないとキーボードの操作を受け付けない問題を修正しました。これからは、プログラムを実行するたびにウインドウをクリックする必要はありません。
キャラクターの大きさが元に戻る不具合の修正
キャラクターの大きさ(Character#scale)を変更したあとで、キャラクターの向きを変えると、キャラクターの大きさが元の大きさに戻ってしまう不具合を修正しました。
いくつかの命令ブロックに対応するRubyの処理を追加
次の命令ブロックに対応するRubyの処理を追加しました。ただし、残念ながら、まだ命令ブロックは追加していません。
- 音ジャンル
- 音量を( )%にする:
Character#volume=
- ペンジャンル
- 消す:
Character#clear
- ペンの色を( )にする、ペンの色を( )ずつ変える:
Character#pen_color=
- ペンの濃さを( )にする、ペンの濃さを( )ずつ変える:
Character#pen_shade=
参考情報
このページの更新履歴
- 2017-01-24: JVN#50197114の公表に伴い、JVN#50197114とCVE-2017-2096へのリンクを追加。