LabTechUDF / LabTechUDF/python-services

Bug: Email action token not enforced or invalidated, allowing multiple actions on the same event

オープン
#65 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug
主要言語
Python
スター
0
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

説明

Preconditions:
An event exists with status pending review.

Steps to Reproduce:

  1. Trigger a status update email for an event (e.g., “Approve” / “Reject”).
  2. Open the email and click the provided action link.
  3. The event status is updated successfully.
  4. Reuse the same link or a different link from the same email.
  5. Observe the behavior.

Expected Result:
The email token is validated and tied to a single action.
Once an action is performed, the token becomes expired/invalid and cannot be reused.
A second attempt with the same token should return an error (e.g., “Token expired or invalid”).
The system should prevent conflicting actions (e.g., approving and then rejecting with the same token).

Actual Result:
The same token can be reused multiple times.
Different actions (approve and reject) can be performed using the same token.
The token is not considered in validation logic after the first use.

'Acceptance Criteria:
Token is strictly validated against the requested action.
After a successful action, the token is invalidated and cannot be reused.
Attempting a second use returns an error message and no status change occurs.
Conflicting actions cannot be performed with the same token.

https://github.com/user-attachments/assets/0aa2a6ab-12e7-4b86-bfc3-53990fc2f93f

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

Issue には、ソースファイル、テスト、エントリポイントが特定されていません。まずメールのアクショントークンハンドラーとその検証パスを見つけます。完了条件は、アクションが要求されたトークンとアクションに紐付けられ、使用に成功するとトークンが無効化され、再利用時にはステータスを変更せずにエラーが返されることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
authentication, security
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。