Lead Generated <= 1.23 - Unauthenticated PHP Object Injection
Strategic Overview
- Status
- Patched in 1.25
- Affected Plugin
- Lead Generated
- Affected Version
<= 1.23- CVSS
- 9.8Critical
- Weakness type
- CWE-502 · Deserialization of Untrusted Data
- CVE
CVE-2023-28667
At a glance
CVE-2023-28667 is a critical-severity Deserialization of Untrusted Data vulnerability in the Lead Generated WordPress plugin, affecting versions <= 1.23. It carries a CVSS score of 9.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 1.25; sites on affected versions should update now. Disclosed March 2023, reported by Joshua Martinelle.
Vulnerability Overview
The Lead Generated WordPress Plugin, version <= 1.23, was affected by an unauthenticated insecure deserialization issue. The tve_labels parameter of the tve_api_form_submit action is passed to the PHP unserialize() function without being sanitized or verified, and as a result could lead to PHP object injection, which when combined with certain class implementations / gadget chains could be leveraged to perform a variety of malicious actions granted a POP chain is also present.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-502: Deserialization of Untrusted Data
Lead Generated <= 1.23 carries this weakness at unserialize(), and reaching it takes no account at all. Deserialization of untrusted data means the application reconstructs objects from input a caller controls, letting the attacker choose which classes get instantiated and what their properties hold.
A workable chain turns deserialization into file writes, deletions or code execution, depending on what the loaded classes do in their magic methods. For Lead Generated the fix is 1.25: builds <= 1.23 are affected, anything from 1.25 onward is not.
Remediation
Update to version 1.25, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. Classes like this one can leave something behind, so the staged malware scanner is the second half: it looks for dropped files and modified code rather than for the request that created them. None of that substitutes for the fix: Lead Generated 1.25 closes this, and updating the plugin is the step that ends it.
- Firewall
- Scanner
- Login Security
External References
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C