구글 DevSite 공유 Flask 세션 쿠키의 pickle 취약점으로 원격 코드 실행 가능 ($90k 바운티)
- /oauth2authorize 요청으로 받은 세션 쿠키 안에 pickle 직렬화 객체가 들어 있었고, 여기에 OAuth client_secret이 평문으로 담겨 있었음
- client_secret을 Flask SECRET_KEY로 넣으면 서명이 일치해서 세션을 자유롭게 위조할 수 있었음 (서명 키가 서명 대상 객체 안에 있었음)
- 위조한 세션으로 콜백의 pickle.loads에 임의 객체를 넣을 수 있었고, time.sleep 지연 시간이 지정한 값과 정확히 일치해 실행이 확인됨
- 같은 DevSite 플랫폼을 쓰는 firebase.google.com, developer.android.com, source.android.com, docs.partner.android.com에서도 같은 키로 유효한 세션이 만들어짐
- 보고서는 2026년 8월 6일 제출되어 8월 7일 수락됨. 글쓴이는 OAuth 시크릿 교체, 서버 측 세션 저장, pickle 제거 등 네 가지 수정이 필요하다고 정리함
Hacker News opinions
글쓴이가 Claude를 쓴 건지 자기가 찾은 건지 본문에 안 나와 있음. 그런데 글이 통째로 LLM 말투라 중간부터 훑게 됨
LLM은 도구고 어디를 볼지 고르는 연구 감각은 여전히 사람 능력임. 나도 Claude 써봤는데 버그는 못 찾았음
이런 결과 뽑으려면 맥락 잡고 프롬프트 짜는 데 드는 사전 지식이 엄청남. 그걸 그냥 Claude가 했다고 치부하는 건 너무 가벼움
오픈소스 스캐너 썼으면 공이 도구한테 가냐고? 그럼 Claude도 도구일 뿐이라는 얘긴데 그럼 사람 기여는 어디서 계산함
$90k 받기 힘든 구글 바운티인데 글 자체가 LLM 말투라 읽기 짜증남. 직접 쓴 메모나 프롬프트라도 공개해주면 좋겠음
AI가 만든 보안 결과는 초보 냄새가 남. RCE급은 전문가가 방향 잡아주고 본인 방식으로 파야 나옴
바운티 노리는 사람한테 조언하자면, 이런 큰 보상은 끝물이라 봄. AI 도구가 시세를 토큰 비용 수준으로 끌어내릴 것 같음
구글 같은 곳에서 쿠키에 client_secret 들어간 게 어떻게 코드 리뷰를 통과하냐는데, 디버깅하다 객체 통째로 쿠키에 넣고 안 지웠을 수도 있음
버그는 누구 코드에나 있음. 알고 나면 다 뻔해 보이는 게 원래 보안 버그임. 바운티 금액이 쉽지 않았다는 증거임