Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Distinct repositories reuse clone and embedding state through name collisions

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

メンテナーはふだん 1 日以内に返信

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

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
backend, security

調査の方向性

Start with Repo._extract_repo_name and trace how its returned name is used to build databases/{repo.name}.pkl under repo.root_path. Reproduce the collision with the GitHub and GitLab URLs given in the issue, then verify that distinct canonical repository URLs produce distinct storage keys and no existing clone or index state is reused.

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

説明

Affected versions: confirmed on main at commit d92819a9 (the project publishes no tagged release).

Summary

Repo._extract_repo_name derives the clone/embedding storage key only from the last two URL path segments (owner_repo). This drops the host and any subgroup path segments beyond the last two, so two different repositories (different host, or a GitLab subgroup path sharing its last two segments with a different repo) can derive the same storage key and reuse each other's clone/index state.

Details

owner = url_parts[-2]
repo = url_parts[-1].replace(".git", "")
repo_name = f"{owner}_{repo}"
save_db_file = os.path.join(repo.root_path, "databases", f"{repo.name}.pkl")

https://github.com/acme/widget and https://gitlab.com/acme/widget derive the identical key acme_widget, as do https://gitlab.com/acme/widget and https://gitlab.com/some/other/group/acme/widget.

POC

(available upon request)

Impact

A caller who primes a colliding storage key (indexing a repository they control whose derived name matches a target's) causes a later request for the real target to reuse that state: cross-repository source disclosure and integrity confusion in the served wiki/chat content.

Suggested fix: key storage with a digest of the canonical scheme, host, full repository path, and type. A fix is included in the linked PR.

Fix: #594

主要言語
Python
スター
18.1k
フォーク
2k
平均マージ
1分
マージ済み PR(30日)
1

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

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

AsyncFuncAI/deepwiki-open のほかの issue

AsyncFuncAI/deepwiki-open の issue をすべて見る

似ている issue

Python の issue をもっと見る

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

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