TRENDING
Vintage silver stopwatch with a chain on a black background, its dial showing seconds from 5 to 60
October 28, 2026
How to Find a Slow Query in PostgreSQL 18 With pg_stat_statements, Read Its EXPLAIN ANALYZE Plan, and Fix It With the Right Index
A wooden Tower of Hanoi puzzle on a market table, with three pegs and stacked discs of different sizes
October 28, 2026
Two Labs’ Claimed Refutations of the Exponential Time Hypothesis Turn Verification Into a Statement-Reading Problem, and Their Lean Theorems Promise Only That a Constant Exists
Two earthworms lying together on wet brown leaf litter, photographed close up
October 28, 2026
Tailscale Merged Fixes for Most of the 11 “Tailworm” Findings Before Shipping a Release, and the Forwarding Switch It Recommends Already Exists in the Shipped Client
Unpopped corn kernels mixed with popped popcorn on a white surface
October 28, 2026
How to Stop Decompression Bombs in Python With Hard Output Limits for gzip, Brotli, zstd, ZIP, and tar.gz
Ouroboros, a polished stainless steel sculpture of two interlocking loops with a pierced surface, standing beside a dark pool under trees
October 28, 2026
Anthropic’s S-1 Puts Safety Audits Inside the “Closing the Loop” Cycle It Warns About, and Says Its Evaluations Could Overstate Safety
28 Oct 2026
SXZ.io SXZ.io
  • Home
Search the Site
Popular Searches:
Technology Amazon AI
Recent Posts
A mountain gorilla looks at the camera from green forest undergrowth
How to Compress Time-Series Metrics in Python With Gorilla Delta-of-Delta and XOR Encoding
October 28, 2026
A bronze-framed hourglass with white sand beside a small Ferris wheel ornament on a wooden table against a teal wall
NIST’s Final Post-Quantum Transition Report Puts Every Quantum-Vulnerable Public-Key Scheme on One 2030 and 2035 Clock, and Three Federal Documents Word the Deadline Three Ways
October 28, 2026
Six weathered stone columns of the Temple of Apollo at Delphi, Greece, standing on a stone platform above a valley of olive groves
Honeypots Recorded Probes Against Oracle E-Business Suite CVE-2026-101767 Seven Days After Its Patch, and the Finder’s Write-Up Is Dated Patch Day
October 28, 2026
SXZ.io SXZ.io
  • Home

Categories

Articles 269 Posts
News 272 Posts
Learning Hub 242 Posts
Home/News/GiveWP Patches a CVSS 10.0 Flaw That Let Anonymous Visitors Take Over Donation Sites
News

GiveWP Patches a CVSS 10.0 Flaw That Let Anonymous Visitors Take Over Donation Sites

A patched GiveWP bug let anyone submit a donation and walk away with the ability to run commands on the server, no account or special configuration required, on a plugin used by more than 100,000...

August 28, 2026 4 Min Read
67

Patchstack has disclosed an unauthenticated remote code execution vulnerability in GiveWP, the WordPress donation and fundraising plugin running on more than 100,000 sites, and rated it CVSS 10.0, the maximum score the scoring system allows. The flaw let a visitor with no account and no special configuration submit a donation and come away with the ability to run arbitrary commands on the server.

Table Of Content

  • A default installation was enough
  • Registering an account was optional too
  • A “safe” unserialize helper that wasn’t safe
  • The same function broke the same way in 2024
  • What GiveWP fixed

GiveWP, developed by Nexcess, provides donation forms, payment gateway integrations, and donor management for nonprofits and other fundraising organizations. Patchstack says the vulnerability affects version 4.16.7.1 and below and was fixed in 4.16.7.2, released on August 27, one day before the advisory went public.

A default installation was enough

On version 4.16.5.1 and below, Patchstack says exploitation needed nothing beyond a stock GiveWP setup: one published donation form and one active payment gateway, which describes a default installation, since GiveWP activates a manual “Test Donation” gateway and an offline gateway out of the box. No test mode, open registration, debug mode, or administrator action was required.

Versions 4.16.6 through 4.16.7.1 narrowed the hole without closing it. Those releases made GiveWP’s older donation processor stop short when a submitted form was built with the newer Visual Form Builder, so a freshly installed site was no longer exploitable through that specific path. Patchstack calls this a reachability change rather than a fix: a single donation form missing one internal setting (formBuilderSettings) re-arms the entire chain, in any status, including draft or trashed. That covers every site upgraded from an older GiveWP release, any form that was imported or restored, and any site where an administrator turned on the plugin’s “Option-Based Form Editor.”

Registering an account was optional too

Everything above still assumes an attacker has a GiveWP donor account to work from. Patchstack found that step doesn’t cost anything either. GiveWP’s registration handler creates a full WordPress user account and returns a valid authentication cookie in response to a plain POST request carrying give_action=user_register, regardless of whether the site’s own registration setting is turned on at all.

Version 4.16.6 added a security nonce to that request, but Patchstack says it only narrows the window rather than closing it. The nonce is emitted by the [give_register] shortcode template, and WordPress issues the identical nonce to every logged-out visitor of a given site. An attacker only has to find one public page that renders that shortcode, harvest the nonce once, and reuse it to keep minting free accounts.

A “safe” unserialize helper that wasn’t safe

PHP Object Injection bugs happen when an application hands attacker-controlled data to PHP’s unserialize() function, which reconstructs objects from serialized text and can be tricked, through what researchers call a gadget chain, into running attacker-chosen code once the application touches the reconstructed object. GiveWP anticipated the risk and wrapped unserialize() in a helper called safeUnserialize(), which calls it with the option allowed_classes set to false.

