Description
pytonapi is a Python SDK for TONAPI that provides REST API, streaming, and webhook access to the TON blockchain. From 2.0.0 to 2.2.0, TonapiWebhookDispatcher fails to validate the Authorization header when a webhook handler is registered with the documented path argument, because setup() stores bearer tokens only under the default suffix paths and never adds the custom path to the token map, so self._tokens.get(path) returns None and the authentication guard is skipped. An unauthenticated remote attacker can POST forged payloads to the custom webhook endpoint and trigger victim-defined handlers. This issue is fixed in version 2.2.1.
Published: 2026-07-28
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the pytonapi SDK versions 2.0.0 through 2.2.0 where the TonapiWebhookDispatcher does not validate the Authorization header for webhook endpoints registered with a custom path. When a custom path is used, the internal token map contains no entry for that path, causing the authentication guard to be skipped. This allows any unauthenticated client to POST forged payloads to the custom webhook endpoint and trigger handlers that have been predefined by the victim. As the handlers run with the application’s privileges, an attacker can influence the execution of arbitrary code or modify application state, resulting in a high integrity impact. The weakness is a failed authentication guard – CWE‑287.

Affected Systems

Vendor nessshon, product tonapi (Python SDK for TON blockchain). Versions affected are 2.0.0 through 2.2.0 inclusive; the issue is fixed in version 2.2.1 and later.

Risk and Exploitability

The base CVSS score of 7.5 reflects a moderate to high severity, primarily due to the integrity impact. The EPSS score of less than 1% indicates a low current probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. Attackers can exploit the flaw by sending unauthenticated HTTP POST requests to a custom webhook URL, exploiting the missing authorization check. No special privileges or local access are required, making it a straightforward remote attack vector.

Generated by OpenCVE AI on August 3, 2026 at 14:43 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade tonapi to version 2.2.1 or later, where the Authorization header is properly validated for custom webhook paths.
  • If upgrading immediately is not feasible, disable or restrict custom webhook paths so that only the default suffix path is active, ensuring the token map contains the necessary entries.
  • Apply additional authentication or access controls to webhook endpoints at the network level, such as requiring TLS client certificates or IP whitelisting, to mitigate the risk of unauthenticated POSTs until the internal fix is applied.

Generated by OpenCVE AI on August 3, 2026 at 14:43 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-3fcr-jvgp-7f58 pytonapi has a Webhook Custom Path Authentication Bypass
History

Tue, 11 Aug 2026 23:30:00 +0000

Type Values Removed Values Added
References

Tue, 11 Aug 2026 22:30:00 +0000


Tue, 28 Jul 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Nessshon
Nessshon tonapi
Vendors & Products Nessshon
Nessshon tonapi

Tue, 28 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 28 Jul 2026 17:30:00 +0000

Type Values Removed Values Added
Description pytonapi is a Python SDK for TONAPI that provides REST API, streaming, and webhook access to the TON blockchain. From 2.0.0 to 2.2.0, TonapiWebhookDispatcher fails to validate the Authorization header when a webhook handler is registered with the documented path argument, because setup() stores bearer tokens only under the default suffix paths and never adds the custom path to the token map, so self._tokens.get(path) returns None and the authentication guard is skipped. An unauthenticated remote attacker can POST forged payloads to the custom webhook endpoint and trigger victim-defined handlers. This issue is fixed in version 2.2.1.
Title pytonapi has a Webhook Custom Path Authentication Bypass
Weaknesses CWE-287
References
Metrics cvssV3_1

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-11T22:11:09.656Z

Reserved: 2026-06-15T20:07:02.185Z

Link: CVE-2026-54635

cve-icon Vulnrichment

Updated: 2026-07-28T17:30:05.248Z

cve-icon NVD

Status : Deferred

Published: 2026-07-28T18:17:22.427

Modified: 2026-08-11T23:17:30.613

Link: CVE-2026-54635

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T14:45:04Z

Weaknesses