Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ブロック管理:ファイル名に「/」を含むブロックのファイル名を変更したときに500エラーになるケースがある #5562

Closed
ryo-endo opened this issue Aug 17, 2022 · 2 comments
Labels
bug:Low bugbounty2022:issue:entry バグバウンティ2022 バグ報告 Issue登録 bugbounty2022:issue:recognition バグバウンティ2022 バグ報告 バグ認定 bugbounty2022:issue:runbook バグバウンティ2022 バグ報告 再現手順の記述
Milestone

Comments

@ryo-endo
Copy link
Contributor

概要(Overview)

ブロック管理ページ。
現状ファイル名に「/」を含むファイルを作成することができます。(例) ec/ec.twig
このときファイル名のスラッシュを増やして ec//ec.twig と変更して保存をすると、500エラーが発生して、twigファイルも消えてしまいます。

期待する内容(Expect) or 要望 (Requirement)

  • 連続した「/」は不正なファイル名としてバリデーションエラーになること。
    or
  • 連続した「/」は単一の「/」に自動で変換されること。
    or
  • ファイル名に「/」を含めたい要件がないなら「/」を使えないようにする。(要互換性考慮)

再現手順(Procedure)

  1. ブロック管理ページで新規ブロックを作成開始
  2. ファイル名を「ec/ec」にする。他の項目は任意の入力で保存。
  3. 上記で作成したブロックを編集開始する。
  4. ファイル名を「ec//ec」にして保存。 → 500エラー,このタイミングでtwigファイルが消えている
  5. 上記で作成したブロックを再度編集 → 500エラー(twigファイルが存在しないので)

↓gifは再現手順のNo.4まで
画面収録 2022-08-18 0 37 15

ちょっと調べてみたこと

500エラーはファイルが消えたことに起因しています。

[Eccube\Log\Logger:log:64] - システムエラーが発生しました。
 ["Unable to find template \"Block/ec/ec.twig\" (looked into: /var/www/html/app/template/default, /var/www/html/src/Eccube/Resource/template/default, /var/www/html/app/Plugin, /var/www/html/vendor/symfony/twig-bridge/Resources/views/Form).","/var/www/html/vendor/twig/twig/src/Loader/FilesystemLoader.php",250,"
#0 /var/www/html/vendor/twig/twig/src/Loader/FilesystemLoader.php(141): Twig\\Loader\\FilesystemLoader->findTemplate()\n
#1 /var/www/html/src/Eccube/Controller/Admin/Content/BlockController.php(115):

新しいの名前でファイル作成→古い名前のファイル削除、という処理になっていますが、連続した「//」の扱いが上手くできていないため、新旧ファイルパスが同一となりファイルが消えているんじゃないかと推測。

// 更新でファイル名を変更した場合、以前のファイルを削除

環境 (environment)

  • EC-CUBE: 4.2-beta2
    ※公式のdocker環境で確認

関連情報 (Ref)

なし

@chihiro-adachi chihiro-adachi added this to the 4.2.0 milestone Aug 17, 2022
@chihiro-adachi
Copy link
Contributor

@ryo-endo
ありがとうございます!
事象確認しました

@carkn carkn added the bugbounty2022:issue:entry バグバウンティ2022 バグ報告 Issue登録 label Aug 23, 2022
@chihiro-adachi
Copy link
Contributor

#5567 で対応

@chihiro-adachi chihiro-adachi added bugbounty2022:issue:runbook バグバウンティ2022 バグ報告 再現手順の記述 bugbounty2022:issue:recognition バグバウンティ2022 バグ報告 バグ認定 labels Aug 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug:Low bugbounty2022:issue:entry バグバウンティ2022 バグ報告 Issue登録 bugbounty2022:issue:recognition バグバウンティ2022 バグ報告 バグ認定 bugbounty2022:issue:runbook バグバウンティ2022 バグ報告 再現手順の記述
Projects
None yet
Development

No branches or pull requests

3 participants