Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
openmeetings-calendar-save-idor — Apache OpenMeetings 9.1.0 - 高 - リモート - IDOR - LOGIN カレンダー保存が予定を上書きし、公開ルームを閉鎖する | Kitploit
ツール/GitHubGitHub/abraxas/openmeetings-calendar-save-idor
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ウェブセキュリティペネトレーションテストラボと実践
GitHubabraxas/openmeetings-calendar-save-idor

openmeetings-calendar-save-idor

Apache OpenMeetings 9.1.0 - 高 - リモート - IDOR - LOGIN カレンダー保存が予定を上書きし、公開ルームを閉鎖する

リポジトリを見る
43日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - openmeetings-calendar-save-idor

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  openmeetings-calendar-save-idor

openmeetings-calendar-save-idor

クラス: IDOR 到達範囲: リモート

Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation

LOGIN 権限を持つ任意のユーザーが、別の予定の id を指定し owner を省略して POST /services/calendar/ を実行できます。保存時の述語は永続化された owner を読み込みません。その後 CalendarMapper、続いて RoomMapper が、紐付くルームの closed / ispublic / name を書き込みます。登録ユーザーが他人の会議を上書きし、公開カンファレンスルームを閉鎖できてしまいます。

IDCVE 未割当
クラスIDOR
到達範囲リモート(認証済み LOGIN REST)
CWECWE-639, CWE-284
CVSSHigh: 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
製品Apache OpenMeetings
影響を受けるバージョン9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f)
認証LOGIN(デフォルトの自己登録で発行可能)
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1:18150 のみ。apache/openmeetings:min-9.1.0 に Temurin 21 を追加。

タグ 9.1.0 を固定し、9773c59e1af327bf988018e661f456ae9997c29f(2026-07-14)を確認しました。最新の GA です。Java 21。master ではありません。

攻撃者ができること

登録する(ウィザード allowFrontendRegister=true)か、任意の LOGIN パスワードを保持します。POST /openmeetings/services/user/login で SID が発行されます。予定の id は連番です。公開ルーム id 2 は標準のカンファレンスルームです。

メソッドシンク権限
POST /services/calendar/?sid= フォーム appointment JSON、owner 省略、被害者の idCalendarWebService.save 述語(CalendarWebService.java:310-329)完全性(ラボ実証済み): タイトル、時刻、メンバーを上書き。ラボではタイトルが OPENMEETINGS-CALENDAR-SAVE-WITNESS になり、owner が 2→3 に変化。
同じ保存。room.closed=trueRoomMapper.get が管理対象エンティティに書き込み(RoomMapper.java:62-92)、その後 dao.update完全性 + 可用性(ラボ実証済み): 公開カンファレンスルームが closed=true、isPublic=false として永続化。SOAP GET /room/2 がその状態を返却。
保存後に攻撃者が GET でタイトル/範囲を取得レスポンス DTO は書き込み後の行偵察(ラボ実証済み): 証跡タイトル。owner 窃取後、被害者の範囲は空。

ラボ実証済み vs 推測: 保存の HTTP 200、タイトル、owner 窃取、ルーム閉鎖はラボで実証済み。同じマッパー上の capacity / moderated ビットは推測です。

必要条件: /openmeetings/services へのネットワーク経路。LOGIN アカウント。被害者の予定 id(連番、または自身で作成して待機)。デフォルトのオープンサインアップ。

閉じたままの隣接領域

領域理由
DELETE /calendar/{id}owner または SOAP/ADMIN。通常の LOGIN では他人のものを削除できない。
範囲 / next / タイトルの読み取りowner スコープ。攻撃者は元の行をクリーンに読み取れない。
録画 MP4異なる ACL(RecordingResourceReference)。
SOAP 専用の userid 別リストRight.SOAP。デフォルトの登録ユーザーは持たない。
未認証の保存performCall には LOGIN 付き SID が必要。

発見の経緯

9.1.0 は CVE-2026-49488(ホワイトボード fuid の OS 読み取り)を修正しました。私は REST オブジェクト id の調査を続けました。カレンダーの 削除 は a.isOwner(sd.getUserId()) をチェックします。カレンダーの 保存 はリクエスト DTO の owner、または null をチェックします。CalendarMapper.get は owner スコープなしで appointmentDao.get(dto.getId()) を読み込みます。その後 RoomMapper が dao.update の前にルーム JPA エンティティをダーティにします。

SOAP で全予約を列挙しているのが LMS 連携アカウントです。この残存物は LOGIN 対 owner です。

ラボ

cd lab
./run.sh

ループバック https://127.0.0.1:18150/openmeetings。公式 docker 管理者 om_admin / 1Q2w3e4r5t^y。自己署名 TLS。Witness の最終行:

SUCCESS OPENMEETINGS-CALENDAR-SAVE-WITNESS

推奨される修正

保存前に永続化された予約を読み込む。SOAP/ADMIN でない限り a.isOwner(caller) を要求する。呼び出し元がモデレートできないルームに対して RoomMapper の書き込みを適用しない。省略された owner は「永続化された owner を維持」として扱い、「呼び出し元が owner になる」とは扱わない。

連絡先

Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]

ベンダー: [email protected]

ツールをダウンロード