CVE-2026-54239 PUBLISHED

FaustWP — Authentication Bypass via Initialization Vector Modification in Token Envelope

Assigner: GitHub_M
Reserved: 12.06.2026 Published: 17.09.2026 Updated: 17.09.2026

Faust.js is a headless WordPress toolkit. Prior to 1.8.11, the FaustWP WordPress plugin authenticates only the ciphertext in its token envelope and excludes the 16-byte initialization vector from the HMAC in WPE\FaustWP\Auth\encrypt() and WPE\FaustWP\Auth\decrypt() in plugins/faustwp/includes/auth/functions.php. A logged-in non-administrator who obtains an authorization code from GET /generate can modify the unauthenticated initialization vector so that CBC decryption changes the token type and user identifier while the HMAC remains valid. This can produce an access token for an Administrator and permit full WordPress REST API access, administrator-account creation, plugin installation, and arbitrary code execution. This issue is fixed in repository version 1.8.11.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 8.8

Product Status

Vendor wpengine
Product faustjs
Versions
  • Version < 1.8.11 is affected

References

Problem Types

  • CWE-345: Insufficient Verification of Data Authenticity CWE
  • CWE-639: Authorization Bypass Through User-Controlled Key CWE