Description
YesWiki is a wiki system written in PHP. From version 4.6.2 to before version 4.6.6, HttpSignatureService::verifySignature() checks the result of PHP's openssl_verify() with a loose boolean negation - if (!openssl_verify(...)) { throw ... }. PHP's openssl_verify has four possible return values: 1, 0, -1, and "false". The -1 row is the bypass: PHP's truthiness rules make -1 a truthy value, so !(-1) === false, the throw is skipped, and the controller proceeds to processActivity(). Any condition that makes OpenSSL's EVP_VerifyFinal() return -1 triggers the bypass. The reachable consequence is the controller silently treats a failed verification as success and processes the attacker's payload. This issue has been patched in version 4.6.6.
Published: 2026-09-04
Score: 8.2 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

YesWiki is a PHP‑based wiki system vulnerable to a signature‑verification bypass in versions 4.6.2 to 4.6.5. The HttpSignatureService::verifySignature() method checks the result of PHP's openssl_verify() with a loose negation, treating a return value of –1 as a successful verification. Because –1 is truthy, the exception is skipped and the request proceeds to processActivity(), allowing an attacker to supply a forged ActivityPub payload that the system will accept and execute. The flaw effectively gives an unauthenticated attacker remote code execution capability.

Affected Systems

Vendors affected are YesWiki maintained at YesWiki:yeswiki. All releases starting with 4.6.2 up to, but not including, 4.6.6 are vulnerable. Users running any of those versions should consider the issue critical until addressed.

Risk and Exploitability

With a CVSS score of 8.2, the vulnerability is classified as high severity. No EPSS score is currently available, and it is not listed in the CISA KEV catalog. The attack does not require authentication; any external entity able to send ActivityPub requests can trigger the bypass if the underlying OpenSSL EVP_VerifyFinal call returns –1, a condition that can be triggered by malformed or intentional cryptographic failures. Successful exploitation results in the server ingesting the payload and performing unauthorized actions, potentially leading to full system compromise.

Generated by OpenCVE AI on September 5, 2026 at 00:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to YesWiki version 4.6.6 or later, which contains the fixed logic that strictly checks for a return value of 1 from openssl_verify().
  • If an upgrade is not immediately possible, disable the ActivityPub processing endpoint or restrict it to trusted peers so that unauthenticated requests cannot reach the vulnerable code path.
  • As a temporary patch, modify the verifySignature() method to replace the loose negation with a strict comparison against 1, ensuring that only a return value of 1 indicates success.

Generated by OpenCVE AI on September 5, 2026 at 00:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-mv28-wj57-f57g YesWiki Vulnerable to Unauthenticated ActivityPub Signature-Verification Bypass via `!openssl_verify(...)` accepting `int(-1)`
History

Fri, 04 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description YesWiki is a wiki system written in PHP. From version 4.6.2 to before version 4.6.6, HttpSignatureService::verifySignature() checks the result of PHP's openssl_verify() with a loose boolean negation - if (!openssl_verify(...)) { throw ... }. PHP's openssl_verify has four possible return values: 1, 0, -1, and "false". The -1 row is the bypass: PHP's truthiness rules make -1 a truthy value, so !(-1) === false, the throw is skipped, and the controller proceeds to processActivity(). Any condition that makes OpenSSL's EVP_VerifyFinal() return -1 triggers the bypass. The reachable consequence is the controller silently treats a failed verification as success and processes the attacker's payload. This issue has been patched in version 4.6.6.
Title YesWiki: Unauthenticated ActivityPub Signature-Verification Bypass via `!openssl_verify(...)` accepting `int(-1)`
Weaknesses CWE-347
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-04T23:40:39.725Z

Reserved: 2026-06-08T17:13:43.064Z

Link: CVE-2026-52767

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-05T00:17:19.540

Modified: 2026-09-05T00:17:19.540

Link: CVE-2026-52767

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-05T00:30:18Z

Weaknesses
  • CWE-347

    Improper Verification of Cryptographic Signature