
CVE-2026-11102에 대한 개념 증명(PoC) 익스플로잇으로, 검증되지 않은 redirect_uri를 통한 OAuth2 암시적 승인(implicit grant) 프래그먼트 하이재킹을 시연하여 액세스 토큰 유출 및 계정 탈취로 이어집니다.
// oauth_server.js - OAuth2 provider issuing tokens in fragment
const express = require('express');
const app = express();
app.get('/authorize', (req, res) => {
const redirectUri = req.query.redirect_uri;
const state = req.query.state || '';
// Simulate user approval: redirect with access token in fragment
const token = 'secret_access_token';
res.redirect(`${redirectUri}#access_token=${token}&state=${state}`);
});
app.listen(3000, () => console.log('OAuth server on :3000'));
OAuth2 공급자는 redirect_uri를 화이트리스트와 대조하여 검증하지 않고 암시적 승인(implicit grant) 흐름을 구현합니다. 공격자는 악의적인 URI를 제공할 수 있으며, 사용자가 인증한 후 액세스 토큰이 URL 프래그먼트를 통해 공격자의 페이지로 유출됩니다.
redirect_uri가 사전 등록된 값과 정확히 일치하는지 검증하지 않아, 공격자가 제어하는 도메인으로의 리디렉션이 허용됩니다.npm install express
node oauth_server.js
python exploit_fragment_hijack.py