
Next.js 15.5.2 App Router製ブログアプリ(TypeScript、17件、352行)で、攻撃テスト12件(A01~A12)が修正前は全て成功、修正後は全て遮断。
こういう要約が、毎朝あなたのメールに届きます。
テストアプリは意図的に小規模で、Next.js 15.5.2のApp Router、React 19.1、TypeScript、node:sqliteによるSQLite、Node.js 22.22.0を使い、ソースファイル17件で352行。修正前は攻撃テスト12件がすべて成功し、修正後は12件すべてが遮断された。テストはローカルコピーとダミーデータに対してのみ行い、著者は稼働中のサーバーで試さないよう警告している。
いくつもの穴は特定の手抜きに起因する。プロフィール更新フォームが対象者のuserIdをhiddenフィールドで送っていたため、それを書き換えてrole=adminを追加すると、ログイン済みのBobがAliceの名前を変更し管理者に昇格できた。修正では対象をセッションから読み取り、名前だけを受け付ける。ルートハンドラには認証も所有権確認も一切なく、他人の投稿の削除やログインなしでの下書き閲覧がともに可能で、users APIは平文パスワードを含むSELECT *の出力を返していた。パスワードの修正ではソルト付きscryptを設定N=2^15、r=8、p=3で使い、OWASPはN=2^17、r=8、p=1の最小値と並べて1回の計算あたり約32MiBを使うものとしている。
他の欠陥は制限されていなかった点に関するものだった。検索ボックスとIDパラメータでSQLがクエリに埋め込まれ、画像プロキシは渡された任意のURLを取得し(SSRF)、著者はRailwayの*.railway.internalのようなプライベートネットワークへの懸念と結びつける。アップロードはクライアント提供のファイル名を使ったため、../../pwned.htmlがpublic/uploadsの外に書き込まれた。CORSはリクエストのOriginを資格情報許可付きで反射し、ログイン後のリダイレクトは外部サイトへの絶対URLをたどり、セッションCookieにはHttpOnly、Secure、SameSiteがなく、有効期限は1年でトークンはMath.random()で生成されていた。バージョン固定も重要で、著者はAIが学習したバージョンを書きがちで後のパッチを逃すと指摘する。アプリ固有のSemgrepルールを12件書いたところ、修正前に17件の一致が現れ、修正後は0件になった。ただし著者は、これと公開ルールの検出0件はルールが一致しなかったことのみを意味し、コードが安全だという意味ではないと注意を促している。
業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。
登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →
この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。
Mikita Balesni、Jasmine Wang、Tomek Korbakは10月8日、前週に解雇され書面での理由提示がなかったと述べた

Nathan Lambert氏がエッセイを公開し、AIの進歩はエンジニアリングとインフラの向上で加速すると主張

9月22日、チャート画面から任意の銘柄を試せる「試し打ち(sandbox)」機能を新設し、大型株を実機検証したところ確度38%で却下、予測台帳は76件のまま維持された

臨床工学技士でAIエンジニアの遠藤太一氏がZennで、漏洩対応の第一歩は範囲の定義だと述べ、AnthropicのClaude Codeソース漏洩に関する公式声明を引用した

AIレシピニュースレターの編集チームがClaudeに鉄と羽毛の重さ比べ、モンティ・ホール問題、誕生日のパラドックスの3つを出し、それぞれ2度ずつ反論した

Zennの記事が、ざっくりした仕様をCompanyBrainに書き、目標をOpenAIの常駐エージェントdotsに任せ、上がってきたプルリクエストを確認してマージするだけのワークフローを紹介している
