Skip to main content
COSMICBYTEZLABS
NewsSecurityHOWTOsToolsTraining
StudyProjectsNewsletterHire MeAbout
Subscribe

Press Enter to search or Esc to close

News
Security
HOWTOs
Tools
Training
Study
Projects
Newsletter
Hire Me
About
RSS Feed
Reading List
Subscribe

Stay in the Loop

Get the latest security alerts, tutorials, and tech insights delivered to your inbox.

Subscribe NowFree forever. No spam.
COSMICBYTEZLABS

Your trusted source for IT intelligence, cybersecurity insights, and hands-on technical guides.

3004+ Articles
168+ Guides

CONTENT

  • Latest News
  • Security Alerts
  • HOWTOs
  • Checklists
  • Projects
  • Exam Prep

RESOURCES

  • Search
  • Browse Tags
  • Newsletter Archive
  • Reading List
  • RSS Feed

COMPANY

  • About Us
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CosmicBytez Labs. All rights reserved.

System Status: Operational
  1. Home
  2. Security
  3. CVE-2026-19658 — Unauthenticated PHP Object Injection in Give Tributes for WordPress
CVE-2026-19658 — Unauthenticated PHP Object Injection in Give Tributes for WordPress

Critical Security Alert

This vulnerability is actively being exploited. Immediate action is recommended.

SECURITYCRITICALCVE-2026-19658

CVE-2026-19658 — Unauthenticated PHP Object Injection in Give Tributes for WordPress

Give Tributes ≤ 2.3.1 lets unauthenticated attackers inject a PHP object (CVSS 9.8); impact depends on a co-installed POP gadget chain.

Dylan H.

Security Team

September 22, 2026
8 min read

Affected Products

  • Give Tributes (LiquidWeb) versions up to and including 2.3.1

Executive Summary

CVSS Score: 9.8 (Critical)

Give Tributes, a donation add-on for the GiveWP fundraising plugin published by LiquidWeb for WordPress, contains a PHP Object Injection vulnerability tracked as CVE-2026-19658. All versions up to and including 2.3.1 fail to sanitize part of the donation form's eCard recipient data before it is written to donation metadata, allowing an unauthenticated site visitor to submit a PHP serialized object where a plain name field is expected.

The critical detail — and the one that should drive triage decisions — is spelled out directly in the vulnerability's own description: no known POP (Property-Oriented Programming) gadget chain currently exists inside Give Tributes itself. PHP Object Injection is only dangerous when the injected object's magic methods (__wakeup, __destruct, __toString, and similar) can be chained into something harmful, and Give Tributes does not ship such a chain on its own. That means, in a site running Give Tributes alone, successful exploitation of this specific flaw currently has no demonstrated impact.

