自己レスですみません、
ザッとソースを追ってみただけなので不確かですが、どうやらWebSignupの問題のようでした。
0.9.2.1に同梱されてる、websignup.inc.phpですが、
$username = $modx->db->escape($_POST['username']);
$fullname = $modx->db->escape($_POST['fullname']);
$email = $modx->db->escape($_POST['email']);
$password = $_POST['password'];
$country = $_POST['country'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$formcode = $_POST['formcode'];
のようになってまして、『escape』は、dbapi.mysql.class.inc.phpの、
function escape($s) {
if (function_exists('mysql_real_escape_string') && $this->conn) {
$s = mysql_real_escape_string($s, $this->conn);
} else {
$s = mysql_escape_string($s);
}
return $s;
}
のことだと思いますので、$username、$fullname、$emailに関してのみ、SQLインジェクションは防げてるとは思いますが、$country 、$state、$zipなどはSQLインジェクション攻撃可能です。
あと、htmlやjavascriptのコードのエスケープや、文字数制限がなされてないようです。
(emailの文字列チェックはされてました)
適当に入力したemail宛に、ユーザ名として架空請求URL付きのメールを送信できてしまいます。
ユーザ名やパスワードが、httpから始まるものを消すとかの処理も必要かもです。
一般ユーザが入力できるFORMの値は、どんな値でも送信できてしまうので、全て疑ってかかるべきだと思います。
力不足で、MODxのコードを書くときの決まりごとや英語力がないもので、これ以上は何にもできないところがお恥ずかしい限りです :’(