Description
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.
Published: 2026-08-20
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A logic error in the verifyWebhook function causes the verification condition to invert, allowing a request lacking the X-Hub-Signature-256 header to pass without HMAC validation. When such an unauthenticated request is accepted, the function proceeds to postComment, using the repository and issue objects supplied in the request body and the configured GITHUB_TOKEN. This flaw lets an attacker direct the deployed bot to post arbitrary comments on any GitHub repository and issue for which the token is authorized, creating a vector for defacement, spam, or malicious information disclosure.

Affected Systems

The vulnerability affects the appwrite:templates component of Appwrite, specifically the github-issue-bot template. No specific version information is disclosed in the advisory.

Risk and Exploitability

The CVSS score of 6.9 indicates moderate to high risk, and no EPSS score is available, so the likelihood of exploitation is unknown but the vulnerability is not listed in CISA KEV. An attacker can exploit the flaw remotely by sending a crafted HTTP request without the signature header to the webhook endpoint. The condition short‑circuits to success, enabling the function to post a comment as the bearer of the GITHUB_TOKEN, effectively granting write access to arbitrary repositories and issues.

Generated by OpenCVE AI on August 21, 2026 at 01:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Appwrite Templates to a version that fixes the verifyWebhook logic
  • Configure GitHub webhook settings to require the X‑Hub‑Signature‑256 header for all payloads
  • Restrict the GITHUB_TOKEN used by the bot to the minimum scopes needed for its intended operation
  • Validate incoming requests against a trusted source IP range or secret token to prevent spoofed traffic

Generated by OpenCVE AI on August 21, 2026 at 01:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 20 Aug 2026 20:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Appwrite Templates github-issue-bot Skips Webhook Signature Verification When the X-Hub-Signature-256 Header Is Absent
Weaknesses CWE-347
References
Metrics cvssV3_1

{'score': 5.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N'}

cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-20T19:48:51.102Z

Reserved: 2026-08-10T15:16:31.372Z

Link: CVE-2026-72861

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-20T20:17:46.190

Modified: 2026-08-20T20:17:46.190

Link: CVE-2026-72861

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T01:30:05Z

Weaknesses
  • CWE-347

    Improper Verification of Cryptographic Signature