무슨 일이 있었나
병합된 풀 리퀘스트에서 검증됨(가져옴): toolsets_for_source가 ':'로 chat_id를 분할하여 경로별 도구 세트 권한을 복구하여 'build:external'이라는 경로가 'build' 도구 세트를 상속할 수 있게 함; 서명된 요청으로 실제 aiohttp 핸들러를 통해 main에서 재현됨. GHSA-2fmg-cjqm-hhrj에 보고됨.
왜 중요한가
웹훅 기반 에이전트 호출은 에이전트 게이트웨이의 표준 통합 패턴임; 이 파싱 불일치로 약한 웹훅 자격 증명 하나를 가진 공격자가 다른 경로의 터미널/파일 도구에 도달할 수 있음 — 에이전트 호스트에서 임의 명령/파일 액세스.
공격 경로
웹훅 게이트웨이는 세션 chat_id를 'webhook:{route_name}:{delivery_id}'로 구성하고 ':'로 분할하여 권한 부여 경로를 다시 파생하는 반면, 인증은 정확한 URL 세그먼트를 사용함; delivery_id는 호출자 제공(X-GitHub-Delivery, svix-id, X-Request-ID)이므로 'build:external'과 같은 조작된 경로 이름은 'build' 경로로 해석되어 권한 있는 도구 세트를 상속함.
영향받는 시스템
Nous Research Hermes Agent — 웹훅 플랫폼 게이트웨이(PR #115285, GHSA-2fmg-cjqm-hhrj에서 수정)
완화 방안
PR #115285에서 병합된 수정 사항 적용(chat_id 분할 대신 인증된 URL 세그먼트에서 스탬프된 source.user_id에 toolsets_for_source 키 지정); Hermes Agent 업데이트.