---
id: CVE-2025-12028
title: >-
  The IndieAuth plugin for WordPress is vulnerable to Cross-Site Request Forgery
  in all versions up to, and including, 4.5.4
summary: >-
  The IndieAuth plugin for WordPress is vulnerable to Cross-Site Request Forgery
  in all versions up to, and including, 4.5.4. This is due to missing nonce
  verification on the `login_form_indieauth()` function and the authorization
  endpoint…
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'
cwe:
  - CWE-352
published: '2025-10-24'
updated: '2026-10-08'
sourceUpdated: '2026-10-08T11:10:00.250'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-12028'
references:
  - url: >-
      https://plugins.trac.wordpress.org/browser/indieauth/tags/4.5.4/includes/class-indieauth-authorization-endpoint.php#L411
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/indieauth/tags/4.5.4/includes/class-indieauth-authorization-endpoint.php#L418
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/indieauth/tags/4.5.4/includes/class-indieauth-authorization-endpoint.php#L476
    label: security@wordfence.com
  - url: 'https://plugins.trac.wordpress.org/changeset/3384558/'
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/42b373da-d5a6-4e3b-90f4-059da3641841?source=cve
    label: security@wordfence.com
tags:
  - nvd
  - exploit-available
epss: 0.00212
epssPercentile: 0.10568
exploits:
  github: 1
  githubRepos:
    - 'https://github.com/jFriedli/CVE-2025-12028'
  checkedAt: '2026-10-09T10:30:44.483Z'
exploitAvailable: true
ingestedAt: '2026-10-08T11:31:27.572Z'
---

## Overview

The IndieAuth plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 4.5.4. This is due to missing nonce verification on the `login_form_indieauth()` function and the authorization endpoint at wp-login.php?action=indieauth. This makes it possible for unauthenticated attackers to force authenticated users to approve OAuth authorization requests for attacker-controlled applications via a forged request granted they can trick a user into performing an action such as clicking on a link or visiting a malicious page while logged in. The attacker can then exchange the stolen authorization code for an access token, effectively taking over the victim's account with the granted scopes (create, update, delete).

## Remediation

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