🔍 CVE-2026-72861

5.8
CVSS Score
MEDIUM
2026-08-20
2026-10-18 20:10
✅ 완료

🇰🇷 한글 설명

appwrite/templates의 github-issue-bot에서 GitHub 웹훅 서명 검증 로직에 논리적 오류가 존재합니다. 서명 헤더가 없을 경우 검증 과정을 건너뛰고 성공으로 처리하여, 공격자가 인증 없이 임의의 저장소와 이슈에 댓글을 작성할 수 있는 취약점입니다.

💡 쉬운 설명

인증 확인 절차에 실수로 구멍이 생겨서, 누구나 가짜 요청을 보내면 봇이 대신 댓글을 달게 만들 수 있습니다. 공격자는 이 봇의 권한을 이용해 원하는 곳에 마음대로 글을 남길 수 있습니다.

🇺🇸 원문 (English)

The github-issue-bot templates in appwrite/templates verify the GitHub webhook signature with an inverted condition. verifyWebhook in node/github-issue-bot/src/github.js and in node-typescript/github-issue-bot/src/github.ts returns "typeof signature !== 'string' || (await verify(...))", so when the X-Hub-Signature-256 header is absent the first operand is true, the logical OR short-circuits, and the function reports success without performing any HMAC verification. main.js rejects a request only when verifyWebhook returns false, so an unauthenticated request carrying no signature passes the check. Processing then continues to postComment, which takes the repository and issue objects directly from the request body, letting the caller direct the deployed function to post a comment on a repository and issue of their choosing using the configured GITHUB_TOKEN, with the issue author login from the body interpolated into the comment text.

📍 영향받는 시스템

appwrite/templates 내의 github-issue-bot (node 및 node-typescript 버전)

⚔️ 공격 벡터

X-Hub-Signature-256 헤더를 생략한 채 조작된 요청 본문을 전송하여 인증을 우회함

🛡️ 대응 방법

verifyWebhook 함수의 논리 조건을 수정하여 서명이 없는 경우 검증 실패로 처리하도록 코드를 패치해야 합니다.

🔧 검증 코드

명령어 결과로 해당 논리 오류가 포함된 코드가 출력되면 취약한 상태입니다.

Shell / Script
grep -r "typeof signature !== 'string' || (await verify(...)" appwrite/templates/github-issue-bot

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N

💻 영향받는 소프트웨어

Git