Overview
This short video explains how naoyashiga reached 70th place in the ranking of Vercel’s open source bug bounty program on HackerOne, a platform where developers around the world report vulnerabilities to companies and can be paid for them. An earlier video covered vulnerabilities found in Vercel and Cloudflare: no bounty was paid because someone else had reported the same issue first, but that issue has now been resolved.
Key Points
- Resolved reports raise a hacker’s reputation points. The author’s report earned 2 points, enough to tie for 70th, which is effectively last place, since everyone at 70th seems to have 2 points.
- The author began AI-assisted vulnerability hunting at the start of the year and reported the Vercel issue around March or April, so reaching the ranking took roughly 100 days.
- The bug was in Vercel’s AI SDK (the
aipackage), which makes many AI providers’ APIs easier to use. Its secure JSON parsing file was copied almost as is from a Fastify library. - Its regular expression matched
__proto__andconstructoronly as plain strings, so a key written with Unicode escapes slipped past the check and still caused prototype pollution. The original Fastify code handled this, and it is unclear why Vercel’s copy did not. - The fix uses a much more complex regular expression, and its commits appear to have been made by Claude Code.
Chapters
概要
この短い動画では、筆者がHackerOneにあるVercelのオープンソース向けバグバウンティプログラムのランキングで、世界70位になった経緯を紹介します。HackerOneは、世界中の開発者が企業に脆弱性を報告し、報奨金を受け取れるプラットフォームです。以前の動画で紹介したVercelとCloudflareの脆弱性は、先に同じ内容を報告した人がいたため報奨金は出ませんでしたが、その脆弱性がこのほど修正されました。
ポイント
- 報告が解決されると、レピュテーションというポイントが上がります。筆者の報告で得たのは2ポイントで、70位に同率で入りました。70位の人はみな2ポイントのようなので、実質的には最下位です。
- 筆者がAIを使った脆弱性探しを始めたのは今年の初めで、Vercelの脆弱性を報告したのは3月か4月ごろなので、ランキング入りまでおよそ100日かかったことになります。
- 脆弱性があったのは、さまざまなAIプロバイダーのAPIを使いやすくするVercelのAI SDK(
aiパッケージ)です。その中の安全にJSONをパースするファイルは、Fastifyのライブラリーをほぼそのままコピーしたものでした。 - そこの正規表現は
__proto__やconstructorを単純な文字列として照合するだけだったため、Unicodeエスケープを含めて書いたキーでチェックをすり抜け、プロトタイプ汚染を起こせました。元のFastifyのコードでは対策されており、なぜVercel側がそうなっていなかったのかは分かりません。 - 修正ではかなり複雑な正規表現が使われており、そのコミットはClaude Codeによるもののようです。