AVideo has an Authorize.Net Webhook Signature Bypass that Enables Wallet Balance Inflation via Forged Payment Data
WWBN AVideo is an open source video platform. In versions prior to 29.0, the Authorize.Net webhook handler at plugin/AuthorizeNet/webhook.php contains a signature verification bypass that allows an attacker to forge webhook requests with arbitrary payment amounts and target user IDs. By supplying a valid transaction ID from a small legitimate purchase, the attacker bypasses signature validation and credits arbitrary wallet balances to any user account via attacker-controlled payload fields. Three flaws combine into an exploit chain: signature bypass via OR logic (webhook.php:33), payload values override API-fetched values (AuthorizeNet.php:169-171, webhook.php:44-48) and a missing approval check (webhook.php:61-75). By forging payment metadata, an attacker can credit arbitrary amounts to any user's wallet without a corresponding payment and include a plans_id to activate premium subscriptions (webhook.php:86-134), enabling free access to all paid and premium content and causing direct revenue loss to the platform owner. This issue has been fixed in version 29.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-33731
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 08:35 UTC · Revision 1
Source evidence
AVideo has an Authorize.Net Webhook Signature Bypass that Enables Wallet Balance Inflation via Forged Payment Data
core-osv · Original sourcePublished 16 Jul 2026, 20:46 UTC
WWBN AVideo is an open source video platform. In versions prior to 29.0, the Authorize.Net webhook handler at plugin/AuthorizeNet/webhook.php contains a signature verification bypass that allows an attacker to forge webhook requests with arbitrary payment amounts and target user IDs. By supplying a valid transaction ID from a small legitimate purchase, the attacker bypasses signature validation and credits arbitrary wallet balances to any user account via attacker-controlled payload fields. Three flaws combine into an exploit chain: signature bypass via OR logic (webhook.php:33), payload values override API-fetched values (AuthorizeNet.php:169-171, webhook.php:44-48) and a missing approval check (webhook.php:61-75). By forging payment metadata, an attacker can credit arbitrary amounts to any user's wallet without a corresponding payment and include a plans_id to activate premium subscriptions (webhook.php:86-134), enabling free access to all paid and premium content and causing direct revenue loss to the platform owner. This issue has been fixed in version 29.0.
osv:CVE-2026-33731
Complete source record
{
"id": "ae17a5e7e0e32af6e5f3900756f52431a408192fc4dccbe18fee93b921668809",
"url": "https://osv.dev/vulnerability/CVE-2026-33731",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "AVideo has an Authorize.Net Webhook Signature Bypass that Enables Wallet Balance Inflation via Forged Payment Data",
"summary": "WWBN AVideo is an open source video platform. In versions prior to 29.0, the Authorize.Net webhook handler at plugin/AuthorizeNet/webhook.php contains a signature verification bypass that allows an attacker to forge webhook requests with arbitrary payment amounts and target user IDs. By supplying a valid transaction ID from a small legitimate purchase, the attacker bypasses signature validation and credits arbitrary wallet balances to any user account via attacker-controlled payload fields. Three flaws combine into an exploit chain: signature bypass via OR logic (webhook.php:33), payload values override API-fetched values (AuthorizeNet.php:169-171, webhook.php:44-48) and a missing approval check (webhook.php:61-75). By forging payment metadata, an attacker can credit arbitrary amounts to any user's wallet without a corresponding payment and include a plans_id to activate premium subscriptions (webhook.php:86-134), enabling free access to all paid and premium content and causing direct revenue loss to the platform owner. This issue has been fixed in version 29.0.",
"evidence": "osv:CVE-2026-33731",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-33731",
"aliases": [
"CVE-2026-33731",
"GHSA-95jh-7r58-xmxw"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/wwbn/avideo",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "2386f39caea1d2ef36267b252fa76af283294623"
},
{
"fixed": "033e83ae904cacb99495dbea7cbcfb3738cf42e4"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "29.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "033e83ae904cacb99495dbea7cbcfb3738cf42e4"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"26.0",
"25.0",
"24.0",
"22.0",
"21.0",
"18.0",
"14.3.1",
"14.3",
"12.4",
"11.6",
"11.5",
"11.1.1",
"11.1",
"11",
"10.8",
"8.9.1",
"8.9",
"8.7",
"8.6",
"8.5",
"8.1",
"7.8",
"7.7",
"7.6",
"7.4",
"7.3",
"7.2",
"4.0",
"3.4",
"2.7",
"2.2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33731.json"
}
}
],
"modified": "2026-10-28T02:30:33.925635423Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33731.json",
"https://github.com/WWBN/AVideo/security/advisories/GHSA-95jh-7r58-xmxw",
"https://nvd.nist.gov/vuln/detail/CVE-2026-33731",
"https://github.com/WWBN/AVideo/commit/033e83ae904cacb99495dbea7cbcfb3738cf42e4"
],
"provider_metadata": {
"cwe_ids": [
"CWE-345"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33731.json"
}
},
"related_cves": [
{
"value": "CVE-2026-33731",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 501165,
"published_at": "2026-07-16T20:46:53.407+00:00"
}