このレポートには指定された言語の翻訳がありません。代わりに正規の英語レポートを表示しています。

バージョン付きセキュリティ評価

レポートID: SA-72D5025B

7/6/2026, 11:16:44 AM

ticktick-cli セキュリティ評価 v7

スキルセキュリティ認証レポート

監査履歴
監査モデル: codex 過去のレポート
スキル名
ticktick-cli
バージョン
v7
メンテナー
DCjanus
カバレッジ
6 スキャンされたファイル · 1,927 解析済み行数
ポリシーバージョン
利用不可

確認済みの検出結果における最高重大度

高

1 件の確認済みセキュリティ検出結果に対応が必要です。

インストールのコンテキスト

履歴上の証拠

このレポートは、現在インストール可能な成果物を説明していない可能性があります。インストールに関するガイダンスについては、現在の Skill ページを開いてください。

現在のスキルページを開く

このレポートは、マニフェストまたは ZIP をブロックも承認もしません。

Most static alerts are false positives from Markdown backticks, API documentation fields, and normal UTF-8 README content. Confirmed risk remains because the skill performs authenticated network requests to Dida365 and directs OAuth setup through an author-controlled worker URL. No prompt-injection text was found in the scanned files.

レポートの位置

過去のレポート

このレポートを使用してインストールする前に、監査履歴を開いてください。

監査アテステーション

証明不可

必要な不変のバインディングは不完全です。

人による検証

未検証

このレポートには人による検証は記録されていません。

カバレッジ

6 スキャンされたファイル · 1,927 解析済み行数

レビュー対象の項目を 10 件表示

制限事項

このレポートはランタイムまたはサンドボックスでの実行を主張するものではなく、副作用がないことを証明するものでもありません。

証拠チェーン

ソースバインディングからインストール契約まで証拠をたどってください。利用可能な証拠は検証を支援しますが、安全性を保証するものではありません。

  1. ソース

    バインディングは利用できません

  2. アーティファクト

    IDが不完全

  3. 監査

    完了

  4. インストール契約

    検証するためにマニフェストを開く

    マニフェストを開く

確認された機能

「確認」とは、このレポートで裏付けとなる証拠が記録されていることを意味します。「記録なし」は、機能が存在しないことを証明するものではありません。

スクリプトを含む

Skillに含まれるコードを実行する場合があります。

1 件の証拠箇所で確認

ネットワークアクセス

外部サービスに接続する場合があります。

11 件の証拠箇所で確認

ファイルシステムへのアクセス

ローカルファイルの読み取りまたは書き込みを行う可能性があります。

この監査では記録されていません

環境変数

プロセス環境から値を読み取る可能性があります。

この監査では記録されていません

外部コマンド

Skillの外部にあるコマンドまたはプログラムを呼び出す場合があります。

46 件の証拠箇所で確認

機能レビュー項目 (9)
高
Hardcoded URL
"https://ticktick-oauth.dcjanus.workers.dev/callback";
The redirect URI is hardcoded to the author's Cloudflare Worker domain. Users relying on the default OAuth flow must trust that third-party deployment with token exchange.
高
Hardcoded URL
AUTH_URL = "https://ticktick-oauth.dcjanus.workers.dev/authorize"
The CLI points users to the author's Cloudflare Worker for OAuth authorization when a token is missing. That default creates a third-party token broker risk.
低
Fetch API call
const response = await fetch(TICKTICK_TOKEN_URL, {
This fetch POST exchanges an OAuth code at the Dida365 token endpoint and includes client credentials. It is intended, but it is real external network traffic carrying authentication material.
低
Hardcoded URL
const TICKTICK_AUTH_URL = "https://dida365.com/oauth/authorize";
The code hardcodes the Dida365 OAuth authorization endpoint. This is expected for the integration, but it is a real external service dependency.
低
Hardcoded URL
const TICKTICK_TOKEN_URL = "https://dida365.com/oauth/token";
The code hardcodes the Dida365 token endpoint used for OAuth exchange. This is expected, but it handles credential-bearing network traffic.
低
HTTP client library
def _request(
This helper defines the request path used by the API client. It sends bearer-authenticated requests to the configured Dida365 API base URL.
低
HTTP client library
return self.session.request(
The code calls httpx.Client.request with Authorization headers and task payloads. This is intended but confirms outbound network access with sensitive data.
低
HTTP client library
response = self._request(method, path, params=params, payload=payload)
This line routes API operations through the request helper. It confirms that project and task commands reach outbound HTTP request code.
低
Hardcoded URL
DEFAULT_BASE_URL = "https://api.dida365.com/open/v1"
The client hardcodes the default Dida365 Open API base URL. This is legitimate for the integration, but it is an external network endpoint.

リスク指摘

確認済みのセキュリティ上の懸念事項は、引き続きレビューが必要な項目と分けて表示されます。

確認済みのセキュリティ上の懸念 (1)

RISK-001 高
Author-Controlled OAuth Token Broker
The CLI and worker default to https://ticktick-oauth.dcjanus.workers.dev for OAuth authorization and callback handling. That makes users depend on an author-controlled service during access token exchange.
The hardcoded authorize URL, redirect URI, and README deployment note all point to the same author-controlled worker. This directly affects OAuth token handling.

是正措置

この監査で推奨される修正が記録されています。これらを適用する責任はメンテナーにあります。

  1. FIX-001
    高
    Author-controlled OAuth endpoint is used by default.
    Make the authorize URL and redirect URI configurable, and document a self-hosted worker deployment path for users.
  2. FIX-002
    中
    Bearer tokens and task data are sent to the configured API base URL.
    Warn users before changing the base URL, and consider restricting token-bearing requests to trusted Dida365 endpoints by default.
  3. FIX-003
    中
    Delete commands do not require confirmation.
    Add an explicit confirmation step or a force flag for project and task deletion commands.
  4. FIX-004
    中
    OAuth callback does not validate state before returning an access token.
    Store and validate state for the OAuth flow, or clearly document that the helper is only for trusted single-user deployments.

専門家による証拠

不変の対象ID、スキャナーメタデータ、除外された一致項目、およびソースレベルの証拠。

アーティファクト主体

Marketplace コミット
利用不可
コンテンツハッシュ
利用不可
ツリーハッシュ
利用不可
Skill パス
利用不可
監査ペイロードハッシュ
利用不可

分析メタデータ

監査モデル: codex

分析状態: 完了

対象範囲は、記録されたファイル、行、メソッド、および証拠に限定されます。ランタイムまたはサンドボックスでの実行は主張していません。

検証とエクスポート

マニフェストとロックファイルは、インストール成果物を暗号学的ハッシュに結び付けます。この完全性に関する主張は、セキュリティ評価とは別のものです。

監査アテステーション: not_attestable