
Apache OpenMeetings 9.1.0 - 高 - リモート - ファイル書き込みの残存 - ADMIN_BACKUPインポートがType.PATHでPath.ofをスキップ
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-backup-config-path
クラス: ファイル書き込みの残存 到達性: リモート
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
CVE-2023-29246 は、Path.of を介した Admin Config の Type.PATH における NUL インジェクションを修正しました。しかし BackupImport.importConfigs は依然として Path.of を経由せずにこれらの行を書き込みます。ADMIN_BACKUP のリストアは、コンバータのパスを生のまま保存します。Java 21 では ProcessBuilder も NUL を拒否するため、これは 29246 のシンクの残存であり、新たな argv RCE ではありません。
| ID | CVE 未割当 |
| クラス | ファイル書き込みの残存 (CVE-2023-29246 の残存) |
| 到達性 | リモート (認証済み ADMIN_BACKUP リストア) |
| CWE | CWE-20, CWE-22 |
| CVSS | High: 6.5 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H |
| 製品 | Apache OpenMeetings |
| 影響範囲 | 9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f) バックアップインポート |
| 認証 | ADMIN_BACKUP (インストーラ管理者が保持) |
| ライセンス | GNU Affero GPL v3.0 |
| ラボ | 127.0.0.1:18160 のみ。apache/openmeetings:min-9.1.0 に Temurin 21 を追加。 |
タグ 9.1.0 に固定しました。NUL ペイロードなし。ffmpeg 実行なし。
ADMIN_BACKUP を保持している (インストーラ管理者、または仕込まれたバックアップ管理者)。設定で imagemagick_path / ffmpeg を任意の文字列に設定したバックアップ zip をリストアします。
| 手法 | シンク | 権限 |
|---|---|---|
admin.sh -r / Wicket バックアップリストア | BackupImport.importConfigs の cfgDao.update Type.PATH、Path.of なし | 整合性 (ラボ実証済み): configuration.path.imagemagick と path.ffmpeg が PATH /tmp/OPENMEETINGS-BACKUP-CONFIG-PATH-WITNESS として保存される。 |
| 後続の変換ジョブ (推測) | これらの行からの imagemagick/ffmpeg/sox/office argv | 整合性 / 可用性 (推測): コンバータが攻撃者のパスを指す。Java 21 の ProcessBuilder は依然として NUL を拒否する。未検証。 |
ラボ実証済み vs 推測: 保存された Type.PATH の証拠文字列はラボで確認済み。コンバータの実行は推測。NUL argv RCE はこの JDK では塞がれている (Path.of で InvalidPathException Nul character not allowed、ProcessBuilder も NUL を拒否)。
対照: Path.of はこの Unix の証拠パスを受け入れます。残存しているのはインポート時のチェック欠如であり、通常の Unix パスに対する Path.of のバイパスではありません。UI の ConfigForm は依然として Path.of を使用しています。
必要条件: ADMIN_BACKUP。リストア。REST SID を用いた Wicket /admin/backup/upload はアクセス拒否を返しました (websocket Client SID が必要)。ラボでは admin.sh -r を使用し、同じ BackupImport.performImport を経由しました。
| 攻撃面 | 理由 |
|---|---|
| Admin Config UI の PATH キー | Path.of (ConfigForm)。NUL は例外を投げる。 |
| Java 21 の ProcessBuilder における NUL | 拒否される。CVE-2023-29246 の RCE はこの JDK では再現しない。 |
| ROOM / LOGIN リストア | ADMIN_BACKUP なし。 |
29246 は UI を修正しました。私は importConfigs を Path.of で grep しました。imagemagick_path → path.imagemagick の再マッピングは Type.PATH を強制し、DAO を更新します。UI がリストア後に使用するのと同じクラスです。
cd lab
./run.sh
ループバック https://127.0.0.1:18160/openmeetings。最後の行を確認:
SUCCESS OPENMEETINGS-BACKUP-CONFIG-PATH-WITNESS
ConfigForm が使用しているのと同じ Path.of / Type.PATH バリデータを BackupImport.importConfigs で実行してください。cfgDao.update の前に、NUL および非正規のコンバータパスを拒否してください。
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
ベンダー: [email protected]