The risk is not standalone, however — it is compositional. If a site also runs any other plugin or theme (regardless of publisher) that happens to contain a usable POP gadget chain, the same injected object can trigger that chain once PHP deserializes it, with consequences ranging from arbitrary file deletion to remote code execution depending on what gadget is present. Because plugin/theme inventories vary per site and can change at any time (a new plugin install introduces a gadget chain that didn't exist yesterday), and because the vulnerable code path requires no authentication, this advisory treats CVE-2026-19658 as critical per its published CVSS 9.8 score — reflecting worst-case, chainable risk — while being explicit that real-world impact on any given site depends entirely on what else is installed alongside Give Tributes.

Vulnerability Overview

FieldDetail
CVE IDCVE-2026-19658
CWE ClassificationCWE-502 (Deserialization of Untrusted Data)
CVSS Score9.8 (Critical) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Vendor / ProductLiquidWeb — Give Tributes (GiveWP add-on)
AssignerWordfence
Attack VectorNetwork
Privileges RequiredNone (unauthenticated)
User InteractionNone
Published2026-09-22

The CVSS vector, CWE classification, and assigner above come from third-party vulnerability aggregators (VulDB and Wordfence Intelligence listings) rather than the bare NVD summary, and should be treated as reported-but-not-independently-reverified by CosmicBytez Labs against the plugin's own source.

Affected Versions

ProductAffected RangeFixed Version
Give Tributes (LiquidWeb)Up to and including 2.3.1Not yet confirmed against an official vendor changelog at time of writing; third-party proof-of-concept trackers cite 2.3.1.1 as the patched release

Because the fixed-version number above is sourced from a third-party researcher's PoC repository rather than the vendor's own release notes, administrators should confirm the currently installed and latest-available plugin version directly from the WordPress.org plugin listing or their site's plugin dashboard rather than relying solely on the version number quoted here.

Attack Vector

Public technical write-ups describe a narrow but unauthenticated trigger path. These details come from third-party analysis of the plugin's code and have not been independently verified line-by-line by CosmicBytez Labs, but are included because they materially affect how exploitable a given site is:

1. Prerequisite site configuration:
   - The donation form uses the legacy Give form shortcode (v2),
     not the newer Visual Form Builder (v3).
   - "Allow Multiple Recipients" is enabled for eCards, either
     globally or on the specific donation form.
   - eCard "Custom Message" is disabled — this is the plugin's
     default state. (When enabled, GiveWP's give_clean() routine
     blanks serialized-looking input during required-field
     validation, which prevents the payload from being stored.)
   - The form has a working payment method available to complete
     a donation (a manual/offline gateway is sufficient).

2. GiveWP's normal field validation runs submitted values through
   a sanitized copy of the request data (give_clean()), which
   strips or blanks strings that look like PHP serialized data.

3. Give Tributes' own storage routine for eCard recipients
   (insert_tribute_data()) reads the SECOND and later recipients'
   first_name / last_name fields directly from the raw, unsanitized
   request data instead of the sanitized copy.

4. An unauthenticated attacker submits a donation where a second
   recipient's name field contains a PHP serialized object string
   (the classic O:<length>:"ClassName":... prefix) instead of a
   plain name.

5. The unsanitized value is written into donation post meta as-is.

6. When that meta value is later read back and passed through
   PHP's unserialize() — for example when rendering tribute data,
   generating an eCard, or displaying donation details — the
   attacker-supplied object is instantiated.

7. Give Tributes contains no POP gadget chain of its own, so step 6
   alone has no demonstrated impact. If ANY other plugin or theme
   on the same site provides a compatible gadget chain, deserializing
   the attacker's object can invoke it.

No authentication, prior access, or social engineering is required — only the ability to submit a public donation form with multi-recipient eCards enabled.

Impact of Successful Exploitation

Impact AreaConsequence
ConfidentialityDependent on gadget chain: potential disclosure of sensitive data if a co-installed plugin/theme's POP chain exposes file reads or data leakage
IntegrityDependent on gadget chain: potential arbitrary file writes/deletion or data tampering via a co-installed gadget chain
AvailabilityDependent on gadget chain: potential file deletion or resource abuse if a suitable chain is present
Standalone Impact (Give Tributes only)None confirmed — no POP chain ships with Give Tributes itself
Compositional RiskAny plugin/theme install on the site (present now or added later) can retroactively turn this into a working exploit chain without Give Tributes itself changing
Trust BoundaryUnauthenticated public donation form input reaches PHP's unserialize() — a classic high-risk sink regardless of current gadget availability

Immediate Remediation

  1. Update Give Tributes to the latest available version. Confirm the currently installed version and the latest release directly via the WordPress admin Plugins screen or the WordPress.org plugin page — do not rely solely on a specific version number from third-party trackers.
  2. If an immediate update is not possible, disable "Allow Multiple Recipients" on all donation forms using Give Tributes. Per the reported trigger conditions, the single-recipient code path applies sanitize_textarea_field(), which neutralizes the payload and closes this specific route.
  3. Enable the eCard "Custom Message" option as an additional mitigating control, since GiveWP's required-field validation for that field blanks serialized-looking input before storage — though this should not be relied upon as a substitute for patching.
  4. Inventory every other plugin and theme on the same WordPress installation. Since Give Tributes has no POP chain of its own, your actual exposure is determined by what else is installed. Treat any site with a large or infrequently-audited plugin/theme footprint as higher risk.
  5. If the plugin is not in active use, deactivate or remove it until a confirmed patched version is verified and installed.

Detection Indicators

IndicatorWhere to Look
Donation submissions where an eCard recipient's first/last name field contains O: followed by digits and a class name (PHP serialization syntax) instead of a plausible human nameDonation records / post meta for Give Tributes tribute data, database queries against relevant meta keys
Unusually large or malformed values in eCard recipient name fieldsGiveWP/Give Tributes admin donation detail views
PHP errors or warnings referencing unserialize(), unexpected class instantiation, or "Error thrown" magic-method failures in logsPHP error log, WordPress debug log
Repeated automated donation form submissions with multi-recipient eCards from the same IP/UA in a short windowWeb server access logs, WAF logs
Unexpected file changes, new files, or deleted files following donation activityFile integrity monitoring on the WordPress install
Known PoC/scanner signatures (public Python-based checker tooling exists for this CVE) in access logsWeb server / WAF logs

Post-Remediation Steps

  1. Confirm the installed Give Tributes version is above 2.3.1 and matches the vendor's current released version after updating.
  2. Re-enable "Allow Multiple Recipients" only after the update is confirmed, if it was disabled as an interim mitigation.
  3. Audit all other installed plugins and themes for known PHP Object Injection or insecure-deserialization advisories, since any one of them supplying a POP gadget chain is what would make this vulnerability exploitable in practice.
  4. Review donation records created while the site ran a vulnerable version for anomalous serialized-looking data in recipient name fields.
  5. Rotate any credentials or secrets that could plausibly have been exposed if a gadget chain was present and exploited during the vulnerable window.
  6. Keep Give Tributes, GiveWP core, and all other plugins/themes on a regular update cadence — this class of vulnerability becomes exploitable the moment a compatible gadget chain is introduced anywhere on the site, not only through Give Tributes' own updates.

References

  • NVD — CVE-2026-19658
  • Wordfence Intelligence — CVE-2026-19658
  • VulDB — CVE-2026-19658
  • GitHub — murrez/CVE-2026-19658 (third-party PoC/checker tooling)
#CVE#WordPress#PHP Object Injection#Deserialization#GiveWP#Plugin Vulnerability

Related Articles

WordPress ARForms Plugin Critical PHP Object Injection — CVE-2024-13784

A critical unauthenticated PHP object injection flaw in the ARForms WordPress plugin (CVSS 9.8) allows arbitrary code execution via deserialization.

3 min read

Critical GiveWP Flaw Lets Hackers Run Server Commands

CVE-2026-82222 chains PHP object injection and an auth-bypass bug in GiveWP, letting attackers run OS commands on 100,000+ WordPress donation sites.

4 min read

CVE-2026-15962: PHP Object Injection in Fluent Forms Pro (CVSS 8.8)

A high-severity PHP Object Injection vulnerability in the Fluent Forms Pro Add On Pack plugin for WordPress allows authenticated attackers with Subscriber-level access to inject PHP objects and potentially achieve remote code execution via a POP chain in versions up to 6.2.6.

5 min read
Back to all Security Alerts