---
id: CVE-2026-81505
title: Convoy is a cloud native webhooks gateway
summary: >-
  Convoy is a cloud native webhooks gateway. Prior to 26.6.8, Convoy's GET
  /api/v1/projects/{projectID}/sources/{sourceID} endpoint authorizes access to
  the project in the URL, but Handler.GetSource calls
  sources.Service.FindSourceByID() a…
severity: high
cvss: 7.1
cvssVector: 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'
cwe:
  - CWE-639
vendor: frain-dev
product: github.com/frain-dev/convoy
affected:
  - github.com/frain-dev/convoy < 0.9.3-0.20260724092134-1cc67cd16fb1
patched:
  - github.com/frain-dev/convoy 0.9.3-0.20260724092134-1cc67cd16fb1
published: '2026-09-18'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T21:25:27.050'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-81505'
references:
  - url: >-
      https://github.com/frain-dev/convoy/commit/1cc67cd16fb1f8890cc83a3998d3f92dceb7fd06
    label: security-advisories@github.com
  - url: 'https://github.com/frain-dev/convoy/pull/2755'
    label: security-advisories@github.com
  - url: 'https://github.com/frain-dev/convoy/releases/tag/v26.6.8'
    label: security-advisories@github.com
  - url: >-
      https://github.com/frain-dev/convoy/security/advisories/GHSA-p5vg-v7mj-f6q4
    label: security-advisories@github.com
  - url: >-
      https://github.com/frain-dev/convoy/security/advisories/GHSA-p5vg-v7mj-f6q4
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://github.com/advisories/GHSA-p5vg-v7mj-f6q4'
  - url: 'https://github.com/frain-dev/convoy'
tags:
  - nvd
  - ghsa
  - go
  - cve.org
  - exploit-available
  - osv
epss: 0.00465
epssPercentile: 0.37623
aliases:
  - GHSA-p5vg-v7mj-f6q4
ecosystem: go
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-18T17:15:17.178343Z'
cvssSource: cna
ingestedAt: '2026-09-18T16:45:41.409Z'
---

## Overview

Convoy is a cloud native webhooks gateway. Prior to 26.6.8, Convoy's GET /api/v1/projects/{projectID}/sources/{sourceID} endpoint authorizes access to the project in the URL, but Handler.GetSource calls sources.Service.FindSourceByID() and fetches the Source only by sourceID without confirming that its ProjectID matches the authorized project. An authenticated user or project-scoped API key holder can substitute another tenant's Source identifier and receive that Source's complete record, including unredacted AMQP, Kafka, SQS, or Google PubSub credentials. The list endpoint remains project-scoped; the single-item Source lookup is affected. This issue is fixed in version 26.6.8.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-81505)

Affected packages:

- `github.com/frain-dev/convoy < 0.9.3-0.20260724092134-1cc67cd16fb1`

Patched in:

- `github.com/frain-dev/convoy 0.9.3-0.20260724092134-1cc67cd16fb1`

Source: https://github.com/advisories/GHSA-p5vg-v7mj-f6q4