Patchstack’s write-up explains why that guard failed. Per PHP’s own documentation, allowed_classes => false does not discard a malicious serialized object. PHP instead reconstructs it as a generic placeholder called __PHP_Incomplete_Class that still preserves the original class name and every property. When that placeholder is serialized again later, on its way into GiveWP’s session storage, PHP writes the exact original bytes back out. The helper never neutralizes the payload; it only hides it for the one read where it’s applied, then hands the untouched object back to storage, deferring the danger to the next place that unserializes the same data without the guard in place.

That next place, according to Patchstack, is the donation flow itself. An attacker plants a malicious serialized value in their own account’s last name field, then submits a donation. GiveWP’s own code copies that field into a session record, runs it through the ineffective “safe” helper, and writes it intact into the site’s wp_give_sessions database table. From there, the chain plays out in four steps: register a free account, plant the payload in the account’s profile, submit a donation that writes the payload into a session record, then load any front-end page using that same session cookie. The server reads the poisoned session back out, unserializes it a second time, and a gadget chain already present in code GiveWP ships turns the reconstructed object into arbitrary command execution, with the output readable back over an ordinary HTTP response.

The same function broke the same way in 2024

This is not GiveWP’s first unauthenticated Object Injection to RCE bug, and it is not even the first time the chain has run through the same code. In August 2024, Wordfence disclosed CVE-2024-5932, another CVSS 10.0 chain in GiveWP reachable through the plugin’s give_title field, fixed in version 3.14.2, reported by researcher villu164, and rewarded with a $4,998 bug bounty. According to The Hacker News’s coverage at the time, that flaw also lived inside GiveWP’s give_process_donation_form() function, the exact function Patchstack now identifies as the point where this year’s chain reaches its broken unserialize helper. Two years and roughly a full major version apart, the same donation-processing code has produced the same class of maximum-severity bug twice.

What GiveWP fixed

Patchstack credits researcher Udin Chan with reporting the current bug on July 28, initially against version 4.16.5.1 and below. Patchstack says it confirmed the vulnerability the same day and spent the following month working with the vendor, rejecting what it describes as several inadequate patch attempts before 4.16.7.2 shipped. One earlier attempt, in version 4.16.6, added a check that detected the __PHP_Incomplete_Class placeholder and then simply handed back the original serialized string verbatim, the same vulnerable outcome as before, so the underlying flaw was merely deferred rather than fixed.

Version 4.16.7.2 takes a different approach, closing the chain at several independent points instead of patching only the entry point that was originally reported. Patchstack’s advisory does not cite a CVE identifier as of publication. Any GiveWP site running version 4.16.7.1 or earlier should update to 4.16.7.2 immediately: the plugin’s active-install base puts more than 100,000 nonprofit and fundraising sites in the affected range.

Tags:

givewpPatchstackPlugin VulnerabilityRemote Code ExecutionWordPress Security

Share

A REFA time-study stopwatch resting on a printed time-recording sheet, representing repeated timed measurements
Previous Post

How to Correctly Benchmark LLM Inference Latency With Python and Ollama

A pencil labeled with standardized test names rests across a multiple-choice answer sheet, evoking the exam analogy behind double-blind AI evaluation
Next Post

Google DeepMind’s Double-Blind AI Evaluations Turn Benchmark Trust Into a Cryptography Problem

No Comment! Be the first one.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Latest
28 Oct
How to Compress Time-Series Metrics in Python With Gorilla Delta-of-Delta and XOR Encoding
28 Oct
NIST’s Final Post-Quantum Transition Report Puts Every Quantum-Vulnerable Public-Key Scheme on One 2030 and 2035 Clock, and Three Federal Documents Word the Deadline Three Ways
Trending
October 28, 2026
How to Compress Time-Series Metrics in Python With Gorilla Delta-of-Delta and XOR Encoding
October 28, 2026
NIST’s Final Post-Quantum Transition Report Puts Every Quantum-Vulnerable Public-Key Scheme on One 2030 and 2035 Clock, and Three Federal Documents Word the Deadline Three Ways
October 28, 2026
Honeypots Recorded Probes Against Oracle E-Business Suite CVE-2026-101767 Seven Days After Its Patch, and the Finder’s Write-Up Is Dated Patch Day
October 27, 2026
How to Find a Slow Query in PostgreSQL 18 With pg_stat_statements, Read Its EXPLAIN ANALYZE Plan, and Fix It With the Right Index
October 27, 2026
Two Labs’ Claimed Refutations of the Exponential Time Hypothesis Turn Verification Into a Statement-Reading Problem, and Their Lean Theorems Promise Only That a Constant Exists
October 27, 2026
Tailscale Merged Fixes for Most of the 11 “Tailworm” Findings Before Shipping a Release, and the Forwarding Switch It Recommends Already Exists in the Shipped Client

Related Posts

Rows of server racks in a data center representing network infrastructure targeted by botnets
News

C0XMO Botnet Shows Why Old Router Firmware Still Matters

June 7, 2026
Close-up of a USB flash drive, representing physical data-theft risk in office security incidents
News

Fake IT Support Is Now Walking Through the Front Door

June 7, 2026
A phone security app on a smartphone resting on a laptop keyboard.
News

Everest Forms Pro Flaw Is Being Exploited to Create Rogue WordPress Admins

June 7, 2026
A phone secured by a padlock, illustrating AI data-leak containment and security controls.
News

OpenAI’s Lockdown Mode Is a Data-Leak Brake, Not a Prompt-Injection Cure

June 8, 2026
SXZ.io SXZ.io
  • [email protected]

Categories

Articles
Learning Hub
News

All Rights Reserved by SXZ.io ©2026