PSA: おそらくご存知ないであろう WHMCS セキュリティ アップデート (収益に影響) – RackNerd の Dustin に感謝します。
RackNerdのCEOであるダスティン・シスネロス氏(@dustinc)に、 LEB/LETコミュニティにこのヒントを共有していただき、心から感謝いたします。多くのコミュニティプロバイダーがWHMCSを利用していることを考えるとなおさらです。RackNerdのダスティン氏による25230の投稿へのリンクはこちらです。彼はまた、この脆弱性の影響を受けたことがあるかどうかを確認するためのMySQLコマンド(後述)も公開しています。
プロバイダーや WHMCS ユーザーではない場合は、わずか $11.38/年からの VPS システムを含む RackNerd の最新オファーをチェックしてみてはいかがでしょうか。
2023年6月20日、WHMCSはメールやソーシャルメディアでの発表を一切行わず、ひっそりとブログでセキュリティアップデートを公開しました。FacebookにもTwitterにもLinkedInにも何もありませんでした…まるで皆が毎日WHMCSのブログを積極的にチェックし、更新しているかのように。そう思いませんか?/s
WHMCS では、これを「 WHMCS のすべてのバージョンに影響する重要な支払いアサーションの問題と XSS セキュリティの問題が特定されました」と述べています。やれやれ。
分かりました。言い換えれば、実際には支払われていない請求書を、悪意のある人物が支払済みとしてマークすることを可能にしたということです。つまり、自動化に大きく依存し、取引の監査を怠ったプロバイダーは、収益の一部を失う可能性があったということです。
そしてもちろん、WHMCSによる典型的な企業風の発言が続きました。「これらの問題に関する詳細は、現時点では公表いたしません。 」
つまり…WHMCSを最新バージョンに更新するか、 https://blog.whmcs.com/133735/security-update-2023-06-20に記載されているパッチセットの手順に従ってください。
WHMCSの代替品をお探しなら、Clientexecを検討する価値があります。ちなみに、RackNerdはアクティブなRackNerdクライアント全員にClientexecのライセンスを無料で提供しています。なかなか良いですね。
オリジナル投稿/詳細:RackNerdのDustin
WHMCSをご利用のプロバイダーの皆様へ、WHMCSは2023年6月20日に、メールやソーシャルメディアでの告知を一切行わずに、ブログ上でセキュリティアップデートをひっそりと公開しました。これは、その日付以前のWHMCSバージョンすべてに影響します。
WHMCS によると、セキュリティ アップデートは次のように説明されています。「 WHMCS のすべてのバージョンに影響する重要な支払いアサーションの問題と XSS セキュリティの問題が確認されました。 」
これはクライアントに直接影響を与えるものではありませんが、悪意のある人物が実際には支払済みでない請求書を支払済みとして誤ってマークすることを可能にするため、プロバイダーの収益損失につながる可能性があります。
今後この脆弱性を修正するには、WHMCS を最新バージョンに更新するか、 https://blog.whmcs.com/133735/security-update-2023-06-20に記載されているパッチセットの手順に従ってください。
過去に影響を受けたかどうかを確認する方法
確認する最良の方法は、(販売者アカウント内で)あなたに対して行われた支払いと、WHMCS システム内の支払済み請求書を比較することです。
RackNerdのチームによると、この脆弱性は通常、ある請求書IDが実際に支払われているのに対し、別の未払い請求書IDが支払済み請求書と同じ取引IDを共有していることに起因していることが判明しました。悪意のある意図がある場合、通常、少額の請求書は実際に支払われ、同じ取引IDを使用して、より大きな請求書が誤って支払済みとしてマークされます。
プロバイダーの皆様へ:
さらにサポートさせていただくため(手動監査の代替にはなりませんが、正しい方向へ導くための参考として)、RackNerdの開発チームがWHMCSデータベース内で実行できるSQLクエリを作成しました。このクエリは、WHMCSデータベース内に存在する可能性のある重複トランザクションIDを特定するのに役立ちます。以下のクエリは読み取り専用であり、データベースに変更を書き込むことはありませんが、MySQL操作を実行する前にバックアップを取得することをお勧めします。
SELECT a.* FROM tblaccounts a JOIN ( SELECT transid FROM tblaccounts WHERE transid IS NOT NULL AND transid <> ” AND description NOT LIKE '%Refund%' GROUP BY transid HAVING COUNT(transid) > 1 ) b ON a.transid = b.transid WHERE a.transid IS NOT NULL AND a.transid <> ” AND a.description NOT LIKE '%Refund%';
上記のクエリを実行した後、日付順(新しい順)に並べ替え、「invoiceid」列と「transid」列を確認してください。異なる請求書IDで「transid」が同じ値になっている場合は、意図的な変更かどうかを手動で確認することをお勧めします。
WHMCS は「現時点ではこれらの問題に関する詳細は公開されません」と述べて脆弱性に関する詳細を明らかにしていませんが、私たちの観察では、この脆弱性は主に WHMCS を Stripe と組み合わせて使用しているプロバイダーに影響を与えることが示唆されています。