Nucleus

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

Nucleus CMS ver 3.62に、XSS脆弱性 [Nucleus]

2011年3月5日

Nucleus CMS ver 3.62に、XSS脆弱性があることが確認されました。

japan.nucleuscms.org: Nucleus CMS ver 3.62 の createaccount.phpにXSS脆弱性
nucleuscms.org: Nucleus CMS 3.63 Released

それぞれ、次のようなケースで攻撃を受ける可能性があります。

英語版 3.62:
・"Configuration"の"Member Settings"で、"Allow Visitors to Create a Member Account"を"yes"にしている場合。

日本語版 3.62:
・「グローバル設定」の「メンバー設定」で、「ビジターによるメンバーアカウント作成を可能にする」を「はい」に設定していて、かつ、
・createaccount.phpのPHP文法上の誤りを修正して使っていて、かつ、
・PHPの設定で、registerglobals=ONとしている場合。

NP_SkinExtensible [Nucleus]

2009年3月11日

Nucleusのスキンについて、派生スキンを作成するためのプラグインを作成したので、ここでも紹介します。

ソースコード及び使用方法は、Wikiを参照してください。注意点としては、NP_SkinVarManagerをインストールしておく必要があることです。

ここでは、どのようにすれば派生スキンが作成できるのか、一例を挙げておきます。

SQLクエリのキャッシュ:実験失敗 [Nucleus]

2008年12月25日

失敗した実験も記録しておかないと、あとでまた同じ事を試そうとするかもしれないので…。

Jeansのコードを書いているときに、Nucleusのコアのコードを眺めることがあるのだが、ふと思ったことは、同じSQLクエリーを繰り返し実行しているのではないかということ。これは正直、無駄である。なので、SQLクエリーをキャッシュして、再利用できないかを探ってみた。

NP_skinsetting [Nucleus]

2008年12月23日

yama.kymsさんのNP_SkinEditを見ていて気がついたのは、ブログ情報表示のための<%blogsetting%>に相当する、スキン情報を表示するためのスキン変数がNucleusには無いこと。

もしあれば、何か便利かもしれない。今は思いつかないけれど。

なので、作ってみた。もしかしたら、似たプラグインがすでにあるかもしれない。

Nucleusメディアマネージャにおける脆弱性 [Nucleus]

2008年12月16日

Nucleusのメディアマネージャ(コアに付属のもの及び、プラグインによるもの)に、ディレクトリ・トラバーサル等の脆弱性が発見されています。

詳しくは、フォーラムの当該記事をご覧ください。主に、複数ユーザでNucleusを用いているときに、大きな問題が生じます。コアについてはすでにパッチ(SP3)が出ていますので、複数ユーザで使用の方は3.31 SP3にアップグレードしてください。単独ユーザ、もしくは100%信頼できるメンバーでのみNucleusを運営している場合は、アップグレードの必要はありません。

また、同様の脆弱性がNP_Mediatocu及びNP_ImprovedMediaに発見されています。NP_Mediatocuについては、複数・単独ユーザでの使用に関わらず、対策版が出るまではアンインストールすることをお勧めします。NP_ImprovedMediaに関しては、単独メンバーでの使用は問題ありませんが、複数メンバーで使用している場合は対策版が出るまでの間はアンインストールをお勧めします。

Nucleus-SQLiteでも、SP3を用意しました。該当する方は、アップグレードをお願いします。

メインの目次ページで、prevlink, nextlink [Nucleus]

2008年12月16日

Jeans CMSの製作過程において、Nucleusのさまざまなスキン変数を眺めているが、先日、<%prevlink%> <%nextlink%>の2つのスキン変数が、メインの目次ページでも使えることを知った。

ただし、<%if(previtem)%>などは使えない。これは、個別アイテムページ及びアーカイブページでのみ使えるようである。なので、次や前のページが無いときにリンクが表示されないようにするには、少し工夫が必要。

JavaScriptを用いれば、こんな風に使える。
<a href="<%nextlink%>" id="nextlink">older items</a>
<a href="<%prevlink%>" id="prevlink">newer items</a>
<script type="text/javascript">
function hide_link(id){
  var element=document.getElementById(id);
  if (element.href=="" || element.href==document.location)
    element.style.display="none";
}
hide_link("nextlink");
hide_link("prevlink");
</script>

NP_ShowBlogsやNP_PageSwitchを使うまでもないような、ちょっとしたページ遷移に便利かも。

プラグインをコピーして使う [Nucleus]

2008年11月15日

Nucleus JPフォーラムでのあるトピックで、一つのプラグインを二つの異なるプラグインとしてインストールできれば、有用であるケースがあることを知った。フォーラムでの結論としては、プラグインのPHPファイル及び下層ディレクトリのファイル名を書き換えてコピーし、クラス名も同じ名で書き換えることで対応できるということになった。

このような対応をした場合、後にプラグインのアップグレードをする時は、コピー元とコピーしたプラグインの両方を変更しなければならない。

masさんがtwitterで、これを解決する方法をつぶやいていたので、少しまとめてここにメモ。

Nucleus 3.31 SP2出ました(EUC-JP版のみ)。 [Nucleus]

2008年9月27日

XSS脆弱性を修正した、3.31 SP2が出ました。ただし、脆弱性はEUC-JP版を、インターネットエクスプローラ・バージョン6で用いたときに、出ます。ですので、次の事例に該当する場合は、現在のところバージョンアップする必要はありません。

1)UTF8版、および英語版を用いている場合
2)EUC-JP版を、イントラネットなどのローカル環境でのみ使用しており、かつ、閲覧している全員がIE7もしくはFireFoxなどのブラウザのみを用いている場合。

EUC-JPを用いているけれども、管理にはIE6以外のブラウザ(IE7やFireFox)を用いているケースでは、危険性は少ないです。ただし、IE6で閲覧した第三者に意図しないサイト表示がされたりする可能性があります。こういったケースでも必ずバージョンアップを行ってください。

なお、SQLite版についてもSP2を用意しましたので、EUC-JPで用いている方はバージョンアップをお願いします。

Nucleusの乗っ取り、その1:スキン変数を自由にマネージする。 [Nucleus]

2008年7月11日

久しぶりに、Nucleusネタ。乗っ取るといっても、クラッキングのことではなくて、プラグインを用いてコアの機能を大幅に変更してしまう話。

ある方とPMでやりとりしていたときに思いついたプラグインがあって、眠らせておくにはもったいないアイデアなのでここで紹介。

Nucleusのスキン変数は、コアで用意されているものと、プラグインで用意されているものと2種類ある。プラグインで用意できるものは、プラグイン名から『NP_』を除いた残りの名前だけ。

また、コアで用意されているものをプラグインでオーバライドすることはできない。例えば、NP_blog という名のプラグインを作成しても、スキン変数<%blog%>ではコアのコードが呼び出されてしまう。

コアの変更はせずに、これらを何とかしようという話。
<<前の記事