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

Image uploadUrl is not pinned to HTTPS or a Meetup host

オープン 初心者向け
#12 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

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

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
typescript
領域
security

調査の方向性

src/meetup/response-schemas.ts:146 から開始し、ローカルファイルのバイト列を送信する PUT まで、写真プレースホルダーの mutation を追跡してください。受け入れられる URL スキームとホストサフィックスを確認し、無効な URL が PUT の発行前に meetup_api エラーを生成することを検証してください。

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

説明

Area: Backend Type: Bug

Summary

The upload URL returned by the photo-placeholder mutation is validated with z.url() at src/meetup/response-schemas.ts:146, and the server then PUTs local file bytes to whatever came back.

z.url() in Zod 4 accepts far more than intended. Confirmed accepted: file:///etc/passwd, http://localhost:8080/x, http://169.254.169.254/latest/meta-data/, ftp://x/y.

Impact

Low likelihood, since the response arrives over TLS from api.meetup.com and exploiting this requires a compromised Meetup API or TLS interception. Filed because the fix is a one-liner and the consequence is that local file contents get written to an attacker-chosen destination.

Suggested fix

Require the scheme to be https: and the host to end in a known Meetup or storage-provider suffix. Reject anything else with a meetup_api error before the PUT is issued.

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

環境構築

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

はじめの一歩

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

SSWConsulting/SSW.MeetupMCP のほかの issue

SSWConsulting/SSW.MeetupMCP の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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